1.allure介绍:
allure是一个轻量级,灵活的,支持多语言的测试报告工具;可以为dev/qa提供详尽的测试报告,测试步骤,log;也可以为管理层提供high level统计报告;是java语言开发,支持pytest,javascript,php,ruby等,可以集成到jenkins
2.allure安装
windows安装包路径:
https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/ 下载指定版本的zip包后,解压并进入bin目录 ,运行allure.bat,把bin目录加入到PARH环境变量即可
3.使用allure2生成精美的报告
pycharm中安装allure-pytest,命令:pip install allure-pytest
运行:1.在测试执行期间收集结果
pytest [测试文件] -s -q --alluredir=./result/ (--alluredir这个选项,用于指定存储测试结果的路径)
2. 查看测试报告:
方法一:测试完成后查看实际报告,在线看报告,会直接打开默认浏览器展示当前报告
allure serve ./result/
方法二:从结果生成报告,这是一个自动启动tomacat的服务,需要两个步骤:生成报告,打开报告,
生成报告: allure generate ./result/ -o ./report --clean (注意:覆盖路径加--clean)
打开报告: allure open -h 127.0.0.1 -p 8883 ./report/
4.allure常用特性
pytest demo_allure1.py --allure-features="搜索模块" -vs 测试模块级别的
pytest demo_allure1.py --allure-stories=”登录失败” -vs
注解@allure.feature与allure.store的关系
- feature相当于一个功能,一个大的模块,将case分类到某个feature中,报告中behaviore中显示,相当于testsuite
- story相当于对应这个功能或者模块下的不同场景,分支功能,属于feature之下的结构,报告在feature中显示,相当于testcase
- feature与story类似父子关系
4.allure特性-step
测试过程中每个步骤,一般放在具体逻辑方法中,可以放到关键步骤中,在报告中显示,在app,web自动化测试中,建议每切换到一个新的页面当作一个step
用法:
* allure.step() 只能以装饰器的形式放在类或者方法上面
* with.allure.step() 可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含,
5.简单代码演示报告:pytest+allure
import allure
import pytest
@allure.feature("搜索模块")
class TestSearch():
def test_case1(self):
print("case1")
def test_case2(self):
print("case2")
@allure.feature("登录模块")
class TestLogin():
@allure.story("登录成功")
@allure.title("登录成功")
def test_login_success(self):
with allure.step("步骤1:打开应用"):
print("打开应用")
with allure.step("步骤2:进入登录页面"):
print("登录页面")
with allure.step("步骤3:输入用户名和密码"):
print("输入用户名和密码")
print("这是登录: 测试用例 ,登录成功")
pass
@allure.story("登录失败")
@allure.title("登录失败")
def test_login_success_a(self):
print("这是登录:测试用例,登录失败")
pass
@allure.story("用户名缺失")
@allure.title("用户名缺失")
def test_login_success_b(self):
print("用户名缺失")
pass
@allure.story("密码缺失")
def test_login_failure(self):
with allure.step("点击用户名"):
print("输入用户名")
with allure.step("点击密码"):
print("输入密码")
print("点击登录")
with allure.step("点击登录之后登录失败"):
assert '1' == 1
print("登录失败")
@allure.story("登录失败")
def test_login_failure_a(self):
print("这是登录:测试用例,登录失败")
pass
if __name__ == '__main__':
pytest.main()
pycharm终端中执行命令:
6.其他一些功能
在给生成的报告起名字:@allure.title("登录成功")
按重要级别进行测试:
在配置界面,直接添加参数运行: