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

Test Result Status at Parameter level with Selenium Python

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

我想在测试结束时生成结果报告 (HTML),但要遵循以下内容;

报告不应该只说脚本 passed/failed,还应该分享每个参数的结果 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"
    }
}

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

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

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

然后继续获取截图代码

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