目录

抽奖系统测试报告

抽奖系统测试报告


项目链接:

项目功能:

管理员登录:

登录方式分为两种:

手机号密码登录: 正确输入密码和手机号登录

短信验证码登录: 输入手机号,等待验证码,输入验证码登录

管理员注册:

登录页面点击注册按钮即可注册管理员身份

人员管理模块:

人员管理模块分为注册参加抽奖人员和显示人员列表

注册抽奖人员才可参加抽奖活动

奖品管理模块:

分为奖品列表和创建奖品功能

创建奖品需添加奖品名称,奖品描述,奖品图片,奖品价格即可

活动模块:

分为展示当前活动和创建活动

创建活动需圈选奖品数量,人员数量,数量需一直

项目测试用例:

登录:

https://i-blog.csdnimg.cn/direct/65e01465ac0f4e1ba42bd8329f23ad88.png

注册:

https://i-blog.csdnimg.cn/direct/2601261604eb4f2dbcb74bab8165d11d.png

人员管理模块:

https://i-blog.csdnimg.cn/direct/e1befd9af8984695ae8f28bd81e60541.png

奖品管理模块:

活动管理模块:

https://i-blog.csdnimg.cn/direct/ca29d6dc32f54c969a16d4a55b91be1f.png

Bug发现:

Bug1:

在成功创建活动后,活动列表显示出现错误

https://i-blog.csdnimg.cn/direct/5c43dadd628747b7a553235d0fe71f14.png

先打开浏览器开发者工具,查找相应链接 ,复制接口去 postman查看

https://i-blog.csdnimg.cn/direct/f729b6b6586b4b27842909112956fc12.png

postman测试接口也返回null,说明是后端代码问题

https://i-blog.csdnimg.cn/direct/363d0d3cf0bf437f98cce5fbc15e5115.png

postman也返回null,说明是后端问题

找出问题所在具体代码块:

https://i-blog.csdnimg.cn/direct/324bcbf80a9b4994844a95e513a158f2.png

修改代码: activityDTO  —> ActivityDo

修改后效果:

https://i-blog.csdnimg.cn/direct/00799a0c602e42bd9f0532cab70380fe.png

Bug2:

https://i-blog.csdnimg.cn/direct/5aba6f3672a44722b9c92da565028050.png

https://i-blog.csdnimg.cn/direct/4427f8c274f74e19889e0b64ade95ec7.png

https://i-blog.csdnimg.cn/direct/f1a00a83d60d4281bc36b3c602b9dee5.png

自动化测试

创建公共类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();
    }
}

https://i-blog.csdnimg.cn/direct/e000b458300e4ff089187a777c59b884.png

测试普通用户注册:

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");

    }
}

https://i-blog.csdnimg.cn/direct/56d0645105804beea4f88dd1fd632de2.png

测试创建奖品:

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();

    }
}

https://i-blog.csdnimg.cn/direct/a21dfc9f414f4db9a82599bc7981909d.png

测试创建抽奖活动:

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();


    }

https://i-blog.csdnimg.cn/direct/1dacdef9994345e2af8fd05d0f264f5e.png

https://i-blog.csdnimg.cn/direct/954319ae2b7f4c3eb395d852c679b535.png

测试是否打开抽奖页面并抽奖

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();


    }
}

https://i-blog.csdnimg.cn/direct/664b3507c888479eb43fa24c8ebcc184.png