• 自动化项目实战 [个人博客系统]


    在这里插入图片描述

    用户注册

    在这里插入图片描述

     @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();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述

    登录验证

    在这里插入图片描述

     @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);
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述

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

    在这里插入图片描述

    @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);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    博客系统主页

    在这里插入图片描述

    写博客

    在这里插入图片描述

     @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();
    
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    我的博客列表页

    在这里插入图片描述

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

        @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("时间错误");
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    查看 文章详情页

    在这里插入图片描述

    @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);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    删除文章

    在这里插入图片描述

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

     @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);
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    注销

    在这里插入图片描述

    @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);
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

    在这里插入图片描述

  • 相关阅读:
    leetcode 周赛(406)全AC留念
    Python list列表添加元素的3种方法
    pyquery 的使用
    架构师必备-DDD之落地实践
    工资「喂饱肚子」,副业「养活灵魂」!职场人的生存之道
    【Java 进阶篇】深入理解 SQL 分组查询
    GB/T28181-2016基于RTP的视音频数据封装和技术实现
    在阿里干了6年自动化测试,30岁即将退休的我,告诉你自动化测试工程师有多吃香...
    记一次manjaro-i3系统sogoupinying候选词无法正常显示中文(变方框了)问题解决方案
    百万用户通话新风潮:仅需50秒,无界AI让彩铃变身短视频
  • 原文地址:https://blog.csdn.net/p2533903941/article/details/134092055