今天简单总结一下最近在项目中使用allure生成报告时的一些经验。
allure是我们在做接口自动化测试时所使用的一种产生报表的插件。首先要注意的是,由于他和pytest是绑定的。如果我们在生成时,文件名没有写成‘test_’开头或‘_test’结尾,那么我们在启动allure报告时就会报错。这点要注意。
首先安装:我们可以起官网下载allure。随便解压一个地方之后,我们需要将bin目录添加到环境变量中,这样我们才可以在终端使用allure命令
添加好后在cmd输入:pip install allure-pytest安装
安装好后可以通过:allure --version查看版本号
那么全部完成后我们在python中的使用就是import allure导入allure包,allure的使用主要是通过装饰器,标注用例的名称,级别,步骤等。我们来看几个具体的代码:
在代码中是:
import pytest
from KeJie.api.kjgoodspostApi import KEJIEPOST
from KeJie.com.readCsv import READCSV
import allure
# 将csv文件中的测试数据导入
para = READCSV().readAll(start=1, end=5)
# 将全字段测试csv文档数据导入
paraall = READCSV(file='alltestdata.csv').readAll(start=1, end=14)
# 将库存测试csv文档数据导入
paraamount = READCSV(file='amount_test_data.csv').readAll(start=1, end=1)
# 将修改测试csv文档数据导入
paraupdate = READCSV(file='update_goods_data.csv').readAll(start=1, end=6)
# 必填测试
@pytest.mark.parametrize("outdety, number, code,price, ftax,unit,msg_code,desc", para)
@allure.epic("KEJIE仓中仓")
@allure.feature("必填测试")
@allure.story("测试必填项")
@allure.step("必填项场景测试py")
@allure.severity("NORMAL")
def test_good_01(outdety, number, code, price, ftax, unit, msg_code, desc):
kj = KEJIEPOST()
res = kj.goodPost(outdety, number, code, price, ftax, unit)
msg = res.json()['code']
print(msg)
print(msg_code)
print(desc)
# 断言,当报错码等于10201时才正确
assert str(msg) == msg_code
完成后我们在终端输入:
pytest --alluredir ./report/allure_result生成报告数据
随后我们使用allure serve启动我们的allure报告,它的原理和前端一样,只不过我们前端使用npm run serve启动或者yarn serve
启动后我们就可以看到一份完整的报告啦!