Allure
Downloading and Configuring Environment
1. 下载 Allure: https://github.com/allure-framework/allure2/releases
2.解压到allure-commandline目录
3.环境配置:先进入bin目录,运行allure.bat,然后添加环境变量PATH(\安装路径\allure-commandline\bin).注意:前面要加上“.;”
4. cmd - allure--version,出现版本号即为安装成功
运行测试用例 pytest.main(["-m","login","-s","-q","--alluredir","./report"]) "-m": 标记用例"login": 被标记需要执行用例"-s":允许终端在测试运行时输出某些结果"-q"简化输出结果"--alluredir": 生成allure指定语法"./report":生成报告的路径
(参考:https://blog.csdn.net/wwq_1111/article/details/51242011; https://docs.qameta.io/allure/)
Pytest
python通用测试框架大多数人用的是unittest+HTMLTestRunner。pytest有丰富的plugins也很好用.Pytest 是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests。pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等。report框架----allure 也支持了pytest。
想要用Pytest时, 需要在设置:settings-tools-python-integrated-tools, Default test runner选择pytest.
编写 pytest 测试样例需要按照下面的规则:
· 测试文件以test_开头(以_test结尾也可以)
· 测试类以Test开头,并且不能带有 __init__ 方法
· 测试函数以test_开头
· 断言使用基本的assert
Issue Encountered:
1.安装了pytest 和pytest_allure_adoptor 插件 后运行代码,会出现报错“unknown hook”. 是因为版本不兼容的问题。在pycharm安装的都是最新版本的插件,所以出现了这种兼容的问题。在Google 上搜到的可兼容的版本:pytest==3.7.1,and pluggy==0.7.1. 改了版本后,可以正常运行。
(参考:https://www.meiwen.com.cn/subject/bvyzkftx.html; https://docs.pytest.org/en/latest/contents.html)
2 unrecognized arguments: --alluredir
下载 allure-pytest 可以解决
Report Generated
1.安装 pytest_allure_adoptor ,pytest-html 和 pytest
2.在pycharm 的Terminal 终端输入 “python -m pytest -s -q --alluredir report” ,就会在这个测试case 的文件夹中自动生成report 文件夹,里面有测试的结果报告xml格式
3.生成美观allure报告: 在生成 pytest report 后,在Terminal 再输入命令”allure generate report/ -o report/html“,会在Pytest 生成的report 文件里生成html文件,打开Index .html便可生成allure 报告
4. ”allure generate report/ -o report/html --clean" 可以把之前生成的报告替换掉
Notice:
1)html file generated resulting from allure must be in the same file with the report of pytets. Only by this, the two reports can be connected
2)Make all pytest report generated, and then generate allure report by only execute the code at a time
Report structure
1). Allure特性:
a、利用Feature 和 Story 组织测试用例. 如:测试一个功能,M 下包含几个小模块A、B、C ;可以将M 设置为Feature,A、B、C 为几种不同的情况,设置为不同的Story
b、with pytest.allure.step(‘描述’) ,测试用例的描述
c、allure.attach 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
(Feature: 标注主要功能模块; Story: 标注Features功能模块下的分支功能; Severity: 标注测试用例的重要级别; Step: 标注测试用例的重要步骤; Issue和TestCase: 标注Issue、Case,可加入URL)
2). Severity详解 -Allure中对严重级别的定义:
1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2、 Critical级别:临界缺陷( 功能点缺失)
3、 Normal级别:普通缺陷(数值计算错误)
4、 Minor级别:次要缺陷(界面错误与UI需求不符)
5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
3.) 附加照片
allure.attach.file(name='login_email_error.png', source="%s" %file, attachment_type=allure.attachment_type.PNG)
4). Step: 把步骤的名字写出来,设置为step
5).TestCase: 用例标识,关联标识用例,可为一个url链接地址。Issue("BUG号:123") # 问题表识,关联标识已有的问题,可为一个url链接地址