抽奖系统-测试报告

张开发
2026/4/20 22:09:17 15 分钟阅读

分享文章

抽奖系统-测试报告
一、项目概述1.项目介绍基于SpringBoot开发的在线抽奖系统集成了MySQL、Redis、RabbitMQ等组件支持用户管理创建奖品活动创建抽奖结果处理等功能。2.项目结构管理员模块注册、登录人员管理模块注册普通用户、查看用户列表奖品模块创建奖品信息、奖品列表展示活动模块创建活动信息、活动列表展示抽奖模块活动抽奖、中奖通知3.测试环境操作系统windows11浏览器Chrome测试工具Selenium、jmeter、postman二、测试用例三、功能测试1.管理员登录1.1.登录1.1.1密码登录测试用例1手机号和密码正确预期结果跳转至活动中心并进入活动管理中的活动列表测试用例2手机号和密码为空预期结果提示“请输入您的手机号”“请输入密码”测试用例3手机号为空密码不为空预期结果提示“请输入您的手机号”测试用例4手机号不为空密码为空预期结果提示“请输入密码”测试用例5手机号格式错误预期结果弹窗提示“登录失败!登录方式不存在!”测试用例6用户信息不存在预期结果弹窗提示“登录失败!用户信息为空!”测试用例7密码格式错误预期结果提示“密码长度至少为6个字符”测试用例8密码与手机号不匹配预期结果弹窗提示“登录失败!密码错误!”测试用例9身份错误预期结果弹窗提示“登录失败!身份错误!”1.1.1验证码登录测试用例1手机号和验证码正确预期结果跳转至活动中心并进入活动管理中的活动列表测试用例2手机号和验证码为空预期结果提示“请输入您的手机号”“请输入验证码”测试用例3手机号为空验证码不为空预期结果提示“请输入您的手机号”测试用例4手机号不为空验证码为空预期结果提示“请输入验证码”测试用例5手机号格式错误预期结果弹窗提示“登录失败!手机号错误!”测试用例6用户信息不存在预期结果弹窗提示“登录失败!用户信息为空!”测试用例7验证码错误预期结果弹窗提示“登录失败!验证码校验失败!”测试用例8验证码失效预期结果弹窗提示“登录失败!验证码校验失败!”测试用例9身份错误预期结果弹窗提示“登录失败!身份错误!”1.2.注册测试用例1姓名、邮箱、手机号和密码输入正确预期结果弹窗提示“注册成功去登录”跳转到登录页面测试用例2姓名、邮箱、手机号和密码都为空预期结果提示“请输入您的姓名”“请输入有效的邮箱地址”“请输入您的手机号”“请输入密码”测试用例3姓名为空预期结果提示“请输入您的姓名”测试用例4邮箱为空预期结果提示“请输入有效的邮箱地址”测试用例5手机号为空预期结果提示“请输入您的手机号”测试用例6密码为空预期结果提示“请输入密码”测试用例7邮箱格式错误预期结果提示“请输入有效的邮箱地址”测试用例8邮箱已存在预期结果弹窗提示“注册失败!邮箱已注册!”测试用例9手机号格式错误预期结果弹窗提示“注册失败!手机号错误!”测试用例10手机号已存在预期结果弹窗提示“注册失败!手机号已注册!”测试用例11密码格式错误预期结果提示“密码长度至少为6个字符”2.活动中心页面2.1.活动管理模块2.1.1.活动列表测试用例1点击活动预期结果跳转抽奖页面2.1.2.新建抽奖活动测试用例1活动内容输入正确圈选正确预期结果弹窗提示“创建成功”测试用例2活动名称为空预期结果提示“请输入活动名称”测试用例3活动描述为空预期结果提示“请输入活动描述”测试用例4未圈选奖品预期结果弹窗提示“请至少选择一个奖品”测试用例5未圈选人员预期结果弹窗提示“请至少选择一个人员, 人员数量应大于等于奖品总量”测试用例6人员数量小于奖品数量预期结果弹窗提示“创建失败活动关联的奖品及人员数量设置异常!”2.2.奖品管理模块2.2.1.奖品列表测试用例1点击奖品列表预期结果显示奖品列表2.2.2.创建奖品测试用例1奖品信息填写正确预期结果弹窗提示“奖品创建成功”测试用例2奖品名称为空预期结果提示“奖品名称不能为空”测试用例3奖品图片为空预期结果提示“请选择奖品图片”测试用例4奖品价格为空预期结果提示“奖品价格不能为空”测试用例5奖品描述为空预期结果提示“奖品描述不能为空”测试用例6奖品价格小于0预期结果提示“价格必须大于0”2.3.人员管理模块2.3.1.人员列表测试用例1点击人员列表预期结果显示人员列表2.3.2.注册用户测试用例1姓名、邮箱和手机号填写正确预期结果注册成功跳转至人员列表测试用例2姓名为空预期结果提示“请输入您的姓名”测试用例3邮箱为空预期结果提示“请输入有效的邮箱地址”测试用例4手机号为空预期结果提示“请输入您的手机号”测试用例5邮箱已存在预期结果弹窗提示“注册失败!邮箱已注册!”测试用例6邮箱格式错误预期结果提示“请输入有效的邮箱地址”测试用例7手机号已存在预期结果弹窗提示“注册失败!手机号已注册!”测试用例8手机号格式错误预期结果弹窗提示“注册失败!手机号错误!”3.抽奖页面3.1.活动已完成测试用例1点击活动预期结果显示中奖名单3.2.活动进行中测试用例1第一个奖品点击开始抽奖预期结果确定中奖人测试用例2查看上一奖项预期结果显示上一奖项测试用例3分享结果可供未登录用户查看预期结果查看中奖结果四、自动化测试//工具类 import io.github.bonigarcia.wdm.WebDriverManager; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.WebDriverWait; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.text.SimpleDateFormat; import java.time.Duration; public class Utils { public static WebDriver driver null; public WebDriverWait wait null; public Utils(String url){ driver creatDriver(); driver.get(url); wait new WebDriverWait(driver, Duration.ofSeconds(3)); } private WebDriver creatDriver(){ if (driver null){ WebDriverManager.chromedriver().setup(); ChromeOptions options new ChromeOptions(); options.addArguments(--remote-allow-origins*); driver new ChromeDriver(options); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); } return driver; } public void screenShot(String str) throws IOException { //时间格式 SimpleDateFormat sim1 new SimpleDateFormat(yyyy-MM-dd); SimpleDateFormat sim2 new SimpleDateFormat(HHmmssSS); String dirTime sim1.format(System.currentTimeMillis()); //日期文件夹 String fileTime sim2.format(System.currentTimeMillis()); //文件名时间 //截图保存路径 String fileName ./src/test/java/images/ dirTime / str - fileTime .jpg; //截图并保存 File srcFile ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcFile,new File(fileName)); System.out.println(fileName); } public static void quit(){ if (driver ! null){ driver.quit(); } } }//注册页面 import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.support.ui.ExpectedConditions; import java.io.IOException; public class RegisterPage extends Utils{ public RegisterPage(String url) { super(url); } public void checkPage() throws IOException { String title driver.findElement(By.cssSelector(body div h2)).getText(); System.out.println(注册标题title); driver.findElement(By.cssSelector(#name)); driver.findElement(By.cssSelector(#mail)); driver.findElement(By.cssSelector(#phoneNumber)); driver.findElement(By.cssSelector(#password)); driver.findElement(By.cssSelector(#registerForm button)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void registerFail() throws IOException { //清空所有输入框 driver.findElement(By.cssSelector(#name)).clear(); driver.findElement(By.cssSelector(#mail)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); driver.findElement(By.cssSelector(#password)).clear(); //填写信息 driver.findElement(By.cssSelector(#name)).sendKeys(1001); driver.findElement(By.cssSelector(#mail)).sendKeys(123qq.com); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(13145678912); driver.findElement(By.cssSelector(#password)).sendKeys(123456); driver.findElement(By.cssSelector(#registerForm button)).click(); wait.until(ExpectedConditions.alertIsPresent()); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); Alert alert driver.switchTo().alert(); alert.accept(); } public void registerSuccess() throws IOException { //清空所有输入框 driver.findElement(By.cssSelector(#name)).clear(); driver.findElement(By.cssSelector(#mail)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); driver.findElement(By.cssSelector(#password)).clear(); //填写信息 driver.findElement(By.cssSelector(#name)).sendKeys(1002); driver.findElement(By.cssSelector(#mail)).sendKeys(125qq.com); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(13144678912); driver.findElement(By.cssSelector(#password)).sendKeys(123456); driver.findElement(By.cssSelector(#registerForm button)).click(); wait.until(ExpectedConditions.alertIsPresent()); driver.switchTo().alert().accept(); } }//登录页面 import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.support.ui.ExpectedConditions; import java.io.IOException; public class LoginPage extends Utils{ public LoginPage(String url) { super(url); } public void checkPage() throws IOException { driver.findElement(By.cssSelector(body div div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 div.tab-box span.active.tab-span)); driver.findElement(By.cssSelector(#phoneNumber)); driver.findElement(By.cssSelector(#password)); driver.findElement(By.cssSelector(#loginForm button)); driver.findElement(By.cssSelector(body div div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 div.tab-box span.tab-span.active)); driver.findElement(By.cssSelector(#loginMobile)); driver.findElement(By.cssSelector(#verificationCode)); driver.findElement(By.cssSelector(#getVerificationCode)); driver.findElement(By.cssSelector(#loginForm button)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void loginFail() throws IOException { driver.findElement(By.cssSelector(body div div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 div.tab-box span.active.tab-span)).click(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); driver.findElement(By.cssSelector(#password)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(13112349876); driver.findElement(By.cssSelector(#password)).sendKeys(123456); driver.findElement(By.cssSelector(#loginForm button)).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert driver.switchTo().alert(); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); alert.accept(); } public void loginSuccess() throws IOException { driver.findElement(By.cssSelector(body div div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 div.tab-box span.active.tab-span)).click(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); driver.findElement(By.cssSelector(#password)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(19856918379); driver.findElement(By.cssSelector(#password)).sendKeys(123456); driver.findElement(By.cssSelector(#loginForm button)).click(); } }//活动页面 import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import java.io.IOException; import java.util.List; import java.util.Set; public class ActivityPage extends Utils{ public ActivityPage(String url) { super(url); } //检查元素 public void checkPage() throws IOException { String title driver.findElement(By.cssSelector(body div.header-box div.user-box div span)).getText(); assert title.equals(退出); driver.findElement(By.cssSelector(#activitiesList)); driver.findElement(By.cssSelector(#createActivity)); driver.findElement(By.cssSelector(#prizeList)); driver.findElement(By.cssSelector(body div.cont-box div.sidebar ul li:nth-child(2) ul li:nth-child(2) a)); driver.findElement(By.cssSelector(#userList)); driver.findElement(By.cssSelector(#register)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } //用户管理 public void checkRegisterPage() throws IOException { driver.findElement(By.cssSelector(#register)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String title driver.findElement(By.cssSelector(body div h2)).getText(); assert title.equals(填写注册信息); driver.findElement(By.cssSelector(#name)); driver.findElement(By.cssSelector(#mail)); driver.findElement(By.cssSelector(#phoneNumber)); driver.findElement(By.cssSelector(#registerForm button)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void registerFail() throws IOException { driver.findElement(By.cssSelector(#register)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); //清空所有输入框 driver.findElement(By.cssSelector(#name)).clear(); driver.findElement(By.cssSelector(#mail)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); //填写信息 driver.findElement(By.cssSelector(#name)).sendKeys(1001); driver.findElement(By.cssSelector(#mail)).sendKeys(123qq.com); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(13145678912); driver.findElement(By.cssSelector(#registerForm button)).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert driver.switchTo().alert(); alert.accept(); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void registerSuccess() throws IOException { driver.findElement(By.cssSelector(#register)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); //清空所有输入框 driver.findElement(By.cssSelector(#name)).clear(); driver.findElement(By.cssSelector(#mail)).clear(); driver.findElement(By.cssSelector(#phoneNumber)).clear(); //填写信息 driver.findElement(By.cssSelector(#name)).sendKeys(1003); driver.findElement(By.cssSelector(#mail)).sendKeys(259qq.com); driver.findElement(By.cssSelector(#phoneNumber)).sendKeys(13145658912); driver.findElement(By.cssSelector(#registerForm button)).click(); wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(#userList))); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } //奖品管理 public void checkCreatePrizePage() throws IOException { driver.findElement(By.cssSelector(body div.cont-box div.sidebar ul li:nth-child(2) ul li:nth-child(2) a)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String title driver.findElement(By.cssSelector(body div h2)).getText(); assert title.equals(开始创建奖品); driver.findElement(By.cssSelector(#prizeName)); driver.findElement(By.cssSelector(#prizeImageUrl)); driver.findElement(By.cssSelector(#price)); driver.findElement(By.cssSelector(#description)); driver.findElement(By.cssSelector(#prizeForm button)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void createPrizeFail() throws IOException { driver.findElement(By.cssSelector(body div.cont-box div.sidebar ul li:nth-child(2) ul li:nth-child(2) a)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); driver.findElement(By.cssSelector(#prizeName)).sendKeys(测试1); driver.findElement(By.cssSelector(#prizeImageUrl)); driver.findElement(By.cssSelector(#price)).sendKeys(9999); driver.findElement(By.cssSelector(#description)).sendKeys(测试1); driver.findElement(By.cssSelector(#prizeForm button)).click(); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void createPrizeSuccess() throws IOException { driver.findElement(By.cssSelector(body div.cont-box div.sidebar ul li:nth-child(2) ul li:nth-child(2) a)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); driver.findElement(By.cssSelector(#prizeName)).sendKeys(测试1); driver.findElement(By.cssSelector(#prizeImageUrl)); driver.findElement(By.cssSelector(#price)).sendKeys(9999); driver.findElement(By.cssSelector(#prizeImageUrl)) .sendKeys(C:\\Users\\Administrator\\Desktop\\Java-抽奖系统\\耳机.jpg); driver.findElement(By.cssSelector(#description)).sendKeys(测试1); driver.findElement(By.cssSelector(#prizeForm button)).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert driver.switchTo().alert(); alert.accept(); wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(#prizeList))); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void checkPricePage() throws IOException { driver.findElement(By.cssSelector(#prizeList)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String title driver.findElement(By.cssSelector(body div h2)).getText(); assert title.equals(奖品列表); String id driver.findElement(By.cssSelector(body div div.table-box table thead tr th:nth-child(1))).getText(); assert id.equals(奖品id); String prizePic driver.findElement(By.cssSelector(body div div.table-box table thead tr th:nth-child(2))).getText(); assert prizePic.equals(奖品图); String prizeName driver.findElement(By.cssSelector(body div div.table-box table thead tr th:nth-child(3))).getText(); assert prizeName.equals(奖品名); String prizeDesc driver.findElement(By.cssSelector(body div div.table-box table thead tr th:nth-child(4))).getText(); assert prizeDesc.equals(奖品描述); String price driver.findElement(By.cssSelector(body div div.table-box table thead tr th:nth-child(5))).getText(); assert price.equals(奖品价值); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(1))); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(2))); driver.findElement(By.cssSelector(body div div.pagination span)); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(4))); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(5))); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } // 活动管理 public void checkCreateActivityPage() throws IOException { driver.findElement(By.cssSelector(#createActivity)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String title driver.findElement(By.cssSelector(body div.container h2)).getText(); assert title.equals(创建抽奖活动); driver.findElement(By.cssSelector(#activityName)); driver.findElement(By.cssSelector(#description)); driver.findElement(By.cssSelector(#buttonPrizes)); driver.findElement(By.cssSelector(#buttonUsers)); driver.findElement(By.cssSelector(#createActivity)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void createActivityFail(){ driver.findElement(By.cssSelector(#createActivity)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); driver.findElement(By.cssSelector(#activityName)).clear(); driver.findElement(By.cssSelector(#description)).clear(); driver.findElement(By.cssSelector(#activityName)).sendKeys(自动化测试1); driver.findElement(By.cssSelector(#description)).sendKeys(自动化测试1); driver.findElement(By.cssSelector(#buttonPrizes)).click(); WebElement firstPrizeItem driver.findElement(By.cssSelector(#prizesContainer div.prize-item:nth-child(1))); firstPrizeItem.findElement(By.cssSelector(input[typecheckbox])).click(); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) input.form-control)).clear(); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) input.form-control)) .sendKeys(1); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) select)) .sendKeys(一等奖); driver.findElement(By.cssSelector(#prizesModal div div.form-btn-box button.btn.btn-primary)).click(); driver.findElement(By.cssSelector(#buttonUsers)).click(); driver.findElement(By.cssSelector(#usersModal div div.form-btn-box button.btn.btn-primary)).click(); driver.findElement(By.cssSelector(#createActivity)).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert driver.switchTo().alert(); alert.accept(); } public void createActivitySuccess(){ driver.findElement(By.cssSelector(#createActivity)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); driver.findElement(By.cssSelector(#activityName)).clear(); driver.findElement(By.cssSelector(#description)).clear(); driver.findElement(By.cssSelector(#activityName)).sendKeys(自动化测试1); driver.findElement(By.cssSelector(#description)).sendKeys(自动化测试1); driver.findElement(By.cssSelector(#buttonPrizes)).click(); WebElement firstPrizeItem driver.findElement(By.cssSelector(#prizesContainer div.prize-item:nth-child(1))); firstPrizeItem.findElement(By.cssSelector(input[typecheckbox])).click(); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) input.form-control)).clear(); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) input.form-control)) .sendKeys(1); firstPrizeItem.findElement(By.cssSelector(#prizesContainer div:nth-child(1) select)) .sendKeys(一等奖); driver.findElement(By.cssSelector(#prizesModal div div.form-btn-box button.btn.btn-primary)).click(); driver.findElement(By.cssSelector(#buttonUsers)).click(); WebElement firstUserItem driver.findElement(By.cssSelector(#usersContainer div:nth-child(1))); firstUserItem.findElement(By.cssSelector(#user-60)).click(); firstUserItem driver.findElement(By.cssSelector(#usersContainer div:nth-child(2))); firstUserItem.findElement(By.cssSelector(#user-59)).click(); driver.findElement(By.cssSelector(#usersModal div div.form-btn-box button.btn.btn-primary)).click(); driver.findElement(By.cssSelector(#createActivity)).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert driver.switchTo().alert(); alert.accept(); } public void checkActivityPage() throws IOException { driver.findElement(By.cssSelector(#activitiesList)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String title driver.findElement(By.cssSelector(body div h2)).getText(); assert title.equals(活动列表); driver.findElement(By.cssSelector(#activities div:nth-child(1) div.activity-info h4)); driver.findElement(By.cssSelector(#activities div:nth-child(1) div.activity-info p)); driver.findElement(By.cssSelector(#activities div:nth-child(1) div.active p a)); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(1))); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(2))); driver.findElement(By.cssSelector(body div div.pagination span)); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(4))); driver.findElement(By.cssSelector(body div div.pagination button:nth-child(5))); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void checkDrawPage() throws IOException { driver.findElement(By.cssSelector(#activitiesList)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); //活动列表页 String curWindow driver.getWindowHandle(); driver.findElement(By.cssSelector(#activities div:nth-child(1) div.active p a)).click(); SetString windowHandles driver.getWindowHandles(); for (String windowHandle : windowHandles){ if(!curWindow.equals(windowHandle)){ driver.switchTo().window(windowHandle); break; } } wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(#container))); driver.findElement(By.cssSelector(#title)); driver.findElement(By.cssSelector(#disc)); driver.findElement(By.cssSelector(#image)); driver.findElement(By.cssSelector(#container div.opt-box span.btn.pre-btn)); driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)); screenShot(Thread.currentThread().getStackTrace()[1].getMethodName()); } public void draw(){ driver.findElement(By.cssSelector(#activitiesList)).click(); WebElement iframe driver.findElement(By.cssSelector(#contentFrame)); driver.switchTo().frame(iframe); String originalWindow driver.getWindowHandle(); driver.findElement(By.cssSelector(#activities div:nth-child(1) div.active p a)).click(); for (String window : driver.getWindowHandles()) { if (!window.equals(originalWindow)) { driver.switchTo().window(window); break; } } while(driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)).getText().contains(开始抽奖)){ driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)).click(); driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)).click(); } String next driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)).getText(); assert next.contains(已抽完下一步); driver.findElement(By.cssSelector(#container div.opt-box span.btn.next-btn)).click(); String share driver.findElement(By.cssSelector(#container div.opt-box span.btn.copy-btn)).getText(); assert share.contains(分享结果); } }五、兼容性测试测试用例1Chrome预期结果无异常布局功能正常测试用例2Edge预期结果无异常布局功能正常六、易用性测试错误有引导反馈清晰七、测试总结本次测试覆盖的功能、性能、兼容性、安全性等核心指标均满足上线标准建议项目可按计划上线。

更多文章