笔记系统项目测试

news2024/11/23 19:04:11

一、测试用例

1.1功能测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2性能测试

在这里插入图片描述

1.3界面测试

在这里插入图片描述

1.4兼容性测试

在这里插入图片描述

1.5易用性测试

在这里插入图片描述

1.6安全性测试

在这里插入图片描述

二、自动化测试

那就对上面的部分用例进行自动化测试
Selenium3 + Junit5

2.1注册页面自动化测试

/**
     * 针对两次输入密码不一致进行验证
     * @param username
     * @param password
     * @param password2
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test01.csv")
    public void falseLogin1(String username,String password,String password2) throws InterruptedException {
        //打开注册页面
        webDriver.get("http://101.201.119.191:8080/reg.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);

        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);

        webDriver.findElement(By.cssSelector("#password2")).sendKeys(password2);
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("两次密码输入不一致,请先检查,重新输入!",alertText);
    }

在这里插入图片描述

/**
     * 分别针对空账号,空密码,空账号和空密码进行测试
     * @param username
     * @param password
     * @param password2
     * @throws InterruptedException
     */
    @Order(2)
    @ParameterizedTest
    @CsvSource({"123,'',123"})
    //密码为空
    void nullLogin1(String username,String password,String password2) throws InterruptedException {
        //打开注册页面
        webDriver.get("http://101.201.119.191:8080/reg.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);


        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#password2")).sendKeys(password2);

        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("请先输入密码!",alertText);
    }

在这里插入图片描述

@Order(3)
    @ParameterizedTest
    @CsvSource({"'',123,123"})
        //用户名为空
    void nullLogin2(String username,String password,String password2) throws InterruptedException {
        //打开注册页面
        webDriver.get("http://101.201.119.191:8080/reg.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#password2")).sendKeys(password2);
        webDriver.findElement(By.cssSelector("#submit")).click();

        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("请先输入用户名!",alertText);
    }

在这里插入图片描述

/**
     * 注册成功
     * @throws InterruptedException
     */
    @Order(4)
    @ParameterizedTest
    @CsvFileSource(resources = "test03.csv")
    void LoginSuccess(String username,String password,String password2) throws InterruptedException {
        //打开注册页面
        webDriver.get("http://101.201.119.191:8080/reg.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //输入账号xiao
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //输入密码123456
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //输入确认密码123456
        webDriver.findElement(By.cssSelector("#password2")).sendKeys(password2);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        //webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("恭喜:注册成功!",alertText);
        // 关闭弹框
        alert.accept();
    }

在这里插入图片描述

2.2登录页面自动化测试

/**
     * 用户名错误的情况
     * @param username
     * @param password
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test02.csv")
    public void falseLogin1(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        webDriver.findElement(By.cssSelector("#submit")).click();

        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("抱歉:登录失败!用户名不存在!",alertText);
        // 关闭弹框
        alert.accept();

    }

在这里插入图片描述

/**
     * 密码错误的情况
     * @param username
     * @param password
     * @throws InterruptedException
     */
    @Order(2)
    @ParameterizedTest
    @CsvFileSource(resources = "test04.csv")
    public void falseLogin2(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        webDriver.findElement(By.cssSelector("#submit")).click();

        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("抱歉:登录失败!一天内密码输入错误五次,账户将会被冻结!还剩余:3次机会!",alertText);
        // 关闭弹框
        alert.accept();
    }

在这里插入图片描述

/**
     * 用户名为空的情况
     * @param username
     * @param password
     * @throws InterruptedException
     */
    @Order(3)
    @ParameterizedTest
    @CsvSource({"'',123456,1234"})
    public void nullLogin1(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        webDriver.findElement(By.cssSelector("#submit")).click();

        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("请先输入用户名!",alertText);
        // 关闭弹框
        alert.accept();

    }

在这里插入图片描述

/**
     * 密码为空的情况
     * @param username
     * @param password
     * @throws InterruptedException
     */
    @Order(4)
    @ParameterizedTest
    @CsvSource({"res,'',1234"})
    public void nullLogin2(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        webDriver.findElement(By.cssSelector("#submit")).click();

        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("请先输入密码!",alertText);
        // 关闭弹框
        alert.accept();
    }

在这里插入图片描述

/**
     * 验证码错误的情况
     * @param username
     * @param password
     * @throws InterruptedException
     */
    @Order(5)
    @ParameterizedTest
    @CsvFileSource(resources = "test06.csv")
    public void falseLogin3(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        webDriver.findElement(By.cssSelector("#submit")).click();

        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("抱歉:登录失败!验证码错误!",alertText);
        // 关闭弹框
        alert.accept();
    }

在这里插入图片描述

/**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(6)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("用户36",cur_name);
    }

在这里插入图片描述

2.3个人列表页自动化测试

/**
     * 发布的博客数量不为0
     */
    @Test
    void MyBlogList1(){
        webDriver.get("http://101.201.119.191:8080/myblog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        int title_num = webDriver.findElements(By.cssSelector("#artlist > div:nth-child(1) > div.title")).size();
        Assertions.assertNotEquals(0,title_num);
    }

在这里插入图片描述

/**
     * 点击查看全文按钮能跳转到对应页面
     * @throws InterruptedException
     */
    @Test
    void MyBlogList2() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/myblog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#artlist > div:nth-child(1) > a:nth-child(4)")).click();
        sleep(40);
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/blog_content.html?id=69",cur_url);
    }

在这里插入图片描述

/**
     * 点击修改按钮能够跳转到对应页面
     * @throws InterruptedException
     */
    @Test
    void MyBlogList3() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/myblog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#artlist > div:nth-child(1) > a:nth-child(5)")).click();
        sleep(40);
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/blog_edit.html?id=68",cur_url);
    }

在这里插入图片描述

2.4个人主页自动化测试

package MyblogTest;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class BlogList extends InitAndEnd{
    /**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(40);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("小六",cur_name);
    }

    /**
     * 点击下一页按钮页面能正常跳转
     * @throws InterruptedException
     */
    @Test
    void BlogList2() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/blog_list.html");
        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        webDriver.findElement(By.xpath("//*[@id=\"pageDiv\"]/button[3]")).click();
        sleep(40);
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/blog_list.html?pageIndex=2&pageSize=3&searchName=null",cur_url);
    }

    /**
     * 点击首页按钮页面能正常显示
     * @throws InterruptedException
     */
    @Test
    void BlogList3() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/blog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#pageDiv > button.button.is-primary")).click();
        WebDriverWait wait = new WebDriverWait(webDriver, 10);
        wait.until(ExpectedConditions.alertIsPresent());
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("抱歉:不能跳转啦,当前已经在首页!",alertText);
        // 关闭弹框
        alert.accept();
    }


    /**
     * 点击查看全文按钮能跳转到对应页面
     * @throws InterruptedException
     */
    @Test
    void BlogList1() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/blog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#artlist > div:nth-child(1) > a")).click();
        sleep(40);
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/blog_content.html?id=71",cur_url);
    }


    /**
     * 点击博客添加按钮跳转至文章添加页
     */
    @Test
    void BlogList4(){
        webDriver.get("http://101.201.119.191:8080/myblog_list.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/blog_add.html",cur_url);
    }
}

在这里插入图片描述

2.5文章添加页自动化测试

package MyblogTest;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class BlogAdd extends InitAndEnd{
    /**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(40);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("小六",cur_name);
    }


    /**
     * 左侧的文章草稿列数目不应该为0(即左侧的草稿列表应该能正常显示)
     */
    @Test
    void BlogAdd2(){
        webDriver.get("http://101.201.119.191:8080/blog_add.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        int title_num = webDriver.findElements(By.cssSelector("#leftContain > div > header > p")).size();
        Assertions.assertNotEquals(0,title_num);
    }


    /**
     * 点击发布文章按钮文章能正常发布
     */
    @Test
    void BlogAdd3() throws InterruptedException {
        webDriver.get("http://101.201.119.191:8080/blog_add.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //通过JS脚本进行标题输入
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title\").value=\"自动化测试\"");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        ///点击发布
        webDriver.findElement(By.cssSelector("body > div.edit-contain > div.blog-edit-container > div.title > button:nth-child(2)")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("恭喜:添加成功!是否继续添加文章?",alertText);
        alert.dismiss();
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);

    }
}

在这里插入图片描述

2.6文章详情页自动化测试

package MyblogTest;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.By;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class BlogContent extends InitAndEnd{
    /**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("小六",cur_name);
    }


    /**
     * 点击关注按钮是否能正常关注
     * @throws InterruptedException
     */
    @Test
    void BlogContent1() throws InterruptedException {
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(4)")).click();
        webDriver.get("http://101.201.119.191:8080/blog_content.html?id=66");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#pink")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        String cur_str = webDriver.findElement(By.cssSelector("#pink")).getText();
        Assertions.assertEquals("取消关注",cur_str);
    }

    /**
     * 刷新进入一次页面阅读量是否加1
     * @throws InterruptedException
     */
    @Test
    void BlogContent2() throws InterruptedException {
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(4)")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#artlist > div:nth-child(3) > a")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        String cur_count = webDriver.findElement(By.cssSelector("#rcount")).getText();
        Assertions.assertEquals("5",cur_count);
    }
}

在这里插入图片描述

2.7文章编辑页自动化测试

package MyblogTest;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class BlogEdit extends InitAndEnd{
    /**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(40);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("小六",cur_name);
    }

    /**
     * 修改文章后点击发布按钮,文章是否能发布成功
     * @throws InterruptedException
     */
    @Test
    void BlogEdit1() throws InterruptedException {
        webDriver.findElement(By.cssSelector("#artlist > div:nth-child(1) > a:nth-child(5)")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //通过JS脚本进行标题输入
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title\").value=\"自动化测试111\"");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        ///点击发布
        webDriver.findElement(By.cssSelector("body > div.edit-contain > div > div.title > button:nth-child(2)")).click();
        sleep(5000);
        //
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("恭喜:成功!",alertText);
        alert.accept();
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
    }
}

在这里插入图片描述

2.8个人中心页自动化测试

package MyblogTest;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class PersonalCenter extends InitAndEnd{
    /**
     * 登陆成功
     * @param username
     * @param password
     * @param valicode
     * @throws InterruptedException
     */
    @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "test05.csv")
    void LoginSuccess(String username,String password,String valicode) throws InterruptedException {
        //打开登录页面
        webDriver.get("http://101.201.119.191:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#valicode")).sendKeys(valicode);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(40);
        //跳转到列表页
        //获取到当前页面的url
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        Assertions.assertEquals("http://101.201.119.191:8080/myblog_list.html",cur_url);
        String cur_name = webDriver.findElement(By.cssSelector("#userNickName")).getText();
        Assertions.assertEquals("小六",cur_name);
    }

    /**
     * 自己关注列表的数量是否显示正确
     * @throws InterruptedException
     */
    @Test
    void PersonalCenter1() throws InterruptedException {
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        String cur_str = webDriver.findElement(By.cssSelector("#pinkMyCount")).getText();
        Assertions.assertEquals("2",cur_str);
    }

    /**
     * 修改个人信息是否能提交成功
     * @throws InterruptedException
     */
    @Test
    void PersonalCenter2() throws InterruptedException {
        //通过JS脚本进行标题输入
        //输入名称
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"nickname\").value=\"小刘\"");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //输入登录名
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"username\").value=\"xioaliu\"");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //输入邮箱
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"email\").value=\"3073862723@qq.com\"");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //点击提交按钮
        webDriver.findElement(By.cssSelector("#personInfo > div.btn_submit > button.btn")).click();
        sleep(5000);
        //验证是否正确
        Alert alert = webDriver.switchTo().alert();
        String alertText = alert.getText();
        Assertions.assertEquals("恭喜:修改成功!",alertText);
        alert.accept();
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/871479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无涯教程-Perl - readline函数

描述 此函数从EXPR引用的文件句柄中读取一行,并返回输出。如果要直接使用FILEHANDLE,则必须将其作为typeglob传递。 Simply readline function is equvivalent to <>. 语法 以下是此函数的简单语法- readline EXPR返回值 此函数在标量context中仅返回一行,而在列表…

预测知识 | 机器学习预测模型局限性

预测知识 | 机器学习预测模型局限性 目录 预测知识 | 机器学习预测模型局限性问题描述未来发展参考资料 问题描述 数据基础设施&#xff1a;要构建模型&#xff0c;必须有数据&#xff0c;且有多来源的大数据。这一切都离不开数据基础设施的建设和发展。 错误数据输入&#xf…

「Web3大厂」价值70亿美元的核心竞争力

经过近 5 年的研发和酝酿&#xff0c;Linea 团队在 7 月的巴黎 ETHCC 大会期间宣布了主网 Alpha 的上线&#xff0c;引起了社区的广泛关注。截止 8 月 4 日&#xff0c;据 Dune 数据信息显示&#xff0c;其主网在一周内就涌入了 100 多个生态项目&#xff0c;跨入了超 2 万枚 E…

RabbitMQ基础(2)——发布订阅/fanout模式 topic模式 rabbitmq回调确认 延迟队列(死信)设计

目录 引出点对点(simple)Work queues 一对多发布订阅/fanout模式以登陆验证码为例pom文件导包application.yml文件rabbitmq的配置生产者生成验证码&#xff0c;发送给交换机消费者消费验证码 topic模式配置类增加配置生产者发送信息进行发送控制台查看 rabbitmq回调确认配置类验…

BGP的工作过程及报文

IGP核心:路由的计算。OSPF,ISIS等 BGP核心:路由的传递,不产生路由,只是路由的搬运工,一般用于规模特别大的网络中,只要TCP可达就可以建立邻居。 大型企业分支间采用BGP进行路由传递,不同的分支属于不同的BGP的AS,它们通过BGP进行路由交互。企业与运营商之间可使用BGP进行…

编写一个函数实现n的k次方,使用递归实现

在这个问题中&#xff0c;我们要考虑k的取值正负。 代码实现&#xff1a; #include <stdio.h> double Pow(int n, int k) {if (k > 0)return n * Pow(n, k - 1);else if (k 0)return 1;elsereturn 1.0 / Pow(n, -k); }int main() {int n 0;int k 0;scanf("%d…

期权定价模型系列【4】—期权组合的Delta-Gamma-Vega中性

期权组合的Delta-Gamma-Vega中性 期权组合构建时往往会进行delta中性对冲&#xff0c;在进行中性对冲后&#xff0c;期权组合的delta敞口为0&#xff0c;此时期权组合仍然存在gamma与vega敞口。因此研究期权组合的delta-gamma-vega敞口中性是有必要的。 本文旨在对delta-gamma-…

面向未来的颠覆性技术创新

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在学习摘录和笔记专…

Leetcode 剑指 Offer II 039. 直方图最大矩形面积

题目难度: 困难 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定非负整数数组 heights &#xff0c;数组中的数字用来表示柱状…

大脑营行|“福安市华龙教育基金”支持家乡教育事业发展

8月8日&#xff0c;福安市松罗中学举行“福安市华龙教育基金”中考奖学金颁发仪式。福安市松罗乡党委书记钟文、乡长郑仁寿、福安市人民政府教育督导室副科级督导员&#xff08;片区领导&#xff09;陈秦、校长张明亮、各村支部书记、家长代表、受奖学生&#xff0c;校领导班子…

LabVIEW使用图像处理进行交通控制性能分析

LabVIEW使用图像处理进行交通控制性能分析 采用普雷维特、拉普拉斯、索贝尔和任意的空间域方法对存储的图像进行边缘检测&#xff0c;并获取实时图像。然而&#xff0c;对四种不同空间域边缘检测方法的核的性能分析。 以前&#xff0c;空路图像存储在数据库中&#xff0c;道路…

C语言实例_调用SQLITE数据库完成数据增删改查

一、SQLite介绍 SQLite是一种轻量级的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎。它被广泛应用于嵌入式设备、移动设备和桌面应用程序等领域。 SQLite的特点包括&…

使用wxPython和PyMuPDF在Python中显示PDF目录的实现

展示如何使用wxPython和PyMuPDF库在Python中选择PDF文件并将目录显示在列表框中。 简介&#xff1a; 在本篇教程中&#xff0c;我们将学习如何使用wxPython和PyMuPDF库在Python中选择PDF文件&#xff0c;并将其目录显示在一个列表框中。这将使用户能够方便地浏览PDF文档的目录…

每天一道leetcode:72. 编辑距离(动态规划困难)

今日份题目&#xff1a; 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例1 输入&#xff1a;word1 "horse", word…

文心一言 VS 讯飞星火 VS chatgpt (75)-- 算法导论7.2 4题

四、如果用go语言&#xff0c;银行一般会按照交易时间来记录某一账户的交易情况。但是&#xff0c;很多人却喜欢收到的银行对账单是按照支票号码的顺序来排列的。这是因为&#xff0c;人们通常都是按照支票号码的顺序来开出支票的&#xff0c;而商人也通常都是根据支票编号的顺…

centos7升级glibc2.28

1 概述 centos7自带的glibc对于某些软件是太旧的&#xff0c;决定将glibc升级至2.28。 2 安装过程 2.1 下载glibc源码 mkdir -p /opt/third-party && cd /opt/third-party wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar -xf glibc-2.28.tar.gz cd glibc…

ubuntu下gif动态图片的制作

Gif图片比视频小, 比静态JPG图片形象生动, 更适用于产品展示和步骤演示等。各种各样的gif动图为大家交流提供很大的乐趣. 这里简单介绍ubuntu系统下gif图的制作。 一、工具安装: kazam和ffmpeg kazam是linux下的一款简单但是功能强大的屏幕录制工具. 它可录制声音并选择全屏录…

【Kali】vmware虚拟机三种网络连接方式,ms17-010 , ms08_067的复现

【Kali】vmware虚拟机三种网络连接方式&#xff0c;ms17-010 &#xff0c; ms08_067的复现 nmapmsfconsolevmware虚拟机三种网络连接方式ms17-010ms08_067 kali中对windowsXP、windows 7漏洞利用使用到的工具&#xff1a;nmap、msfconsole。 nmap nmap是一个网络连接端扫描软件…

FL Studio 21最新for Windows-21.1.0.3267中文解锁版安装激活教程及更新日志

FL Studio 21最新版本for Windows 21.1.0.3267中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境&#xff08;IDE&#xff09;来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发…

QT编译fabs not declared in this scope

使用MinGW进行编译出现如下情况。 这种查了不少资料都没有解决&#xff0c;因为在使用微软的编译器不存在这个问题。 后面发现只需要在加入头文件 #include <math.h>就可以解决了。