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常用特性

allure+pytest_测试用例


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() 可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含,

allure+pytest_用户名_02

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终端中执行命令:

allure+pytest_用户名_03


allure+pytest_测试报告_04

6.其他一些功能

在给生成的报告起名字:@allure.title("登录成功")

按重要级别进行测试:

allure+pytest_用户名_05


在配置界面,直接添加参数运行:

allure+pytest_测试报告_06