UI自动化判断某个网页是否无法访问

前提:

希望写一个ui自动化测试用例,判断某个url是否无法访问,若访问成功,则用例失败,若访问失败,则用例通过。

一开始是希望直接获取请求结果的status码来判断,但是网上查询到selenium由于是页面访问性质的,无法获取到请求结果的status。

考虑其他方式,或者使用接口测试。

 

场景:

经测试,不同的项目的url,访问结果会有三种情况:
1、直接访问失败,自动化运行报错,被迫中断运行;

2、系统判定访问成功,实际页面展示失败;

3、访问正常,页面正确展示。依次截图如下,可以看到页面的显示情况也有所区别:

 

情况1:

 

 

 

 

情况2:

 

 情况3:

 

解决方式:

1、考虑到第一种情况,会运行报错,中断自动化测试,加上是java代码,所以使用try catch的方式,若访问报错,则try catch,使用例通过。

2、考虑到第二种情况,增加try里面的判断,看是否存在正常访问时,展示的页面元素,如果不存在,则表示用例通过。

增加了一个assert的判断,如果页面不存在该元素,homePage.isOpenSwagger()的判断结果是false,与期待结果true不同,则try失败。

使用Exception无法捕获到该报错,需要添加一个AssertionError来捕获assert判断的报错。

 

3、考虑到第三种情况,打开页面成功,assert判断页面存在某元素,true==true,所以不会走到catch,添加一个throw,表示抛出报错,用例失败。与预期相符。

 

4、优化,两个catch可以合并为一个父类Throwable

 

扩展:

 

posted @ 2022-08-03 17:35  hushuer  阅读(217)  评论(0编辑  收藏  举报