pytest之allure测试报告(多元化版本)
前言
Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息
从dev/qa的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。
从管理者的角度来看,Allure提供了一个清晰的“大图”,其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。allure的模块化和可扩展性保证了您总是能够对某些东西进行微调,使Allure更适合您,那么今天我们就来说说如何使报告更加详细的显示我们需要的信息,以及allure与jenkins的集成
生成报告
pytest框架编写的项目如何生成测试报告,这里将不再讲解,具体过程可以参考:pytest进阶之html测试报告
注意:python使用的allure插件为allure-pytest
测试代码
为了大家能够快速的认识allure的所有功能特性,附上完整的测试代码
conftest.py
"""
------------------------------------
@Time : 2019/9/4 21:05
@Auth : linux超
@File : test_allure_feature.py
@IDE : PyCharm
@Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error!
@QQ : 28174043@qq.com
@GROUP: 878565760
------------------------------------
"""
import pytest
import allure
import os
def login(username=None, password=None):
"""模拟登录"""
user = "linux超"
pwd = "123456"
if user == username and pwd == password:
return {"code": 1001, "msg": "登录成功", "data": None}
elif "" == password or password is None and username:
return {"code": 1002, "msg": "密码不能为空", "data": None}
elif "" == username or username is None and password:
return {"code": 1003, "msg": "用户名不能为空", "data": None}
else:
return {"code": 1004, "msg": "用户名或密码错误", "data": None}
@allure.step("输入用户名")
def input_username(user):
print("输入用户名")
return user
@allure.step("输入密码")
def input_password(pwd):
print("输入密码")
return pwd
login_success_data = [
# 测试数据
{
"case": "用户名正确, 密码正确",
"user": "linux超",
"pwd": "123456",
"expected": {"code": 1001, "msg": "登录成功", "data": None}
}
]
login_fail_data = [
{
"case": "用户名正确, 密码为空",
"user": "linux超",
"pwd": "",
"expected": {"code": 1002, "msg": "密码不能为空", "data": None}
},
{
"case": "用户名为空, 密码正确",
"user": "",
"pwd": "linux超哥",
"expected": {"code": 1003, "msg": "用户名不能为空", "data": None}
},
{
"case": "用户名错误, 密码错误",
"user