生成测试报告:pytest-html
Allure
结合allure生成测试报告
pytest 生成测试报告
pytest-html插件生成测试报告
- 安装
pip install pytest-html
- 命令行执行生成测试报告
# /html/report.html为生成测试报告的路径
pytest --html=/html/report.html
结合pytest-xdist使用(多线程执行并生成测试报告)
pytest -v -s -n 3 --html=report.html --self-contained-html
Allure
关于allure
Allure 框架是一种灵活的、轻量级、支持多语言测试报告工具,它不仅能够以简洁的 Web 报告形式显示已测试的内容,而且允许参与开发过程的每个人从测试的日常执行中提取最大限度的有用信息。同时支持多种语言包括 Java、Python、JavaScript、Ruby、Groovy、PHP、.Net、 Scala
安装命令行
- windows
scoop install allure
- mac
brew install allure
- 校验
allure --version
使用
- 安装allure-pytest插件
pip install allure-pytest
- 在pytest执行时添加
--alluredir
来指定测试执行结果保存的目录pytest --alluredir=/tmp/my_allure_results
- 测试执行后启动allure服务来打开测试报告
allure serve /tmp/my_allure_results
/tmp/my_allure_results
为测试结果保存路径 - 也可利用测试结果数据生成html测试报告
allure generate ./tmp/my_allure_results -o ./report/ --clean
将
./tmp/my_allure_results
目录下的测试数据生成HTML测试报告到 ./report 路径下,--clean
选项是先清空测试报告目录,再生成新的测试报告,然后使用下面的命令打开报告:allure open -h 127.0.0.1 -p 8883 ./report/
Pytest和Allure生成测试报告示例
百度搜索测试
- 数据准备
data.yaml
- allure
- pytest
- unittest
- 测试用例
test_baidu_keyword.py
import allure
import pytest
import yaml
from selenium import webdriver
import time
@allure.testcase("http://www.github.com")
@allure.feature("百度搜索")
@pytest.mark.parametrize('test_data', yaml.safe_load(open("data.yaml")))
def test_baidu_search(test_data):
with allure.step("打开百度网页"):
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
with allure.step(f"输入搜索词:{test_data}"):
driver.find_element_by_id("kw").send_keys(test_data)
time.sleep(2)
driver.find_element_by_id("su").click()
time.sleep(2)
with allure.step("保存图片"):
driver.save_screenshot("./result/a.png")
allure.attach.file("./result/a.png", attachment_type=allure.attachment_type.PNG)
with allure.step("关闭浏览器"):
driver.quit()
allure.testcase
用例标识,给定用例的链接,可以与用例的管理地址关联
allure.feature
功能模块划分,方便管理和运行测试用例
pytest.mark.parametrize
用来参数化测试用例
allure.step
用来添加测试步骤,在测试报告里面会展示出来这个步骤说明
- 运行并打开报告
pytest test_baidudemo.py -s -q --alluredir=./result/ allure serve ./result/
也可以使用如下方式运行:
pytest test_baidudemo.py -s -q --alluredir=./result/ allure generate ./result -o ./report/ --clean allure open -h 127.0.0.1 -p 8883 ./report/
- 其他
更多关于selenium自动化测试可参看selenium自动化测试
报告说明
测试报告首页中展示了此次测试的测试用例数量以及成功用例、失败用例、跳过用例的比例、测试环境、SUITES、FEATURES BY STORIES 等基本信息(当与 Jenkins 做了持续置成后,TREND 区域还将显示,历次测试的通过情况)
首页的左边栏,还从不同的维度展示测试报告的其他信息:
- Behaviors:按照 FEATURES 和 STORIES 展示测试用例的执行结果;
- Suites:Allure 测试报告将每一个测试脚本,作为一个 Suite。在首页里点击 Suites 区域内的任何一条 Suite,都会进入 Suites 页面
- Graphs:展示了此次测试结果的统计信息,比如测试用例执行结果状态、测试用例重要等级分布、测试用例执行时间分布等
- 测试用例详情页面:在 Suites 页面上点击任何一条测试用例,Suites 页面的右侧将展示这条用例的详细执行情况。在这个页面可以看到测试用例的每个步骤,以及每个步骤的执行结果,包括步骤里面添加的链接、图片、网页片段或者视频作为重要信息的补充。在这里可以一目了在的看到用例失败的原因。