目录
1、前言
pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结。
allure报告可以很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等
环境准备
2、安装及配置
2.1、安装jdk
安装allure之前安装配置好jdk,不然安装allure会出错
2.2、下载allure
下载地址:Releases · allure-framework/allure2 · GitHub
2.3、配置环境
将allure目录下的bin路径记录环境变量中
cmd中输入allure验证配置是否成功
安装allure对应库
pip install allure-pytest
3、使用介绍
3.1、静态属性
allure用例描述
使用方法 | 参数值 | 参数说明 |
---|---|---|
@allure.epic() | epic描述 | 敏捷里面的概念,定义史诗,往下是feature |
@allure.feature() | 模块名称 | 功能点的描述,往下是story |
@allure.story() | 用户故事 | 用户故事,往下是title |
@allure.title(用例的标题) | 用例的标题 | 重命名html报告名称 |
@allure.testcase() | 测试用例的链接地址 | 对应功能测试用例系统里面的case |
@allure.issue() | 缺陷 | 对应缺陷管理系统里面的链接 |
@allure.description() | 用例描述 | 测试用例的描述 |
@allure.step() | 操作步骤 | 测试用例的步骤 |
@allure.severity() | 用例等级 | blocker,critical,normal,minor,trivial |
@allure.link() | 链接 | 定义一个链接,在测试报告展现 |
@allure.attachment() | 附件 | 报告添加附件 |
- @allure.epic 第一级目录
- @allure.feature 第二级目录
- @allure.story 第三级目录
- @allure.title 更换def方法名称
- @allure.testcase 用例链接
- @allure.issue bug链接
- @allure.description 用例描述
- @allure.step 用例步骤
- @allure.serverity() 设置用例优先级
- @allure.link() 写在class时,报告的每个用例的链接都会显示,写在用例前,只在当前用例显示
3.2、动态属性
关键字:dynamic,例子静态写法@allure.title(),动态写法allure.dynamic.title()
def datas():
with open("./data/login.yaml", encoding="utf8") as f:
datas = yaml.safe_load(f)
return datas
@allure.feature("login")
class Test_run:
@classmethod
def setup_class(cls):
cls.wb = Action()
for i in os.dirlist("./temp"): # 每次运行时清除之前temp的数据
os.remove("./temp"+i)
@allure.story("登录用例")
@pytest.mark.parametrize("listcase", datas()['loginPage'])
def test_1login(self, listcase):
allure.dynamic.title(listcase["title"]) # 动态设置用例标题
testcases = listcase['cases']
for p in testcases:
arr = list(p.values())
with allure.step(arr[0]):
func = getattr(self.wb, arr[1]) # 映射,第一个参数为对象(class名称),第二个参数为方法名
func(*arr[2:]) # 传递参数
# yaml格式数据 loginPage : - title : 登录失败 cases : - name : 打开登录页面 method : openWeb url : https://www.baidu.com - name : 输入用户名 method : sendkeys type : id locator : account value : 123456 - name : 输入密码 method : sendkeys type : id locator : password value : lm123456 - name : 点击登录 method : click type : xpath locator : /html/body/main/div/form/a
4、生成报告
选择运行你要执行的用例
pytest -s test_abc.py --alluredir ./temp
选择运行你要执行epic的用例
pytest --alluredir ./temp --allure-epics=epic对大Story的一个描述性标签
选择运行你要执行features的用例
pytest --alluredir ./temp --allure-features=模块2
先执行用例的文件存在/temp中,然后在runner.py文件添加os.system("allure generate ./temp -o ./report --clean"),或者执行命令
allure generate ./temp -o ./report
5、定制logo
1、在config目录下找到allure.yml,打开文件,在最后添加- custom-logo-plugin
2、找到allure目录下的plugins > custom-logo-plugin > static,将logo文件放入该目录下,编辑styles.css,替换.jpg文件,最后调整height和width,直到合适的位置
.side-nav__brand {
background: url('login_icon.jpg') no-repeat left center !important;
margin-left: 40px;
height: 150px;
background-size: contain !important;
}
.side-nav__brand-text {
display: none;
}