使用Selenium Python在参数级别测试结果状态

时间:2018-02-28 14:20:53

标签: python selenium automated-tests test-reporting

所以我有一个selenium / Python脚本,它读取一个URL列表的JSON文件,然后一个接一个地浏览它们;并截取屏幕截图。

我想在测试结束时生成结果报告(HTML),但需要跟随;

报告不应该只说脚本通过/失败,而且它还会针对每个参数URL共享结果。例如,如果5个网站中有2个在测试时出现故障,则会反映在HTML结果中。 喜欢facebook.com - 好的,而www.sdadas.com - 失败

这是我的代码:

with open('Path to JSON file', encoding='utf-8') as s:
   data = json.loads(s.read())

driver = Edge()

driver.set_page_load_timeout(10)
driver.implicitly_wait(5)

for site in data['sites']:
    driver.get(data['sites'][site])
    driver.get_screenshot_as_file("Screenshot path\\Image" + site + '.png')
driver.close()

我的JSON文件

{
    "sites": {
        "facebook": "http://www.facebook.com",
            "Wrong": "http://www.gonssgle.com"
    }
}

1 个答案:

答案 0 :(得分:1)

有几种方法可以检查网站是否已关闭/不可用。您可以使用selenium检查是否存在显示站点关闭的错误消息(这可能会有所不同,具体取决于您使用的浏览器),但我不建议您这样做。

我只是简单地使用python requests库(python3)或任何类似的库来访问每个站点并检查其响应代码,例如:

response = requests.get(data)
assert response.status_code == requests.codes.ok

然后继续获取截屏代码

另外,为了生成HTML报告,我建议你使用python单元测试框架运行你的代码,比如unittest,pytest等。每个都应该有html报告插件,你可以根据需要自定义它。它将根据您的测试结果生成测试报告。