抽奖系统测试报告
目录
抽奖系统测试报告
项目链接:
项目功能:
管理员登录:
登录方式分为两种:
手机号密码登录: 正确输入密码和手机号登录
短信验证码登录: 输入手机号,等待验证码,输入验证码登录
管理员注册:
登录页面点击注册按钮即可注册管理员身份
人员管理模块:
人员管理模块分为注册参加抽奖人员和显示人员列表
注册抽奖人员才可参加抽奖活动
奖品管理模块:
分为奖品列表和创建奖品功能
创建奖品需添加奖品名称,奖品描述,奖品图片,奖品价格即可
活动模块:
分为展示当前活动和创建活动
创建活动需圈选奖品数量,人员数量,数量需一直
项目测试用例:
登录:
注册:
人员管理模块:
奖品管理模块:
活动管理模块:
Bug发现:
Bug1:
在成功创建活动后,活动列表显示出现错误
先打开浏览器开发者工具,查找相应链接 ,复制接口去 postman查看
postman测试接口也返回null,说明是后端代码问题
postman也返回null,说明是后端问题
找出问题所在具体代码块:
修改代码: activityDTO —> ActivityDo
修改后效果:
Bug2:
自动化测试
创建公共类Utils
public class Utils {
public static WebDriver driver;
public static WebDriver createDriver(){
if(driver == null){
ChromeOptions options = new ChromeOptions();
//允许访问所有链接
options.addArguments("--remote-allow-origins=*");
driver = new ChromeDriver(options);
//等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
}
return driver;
}
public Utils(String url){
driver = createDriver();
driver.get(url);
}
public void getScreenShot (String str) throws IOException {
//屏幕截图
SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");
String dirTime = sim1.format(System.currentTimeMillis());
String fileTime = sim1.format(System.currentTimeMillis());
String filename = "./src/test/image/" + dirTime +"/" + str +"-"+fileTime+".png";
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//srcFile放到指定位置
FileUtils.copyFile(srcFile,new File(filename));
}
}
测试登录注册页面 :
public class LoginTest extends Utils {
public static String url = "http://82.157.143.27:8083/blogin.html";
public LoginTest() {
super(url);
}
//管理员登录
public void Login() throws InterruptedException {
driver.findElement(By.cssSelector("#phoneNumber")).sendKeys("13334445555");
driver.findElement(By.cssSelector("#password")).sendKeys("666666");
driver.findElement(By.cssSelector("#loginForm > button")).click();
Thread.sleep(2000);
}
//管理员注册
public void Create(){
driver.findElement(By.cssSelector("body > div > div.login-container.col-sm-6.col-md-6.col-lg-5.col-xl-5 > div.register-link > a")).click();
driver.findElement(By.cssSelector("#name")).sendKeys("李流");
driver.findElement(By.cssSelector("#mail")).sendKeys("3323323@qq.com");
driver.findElement(By.cssSelector("#phoneNumber")).sendKeys("15091602254");
driver.findElement(By.cssSelector("#password")).sendKeys("666666");
driver.findElement(By.cssSelector("#registerForm > button")).click();
driver.quit();
}
}
测试普通用户注册:
public class RegisterUserTest extends Utils {
public static String url = "http://82.157.143.27:8083/admin.html";
public RegisterUserTest() {
super(url);
}
public void createPeple() throws InterruptedException {
driver.findElement(By.cssSelector("#register")).click();
WebElement element = driver.findElement(By.id("contentFrame"));
driver.switchTo().frame(element);//切换
// Thread.sleep(3000);
driver.findElement(By.cssSelector("#name")).sendKeys("李siyuan");
driver.findElement(By.cssSelector("#mail")).sendKeys("3233123@qq.com");
driver.findElement(By.cssSelector("#phoneNumber")).sendKeys("17091602254");
driver.findElement(By.cssSelector("#registerForm > button")).click();//点击注册
WebElement e = driver.findElement(By.cssSelector("#userList > tr:nth-child(1) > td:nth-child(2)"));
e.getText();
assert e.equals("李siyuan");
}
}
测试创建奖品:
public class CreatePrizeTest extends Utils {
public static String url = "http://82.157.143.27:8083/admin.html";
public CreatePrizeTest() {
super(url);
}
public void create() throws InterruptedException, IOException {
driver.findElement(By.cssSelector("body > div.cont-box > div.sidebar > ul > li:nth-child(2) > ul > li:nth-child(2) > a")).click();
WebElement element = driver.findElement(By.id("contentFrame"));
driver.switchTo().frame(element);//切换
// Thread.sleep(3000);
driver.findElement(By.cssSelector("#prizeName")).sendKeys("布娃娃");
Thread.sleep(2000);
driver.findElement(By.cssSelector("#prizeImageUrl")).sendKeys("C:\\Users\\27970\\Pictures\\Screenshots\\meow.png");
Thread.sleep(2000);
driver.findElement(By.cssSelector("#price")).sendKeys("170");
Thread.sleep(2000);
driver.findElement(By.cssSelector("#description")).sendKeys("布娃娃一个");
Thread.sleep(2000);
getScreenShot(getClass().getName());
driver.findElement(By.cssSelector("body > div > button")).click();
}
}
测试创建抽奖活动:
public class CreateActivityTest extends Utils {
public static String url = "http://82.157.143.27:8083/admin.html";
public CreateActivityTest() {
super(url);
}
//创建抽奖活动
public void Create() throws InterruptedException, IOException {
driver.findElement(By.cssSelector("#createActivity")).click();
WebElement element = driver.findElement(By.id("contentFrame"));
driver.switchTo().frame(element);//切换
// Thread.sleep(3000);
driver.findElement(By.cssSelector("#activityName")).sendKeys("自动化测试创建活动");
driver.findElement(By.cssSelector("#description")).sendKeys("自动化测试创建活动");
Thread.sleep(2000);
driver.findElement(By.cssSelector("#buttonPrizes")).click();//圈选奖品
driver.findElement(By.cssSelector("#prize-26")).click();//勾选奖品
WebElement e = driver.findElement(By.cssSelector("#prizesContainer > div:nth-child(1) > input.form-control"));
e.click();
e.clear();
e.sendKeys("2");//设置奖品数量
WebElement c = driver.findElement(By.cssSelector("#prizesContainer > div:nth-child(1) > select"));
Select select = new Select(c);
select.selectByVisibleText("二等奖");//操作下拉框选择奖品等级
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("#user-64")).click();
driver.findElement(By.cssSelector("#user-63")).click();//勾选人员
Thread.sleep(1000);
driver.findElement(By.cssSelector("#usersModal > div > div.form-btn-box > button.btn.btn-primary")).click();
//创建活动
driver.findElement(By.cssSelector("#createActivity")).click();
getScreenShot(getClass().getName());
Thread.sleep(1000);
Alert alert = driver.switchTo().alert();//确认弹窗
//确认
alert.accept();
}
测试是否打开抽奖页面并抽奖
public class ChoujiangTest extends Utils {
public static String url = "http://82.157.143.27:8083/admin.html";
public ChoujiangTest() {
super(url);
}
public void Chou() throws InterruptedException, IOException {
driver.findElement(By.cssSelector("#activitiesList")).click();
WebElement element = driver.findElement(By.id("contentFrame"));
driver.switchTo().frame(element);//切换
Thread.sleep(1000);
driver.findElement(By.cssSelector("#activities > div:nth-child(1) > div.active > p > a")).click();
String currHandles = driver.getWindowHandle();// 获取当前窗口句柄
// 获取所有窗口句柄
Set<String> windowHandles = driver.getWindowHandles();
// 遍历窗口句柄,找到新窗口的句柄
for(String handle : windowHandles){
if(!handle.equals(currHandles)){
driver.switchTo().window(handle);// 切换到新窗口
}
}
WebElement ele = driver.findElement(By.cssSelector("#container > div.opt-box > span.btn.next-btn"));
getScreenShot(getClass().getName());
ele.click();
}
}