博客系统-项目测试

自动化博客项目

用户注册

java 复制代码
 @Order(1)
    @ParameterizedTest
    @CsvFileSource(resources = "regmes.csv")
    void Reg(String username , String password , String password2) throws InterruptedException {
        webDriver.get("http://211.159.172.237:8080/reg.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("#password2")).sendKeys(password2);
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        sleep(2000);

        //点击注册
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        sleep(2000);
        webDriver.switchTo().alert().accept();

登录验证

java 复制代码
 @Order(2)
    @ParameterizedTest
    @CsvFileSource(resources = "LoginSuccess.csv")
    void LoginSuccess(String username , String password , String blog_list_url) throws InterruptedException {
        //打开登录页
        webDriver.get("http://211.159.172.237: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);

        sleep(3000);
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        sleep(1000);
        //验证url
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals(blog_list_url, cur_url);

    }

效验个人博客列表页博客数量不为 0

java 复制代码
@Order(3)
    @Test
    //效验 个人博客列表页博客数量不为 0
    void MyBlogList() throws InterruptedException {

        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        sleep(3000);
        int title_num = webDriver.findElements(By.cssSelector(".title")).size();

        Assertions.assertNotEquals(0,title_num);
    }

博客系统主页

写博客

java 复制代码
 @Order(4)
    @Test
    void AddBlog() throws InterruptedException {

        //到系统主页看看
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(4)")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        sleep(3000);

        //写博客
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

        //通过js输入
        ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title\").value=\"自动化测试\"");

        sleep(1500);

        //点击发布
        webDriver.findElement(By.cssSelector("body > div.blog-edit-container > div.title > button")).click();
        sleep(1500);

        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        //弹窗点击取消
        webDriver.switchTo().alert().dismiss();

        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://211.159.172.237:8080/myblog_list.html",cur_url);

        sleep(1500);


//        webDriver.switchTo().alert().accept();

    }

我的博客列表页

效验 刚发布的博客的标题和时间

java 复制代码
    @Order(5)
    @Test
    //效验已发布博客的标题和时间
    void BlogInfoChecked() throws InterruptedException {
        webDriver.get("http://211.159.172.237:8080/myblog_list.html");

        String first_blog_title = webDriver.findElement
                (By.cssSelector("#artListDiv > div:nth-child(1) > div.title")).getText();

        String first_blog_time = webDriver.findElement
                (By.xpath("//*[@id=\"artListDiv\"]/div[1]/div[2]")).getText();

        Assertions.assertEquals("自动化测试",first_blog_title);

        sleep(3000);
        if(first_blog_time.contains("2023-10-28")) {
            System.out.println("时间正确");
        }else {
            System.out.println("当前时间是 :" + first_blog_time);
            System.out.println("时间错误");
        }
    }

查看 文章详情页

java 复制代码
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class BlogCases extends InitAndEnd{
    public static Stream<Arguments> Generator() {
        return Stream.of(Arguments.arguments("http://211.159.172.237:8080/blog_content.html",
                "博客正文","自动化测试"));
    }

 @Order(6)
    @ParameterizedTest
    @MethodSource("Generator")
    //博客详情页
    void BlogContent(String expected_url , String expected_title , String expected_blog_title) throws InterruptedException {
        webDriver.findElement(By.xpath("//*[@id=\"artListDiv\"]/div[1]/a[1]")).click();
        sleep(3000);
        //获取当前页面的url , http://211.159.172.237:8080/blog_content.html?aid=15
        String cur_url = webDriver.getCurrentUrl();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

        //获取当前页面的标题 , 博客正文
        String cur_title = webDriver.getTitle();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

        //获取当前博客的标题 , 自动化测试
        String blog_title = webDriver.findElement(By.cssSelector("#title")).getText();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

//        Assertions.assertEquals(expected_url , cur_url);
        Assertions.assertEquals(expected_title , cur_title);
        Assertions.assertEquals(expected_blog_title , blog_title);


        if(cur_url.contains(expected_url)) {
            System.out.println("博客详情正确");
        } else {
            System.out.println(cur_url);
            System.out.println("博客详情失败");
        }
        sleep(1500);
    }

删除文章

效验第一篇博客 不是 "自动化测试"

java 复制代码
 @Order(7)
    @Test
    //删除刚刚发布的博客
    void DeleteBlog() throws InterruptedException {

        webDriver.get("http://211.159.172.237:8080/myblog_list.html");
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#artListDiv > div:nth-child(1) > a:nth-child(6)")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        sleep(3000);
        webDriver.switchTo().alert().accept();


        //效验第一篇博客不是 "自动化测试"
        String first_blog_title = webDriver.findElement
                (By.cssSelector("#artListDiv > div:nth-child(1) > div.title")).getText();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

        Assertions.assertNotEquals("自动化测试",first_blog_title);
        sleep(3000);

    }

注销

java 复制代码
@Order(8)
    @Test
    //注销
    void Logout() throws InterruptedException {
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)"));
        webDriver.findElement(By.xpath("/html/body/div[1]/a[3]")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        webDriver.switchTo().alert().accept();
        sleep(3000);
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://211.159.172.237:8080/login.html",cur_url);

    }

退出到登录页面,用户名密码为空

相关推荐
2501_938774292 小时前
CCF B 类会议指南:DASFAA 2026 数据挖掘中的公平性与可解释性
1024程序员节
博风6 小时前
SQL进阶:not exists谓词
1024程序员节
!执行7 小时前
Web3 前端与合约交互
前端·web3·1024程序员节
炒茄子7 小时前
Windows:解决电脑开机解锁后黑屏但鼠标可见可移动的问题
windows·计算机外设
我爱钱因此会努力7 小时前
ansible自动化运维入门篇
linux·运维·服务器·centos·自动化·ansible
K_i1347 小时前
Ansible自动化部署ECS与Nginx全流程
nginx·自动化·ansible
CIb0la7 小时前
能保持精神专注的爱好能给生活带来种种积极的转变
运维·学习·生活
星光一影8 小时前
供应链进销存源码uniapp全开源ERP多仓库管理系统pc+app手机端
mysql·elementui·uni-app·开源·php·phpstorm·1024程序员节
周杰伦_Jay8 小时前
【实战|旅游知识问答RAG系统全链路解析】从配置到落地(附真实日志数据)
大数据·人工智能·分布式·机器学习·架构·旅游·1024程序员节
B站_计算机毕业设计之家8 小时前
python电商商品评论数据分析可视化系统 爬虫 数据采集 Flask框架 NLP情感分析 LDA主题分析 Bayes评论分类(源码) ✅
大数据·hadoop·爬虫·python·算法·数据分析·1024程序员节