• 博客系统自动化测试项目实战(测试系列9)


    目录

    前言:

    1.博客前端页面测试用例图

    2.测试用例的代码实现

    2.1登录页面的测试

    2.2博客列表页面的测试

    2.3写博客测试

    2.4博客详情页面的测试

    2.5已发布博客的标题和时间的测试

    2.6注销用户的测试

    结束语:


    前言:

    之前小编给大家讲解了有关于Selenium和Junit5自动化测试的一些基础知识,那么下面我们就针对于我们自己做的一个项目来使用Junit来进行一下自动化测试。

    博客项目的前后端博客链接:前端☞http://t.csdn.cn/jZkQd  后端☞http://t.csdn.cn/sN1Uq

    博客项目的源码Gitee链接☞https://gitee.com/YAUGAOLELE/project

    1.博客前端页面测试用例图

    2.测试用例的代码实现

    代码侧边的展示:

    我们一共创建两个类一个是BlogCase另一个是InitAndEnd。具体代码的创建请看下边。

    初始化代码的实现:

    1. package BlogTest;
    2. import org.junit.jupiter.api.AfterAll;
    3. import org.junit.jupiter.api.BeforeAll;
    4. import org.openqa.selenium.WebDriver;
    5. import org.openqa.selenium.chrome.ChromeDriver;
    6. //用来放置初始化的操作以及最后的收尾工作
    7. public class InitAndEnd {
    8. //创建驱动
    9. static WebDriver webDriver;
    10. //初识化操作,打开浏览器
    11. @BeforeAll
    12. static void SetUp() {
    13. webDriver = new ChromeDriver();
    14. }
    15. //关闭浏览器
    16. @AfterAll
    17. static void TearDown() {
    18. webDriver.quit();
    19. }
    20. }

    2.1登录页面的测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.Assertions;
    3. import org.junit.jupiter.api.Order;
    4. import org.junit.jupiter.params.ParameterizedTest;
    5. import org.junit.jupiter.params.provider.CsvFileSource;
    6. import org.openqa.selenium.By;
    7. import java.util.concurrent.TimeUnit;
    8. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    9. public class BlogCase extends InitAndEnd{
    10. /**
    11. * 输入正确的账号,密码,登录成功
    12. */
    13. @Order(1)
    14. @ParameterizedTest
    15. @CsvFileSource(resources = "LoginSuccess.csv")
    16. void LoginSuccess(String username, String password, String blog_list_url){
    17. System.out.println(username + password + blog_list_url);
    18. //打开博客登录页面
    19. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    20. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    21. //输入账号:zhangsan /lisi
    22. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    23. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    24. //输入密码:123
    25. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    26. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    27. //点击提交按钮
    28. webDriver.findElement(By.cssSelector("#submit")).click();
    29. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    30. //跳转到列表页
    31. //获取到当前页面的url
    32. String cur_url = webDriver.getCurrentUrl();
    33. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    34. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    35. Assertions.assertEquals(blog_list_url,cur_url);
    36. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    37. //列表页展示的是zhangsan/lisi
    38. //用户名是zhangsan测试通过,否则测试不通过
    39. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    40. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    41. Assertions.assertEquals(username,cur_admin);
    42. }
    43. }


    结果展示:

    2.2博客列表页面的测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.*;
    3. import org.junit.jupiter.params.ParameterizedTest;
    4. import org.junit.jupiter.params.provider.CsvFileSource;
    5. import org.openqa.selenium.By;
    6. import java.util.concurrent.TimeUnit;
    7. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    8. public class BlogCase extends InitAndEnd{
    9. /**
    10. * 输入正确的账号,密码,登录成功
    11. */
    12. @Order(1)
    13. @ParameterizedTest
    14. @CsvFileSource(resources = "LoginSuccess.csv")
    15. void LoginSuccess(String username, String password, String blog_list_url){
    16. System.out.println(username + password + blog_list_url);
    17. //打开博客登录页面
    18. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    19. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    20. //输入账号:zhangsan /lisi
    21. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    22. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    23. //输入密码:123
    24. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    25. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    26. //点击提交按钮
    27. webDriver.findElement(By.cssSelector("#submit")).click();
    28. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    29. //跳转到列表页
    30. //获取到当前页面的url
    31. String cur_url = webDriver.getCurrentUrl();
    32. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    33. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    34. Assertions.assertEquals(blog_list_url,cur_url);
    35. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    36. //列表页展示的是zhangsan/lisi
    37. //用户名是zhangsan测试通过,否则测试不通过
    38. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    39. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    40. Assertions.assertEquals(username,cur_admin);
    41. }
    42. /**
    43. *博客列表页面的博客数量不为0
    44. */
    45. @Order(2)
    46. @Test
    47. void BlogList() {
    48. //打开博客列表页
    49. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    50. //获取页面上的所有博客标题对应的元素,如果这个元素的数量不为0,则认为测试通过
    51. //加上只能等待,如果不加的话可能前端页面没有渲染出来,就可能导致获取元素失败
    52. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    53. int title_num = webDriver.findElements(By.cssSelector(".title")).size();
    54. //断言:如果这个元素的数量不为0,则认为测试通过
    55. Assertions.assertNotEquals(0,title_num);
    56. }
    57. }


    结果展示:

    2.3写博客测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.*;
    3. import org.junit.jupiter.params.ParameterizedTest;
    4. import org.junit.jupiter.params.provider.CsvFileSource;
    5. import org.openqa.selenium.By;
    6. import org.openqa.selenium.JavascriptExecutor;
    7. import java.util.concurrent.TimeUnit;
    8. import static java.lang.Thread.sleep;
    9. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    10. public class BlogCase extends InitAndEnd{
    11. /**
    12. * 输入正确的账号,密码,登录成功
    13. */
    14. @Order(1)
    15. @ParameterizedTest
    16. @CsvFileSource(resources = "LoginSuccess.csv")
    17. void LoginSuccess(String username, String password, String blog_list_url){
    18. System.out.println(username + password + blog_list_url);
    19. //打开博客登录页面
    20. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    21. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    22. //输入账号:zhangsan /lisi
    23. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    24. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    25. //输入密码:123
    26. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    27. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    28. //点击提交按钮
    29. webDriver.findElement(By.cssSelector("#submit")).click();
    30. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    31. //跳转到列表页
    32. //获取到当前页面的url
    33. String cur_url = webDriver.getCurrentUrl();
    34. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    35. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    36. Assertions.assertEquals(blog_list_url,cur_url);
    37. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    38. //列表页展示的是zhangsan/lisi
    39. //用户名是zhangsan测试通过,否则测试不通过
    40. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    41. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    42. Assertions.assertEquals(username,cur_admin);
    43. }
    44. /**
    45. *博客列表页面的博客数量不为0
    46. */
    47. @Order(2)
    48. @Test
    49. void BlogList() {
    50. //打开博客列表页
    51. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    52. //获取页面上的所有博客标题对应的元素,如果这个元素的数量不为0,则认为测试通过
    53. //加上只能等待,如果不加的话可能前端页面没有渲染出来,就可能导致获取元素失败
    54. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    55. int title_num = webDriver.findElements(By.cssSelector(".title")).size();
    56. //断言:如果这个元素的数量不为0,则认为测试通过
    57. Assertions.assertNotEquals(0,title_num);
    58. }
    59. /**
    60. * 写博客
    61. */
    62. @Order(3)
    63. @Test
    64. void EditBlog() throws InterruptedException {
    65. //找到写博客按钮,点击
    66. webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
    67. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    68. //找到对应的输入框,输入对应的标题。
    69. webDriver.findElement(By.cssSelector("#title-input"));
    70. //通过JS进行标题输入
    71. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    72. ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title-input\").value=\"自动化测试\"");
    73. sleep(3000);
    74. //点击提交
    75. webDriver.findElement(By.cssSelector("#submit")).click();
    76. sleep(3000);
    77. //校验
    78. //获取当前页面的url
    79. String cur_url = webDriver.getCurrentUrl();
    80. Assertions.assertEquals("http://43.138.29.216:8080/blog_system/blog_list.html",cur_url);
    81. }
    82. }


    结果展示:

    2.4博客详情页面的测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.*;
    3. import org.junit.jupiter.params.ParameterizedTest;
    4. import org.junit.jupiter.params.provider.Arguments;
    5. import org.junit.jupiter.params.provider.CsvFileSource;
    6. import org.junit.jupiter.params.provider.MethodSource;
    7. import org.openqa.selenium.By;
    8. import org.openqa.selenium.JavascriptExecutor;
    9. import java.util.concurrent.TimeUnit;
    10. import java.util.stream.Stream;
    11. import static java.lang.Thread.sleep;
    12. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    13. public class BlogCase extends InitAndEnd{
    14. private static Stream Generator() {
    15. return Stream.of(Arguments.arguments(
    16. "http://43.138.29.216:8080/blog_system/blog_detail.html",
    17. "博客详情页",
    18. "自动化测试"
    19. ));
    20. }
    21. /**
    22. * 输入正确的账号,密码,登录成功
    23. */
    24. @Order(1)
    25. @ParameterizedTest
    26. @CsvFileSource(resources = "LoginSuccess.csv")
    27. void LoginSuccess(String username, String password, String blog_list_url){
    28. System.out.println(username + password + blog_list_url);
    29. //打开博客登录页面
    30. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    31. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    32. //输入账号:zhangsan /lisi
    33. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    34. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    35. //输入密码:123
    36. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    37. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    38. //点击提交按钮
    39. webDriver.findElement(By.cssSelector("#submit")).click();
    40. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    41. //跳转到列表页
    42. //获取到当前页面的url
    43. String cur_url = webDriver.getCurrentUrl();
    44. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    45. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    46. Assertions.assertEquals(blog_list_url,cur_url);
    47. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    48. //列表页展示的是zhangsan/lisi
    49. //用户名是zhangsan测试通过,否则测试不通过
    50. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    51. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    52. Assertions.assertEquals(username,cur_admin);
    53. }
    54. /**
    55. *博客列表页面的博客数量不为0
    56. */
    57. @Order(2)
    58. @Test
    59. void BlogList() {
    60. //打开博客列表页
    61. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    62. //获取页面上的所有博客标题对应的元素,如果这个元素的数量不为0,则认为测试通过
    63. //加上只能等待,如果不加的话可能前端页面没有渲染出来,就可能导致获取元素失败
    64. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    65. int title_num = webDriver.findElements(By.cssSelector(".title")).size();
    66. //断言:如果这个元素的数量不为0,则认为测试通过
    67. Assertions.assertNotEquals(0,title_num);
    68. }
    69. /**
    70. * 写博客
    71. */
    72. @Order(3)
    73. @Test
    74. void EditBlog() throws InterruptedException {
    75. //找到写博客按钮,点击
    76. webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
    77. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    78. //找到对应的输入框,输入对应的标题。
    79. webDriver.findElement(By.cssSelector("#title-input"));
    80. //通过JS进行标题输入
    81. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    82. ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title-input\").value=\"自动化测试\"");
    83. sleep(3000);
    84. //点击提交
    85. webDriver.findElement(By.cssSelector("#submit")).click();
    86. sleep(3000);
    87. //校验
    88. //获取当前页面的url
    89. String cur_url = webDriver.getCurrentUrl();
    90. Assertions.assertEquals("http://43.138.29.216:8080/blog_system/blog_list.html",cur_url);
    91. }
    92. /**
    93. * 博客详情页面的校验
    94. * 1.校验url
    95. * 2.校验博客标题
    96. * 3.页面title是“博客详情页”的测试
    97. */
    98. @Order(4)
    99. @ParameterizedTest
    100. @MethodSource("Generator")
    101. void BlogDetail(String expected_url, String expected_title, String expected_blog_title) {
    102. //找到第一篇博客对应查看全文的按钮
    103. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    104. webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[2]/a")).click();
    105. //获取当前页面的url
    106. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    107. String cur_url = webDriver.getCurrentUrl();
    108. //获取当前页面的title
    109. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    110. String cur_title = webDriver.getTitle();
    111. //获取博客标题
    112. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    113. String cur_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > h3")).getText();
    114. //校验
    115. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    116. // Assertions.assertEquals(expected_url,cur_url);
    117. Assertions.assertEquals(expected_title,cur_title);
    118. Assertions.assertEquals(expected_blog_title,cur_blog_title);
    119. if (cur_url.contains(expected_url)) {
    120. System.out.println("测试通过");
    121. }else {
    122. System.out.println(cur_url);
    123. System.out.println("测试不通过");
    124. }
    125. }
    126. }


    结果展示:

    2.5已发布博客的标题和时间的测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.*;
    3. import org.junit.jupiter.params.ParameterizedTest;
    4. import org.junit.jupiter.params.provider.Arguments;
    5. import org.junit.jupiter.params.provider.CsvFileSource;
    6. import org.junit.jupiter.params.provider.MethodSource;
    7. import org.openqa.selenium.By;
    8. import org.openqa.selenium.JavascriptExecutor;
    9. import org.openqa.selenium.WebElement;
    10. import java.util.concurrent.TimeUnit;
    11. import java.util.stream.Stream;
    12. import static java.lang.Thread.sleep;
    13. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    14. public class BlogCase extends InitAndEnd{
    15. private static Stream Generator() {
    16. return Stream.of(Arguments.arguments(
    17. "http://43.138.29.216:8080/blog_system/blog_detail.html",
    18. "博客详情页",
    19. "自动化测试"
    20. ));
    21. }
    22. /**
    23. * 输入正确的账号,密码,登录成功
    24. */
    25. @Order(1)
    26. @ParameterizedTest
    27. @CsvFileSource(resources = "LoginSuccess.csv")
    28. void LoginSuccess(String username, String password, String blog_list_url){
    29. System.out.println(username + password + blog_list_url);
    30. //打开博客登录页面
    31. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    32. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    33. //输入账号:zhangsan /lisi
    34. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    35. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    36. //输入密码:123
    37. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    38. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    39. //点击提交按钮
    40. webDriver.findElement(By.cssSelector("#submit")).click();
    41. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    42. //跳转到列表页
    43. //获取到当前页面的url
    44. String cur_url = webDriver.getCurrentUrl();
    45. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    46. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    47. Assertions.assertEquals(blog_list_url,cur_url);
    48. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    49. //列表页展示的是zhangsan/lisi
    50. //用户名是zhangsan测试通过,否则测试不通过
    51. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    52. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    53. Assertions.assertEquals(username,cur_admin);
    54. }
    55. /**
    56. *博客列表页面的博客数量不为0
    57. */
    58. @Order(2)
    59. @Test
    60. void BlogList() {
    61. //打开博客列表页
    62. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    63. //获取页面上的所有博客标题对应的元素,如果这个元素的数量不为0,则认为测试通过
    64. //加上只能等待,如果不加的话可能前端页面没有渲染出来,就可能导致获取元素失败
    65. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    66. int title_num = webDriver.findElements(By.cssSelector(".title")).size();
    67. //断言:如果这个元素的数量不为0,则认为测试通过
    68. Assertions.assertNotEquals(0,title_num);
    69. }
    70. /**
    71. * 写博客
    72. */
    73. @Order(3)
    74. @Test
    75. void EditBlog() throws InterruptedException {
    76. //找到写博客按钮,点击
    77. webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
    78. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    79. //找到对应的输入框,输入对应的标题。
    80. webDriver.findElement(By.cssSelector("#title-input"));
    81. //通过JS进行标题输入
    82. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    83. ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title-input\").value=\"自动化测试\"");
    84. sleep(3000);
    85. //点击提交
    86. webDriver.findElement(By.cssSelector("#submit")).click();
    87. sleep(3000);
    88. //校验
    89. //获取当前页面的url
    90. String cur_url = webDriver.getCurrentUrl();
    91. Assertions.assertEquals("http://43.138.29.216:8080/blog_system/blog_list.html",cur_url);
    92. }
    93. /**
    94. * 博客详情页面的校验
    95. * 1.校验url
    96. * 2.校验博客标题
    97. * 3.页面title是“博客详情页”的测试
    98. */
    99. @Order(4)
    100. @ParameterizedTest
    101. @MethodSource("Generator")
    102. void BlogDetail(String expected_url, String expected_title, String expected_blog_title) {
    103. //找到第一篇博客对应查看全文的按钮
    104. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    105. webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[2]/a")).click();
    106. //获取当前页面的url
    107. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    108. String cur_url = webDriver.getCurrentUrl();
    109. //获取当前页面的title
    110. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    111. String cur_title = webDriver.getTitle();
    112. //获取博客标题
    113. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    114. String cur_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > h3")).getText();
    115. //校验
    116. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    117. // Assertions.assertEquals(expected_url,cur_url);
    118. Assertions.assertEquals(expected_title,cur_title);
    119. Assertions.assertEquals(expected_blog_title,cur_blog_title);
    120. if (cur_url.contains(expected_url)) {
    121. System.out.println("测试通过");
    122. }else {
    123. System.out.println(cur_url);
    124. System.out.println("测试不通过");
    125. }
    126. }
    127. @Order(5)
    128. @Test
    129. /**
    130. * 校验已发布博客的标题
    131. * 校验已发布博客时间
    132. */
    133. void BlogInfoChecked() {
    134. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    135. //获取第一篇博客的标题
    136. String first_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(1) > div.title")).getText();
    137. //获取第一篇博客的发布时间
    138. String first_blog_time = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[2]")).getText();
    139. //校验博客标题是不是自动化测试
    140. Assertions.assertEquals("自动化测试",first_blog_title);
    141. //如果是2023-09-03发布的,测试通过
    142. if (first_blog_time.contains("2023-09-03")) {
    143. System.out.println("测试通过");
    144. }else {
    145. System.out.println("当前时间是:" + first_blog_time);
    146. System.out.println("测试不通过");
    147. }
    148. }
    149. }


    结果展示: 

    2.6注销用户的测试

    代码展示:

    1. package BlogTest;
    2. import org.junit.jupiter.api.*;
    3. import org.junit.jupiter.params.ParameterizedTest;
    4. import org.junit.jupiter.params.provider.Arguments;
    5. import org.junit.jupiter.params.provider.CsvFileSource;
    6. import org.junit.jupiter.params.provider.MethodSource;
    7. import org.openqa.selenium.By;
    8. import org.openqa.selenium.JavascriptExecutor;
    9. import org.openqa.selenium.WebElement;
    10. import java.util.concurrent.TimeUnit;
    11. import java.util.stream.Stream;
    12. import static java.lang.Thread.sleep;
    13. @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    14. public class BlogCase extends InitAndEnd{
    15. private static Stream Generator() {
    16. return Stream.of(Arguments.arguments(
    17. "http://43.138.29.216:8080/blog_system/blog_detail.html",
    18. "博客详情页",
    19. "自动化测试"
    20. ));
    21. }
    22. /**
    23. * 输入正确的账号,密码,登录成功
    24. */
    25. @Order(1)
    26. @ParameterizedTest
    27. @CsvFileSource(resources = "LoginSuccess.csv")
    28. void LoginSuccess(String username, String password, String blog_list_url){
    29. System.out.println(username + password + blog_list_url);
    30. //打开博客登录页面
    31. webDriver.get("http://43.138.29.216:8080/blog_system/login.html");
    32. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    33. //输入账号:zhangsan /lisi
    34. webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
    35. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    36. //输入密码:123
    37. webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
    38. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    39. //点击提交按钮
    40. webDriver.findElement(By.cssSelector("#submit")).click();
    41. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    42. //跳转到列表页
    43. //获取到当前页面的url
    44. String cur_url = webDriver.getCurrentUrl();
    45. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    46. //如果url=http://43.138.29.216:8080/blog_system/blog_list.html,测试通过,否则测试不通过
    47. Assertions.assertEquals(blog_list_url,cur_url);
    48. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    49. //列表页展示的是zhangsan/lisi
    50. //用户名是zhangsan测试通过,否则测试不通过
    51. String cur_admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
    52. webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    53. Assertions.assertEquals(username,cur_admin);
    54. }
    55. /**
    56. *博客列表页面的博客数量不为0
    57. */
    58. @Order(2)
    59. @Test
    60. void BlogList() {
    61. //打开博客列表页
    62. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    63. //获取页面上的所有博客标题对应的元素,如果这个元素的数量不为0,则认为测试通过
    64. //加上只能等待,如果不加的话可能前端页面没有渲染出来,就可能导致获取元素失败
    65. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    66. int title_num = webDriver.findElements(By.cssSelector(".title")).size();
    67. //断言:如果这个元素的数量不为0,则认为测试通过
    68. Assertions.assertNotEquals(0,title_num);
    69. }
    70. /**
    71. * 写博客
    72. */
    73. @Order(3)
    74. @Test
    75. void EditBlog() throws InterruptedException {
    76. //找到写博客按钮,点击
    77. webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
    78. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    79. //找到对应的输入框,输入对应的标题。
    80. webDriver.findElement(By.cssSelector("#title-input"));
    81. //通过JS进行标题输入
    82. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    83. ((JavascriptExecutor)webDriver).executeScript("document.getElementById(\"title-input\").value=\"自动化测试\"");
    84. sleep(3000);
    85. //点击提交
    86. webDriver.findElement(By.cssSelector("#submit")).click();
    87. sleep(3000);
    88. //校验
    89. //获取当前页面的url
    90. String cur_url = webDriver.getCurrentUrl();
    91. Assertions.assertEquals("http://43.138.29.216:8080/blog_system/blog_list.html",cur_url);
    92. }
    93. /**
    94. * 博客详情页面的校验
    95. * 1.校验url
    96. * 2.校验博客标题
    97. * 3.页面title是“博客详情页”的测试
    98. */
    99. @Order(4)
    100. @ParameterizedTest
    101. @MethodSource("Generator")
    102. void BlogDetail(String expected_url, String expected_title, String expected_blog_title) {
    103. //找到第一篇博客对应查看全文的按钮
    104. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    105. webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[2]/a")).click();
    106. //获取当前页面的url
    107. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    108. String cur_url = webDriver.getCurrentUrl();
    109. //获取当前页面的title
    110. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    111. String cur_title = webDriver.getTitle();
    112. //获取博客标题
    113. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    114. String cur_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > h3")).getText();
    115. //校验
    116. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    117. // Assertions.assertEquals(expected_url,cur_url);
    118. Assertions.assertEquals(expected_title,cur_title);
    119. Assertions.assertEquals(expected_blog_title,cur_blog_title);
    120. if (cur_url.contains(expected_url)) {
    121. System.out.println("测试通过");
    122. }else {
    123. System.out.println(cur_url);
    124. System.out.println("测试不通过");
    125. }
    126. }
    127. @Order(5)
    128. @Test
    129. /**
    130. * 校验已发布博客的标题
    131. * 校验已发布博客时间
    132. */
    133. void BlogInfoChecked() {
    134. webDriver.get("http://43.138.29.216:8080/blog_system/blog_list.html");
    135. //获取第一篇博客的标题
    136. String first_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(1) > div.title")).getText();
    137. //获取第一篇博客的发布时间
    138. String first_blog_time = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[2]")).getText();
    139. //校验博客标题是不是自动化测试
    140. Assertions.assertEquals("自动化测试",first_blog_title);
    141. //如果是2023-09-03发布的,测试通过
    142. if (first_blog_time.contains("2023-09-03")) {
    143. System.out.println("测试通过");
    144. }else {
    145. System.out.println("当前时间是:" + first_blog_time);
    146. System.out.println("测试不通过");
    147. }
    148. }
    149. /**
    150. * 注销
    151. */
    152. @Order(6)
    153. @Test
    154. void Logout() {
    155. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    156. webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)")).click();
    157. //校验url(登录)
    158. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    159. String cur_url = webDriver.getCurrentUrl();
    160. Assertions.assertEquals("http://43.138.29.216:8080/blog_system/login.html",cur_url);
    161. //校验提交按钮
    162. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    163. WebElement webElement = webDriver.findElement(By.cssSelector("#submit"));
    164. webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    165. Assertions.assertNotNull(webElement);
    166. }
    167. }


    结果展示:

    结束语:

    好了这节小编就给大分享到这里啦,希望这节对大家有关于使用Junit5的自动化测试有一定帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)

  • 相关阅读:
    CentOS 7搭建Gitlab流程
    Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)
    【深度学习】常用算法生成对抗网络、自编码网络、多层感知机、反向传播等讲解(图文解释 超详细)
    LeetCode 320 周赛
    【知识地图】开发测试全栈 (未完待续)
    QT+OSG/osgEarth编译之三十三:HDF5+Qt编译(一套代码、一套框架,跨平台编译,版本:HDF5-1.12.2)
    【面试系列】C++ 高频面试题
    【MySQL数据库】 七
    为什么学编程都建议不要用拼音命名?
    【微服务 从0开始 】Spring Cloud 配置文件
  • 原文地址:https://blog.csdn.net/weixin_61599986/article/details/132642101