自动化博客项目 用户注册 登录验证 博客系统主页 我的博客列表页 效验 刚发布的博客的标题和时间 查看 文章详情页 删除文章 注销
用户注册
@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 ( ) ;
登录验证
@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 ) ; String cur_url = webDriver. getCurrentUrl ( ) ; Assertions . assertEquals ( blog_list_url, cur_url) ; }
效验个人博客列表页博客数量不为 0
@Order ( 3 ) @Test 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) ; }
博客系统主页
写博客
@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 ) ; ( ( 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 ) ; }
我的博客列表页
效验 刚发布的博客的标题和时间
@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 ( "时间错误" ) ; } }
查看 文章详情页
@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 ) ; 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_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 ) ; }
删除文章
效验第一篇博客 不是 “自动化测试”
@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 ) ; }
注销
@Order ( 8 ) @Test void Logout ( ) throws InterruptedException { webDriver. manage ( ) . timeouts ( ) . implicitlyWait ( 3 , TimeUnit . SECONDS ) ;
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) ; }
退出到登录页面,用户名密码为空