今天简单总结一下最近在项目中使用allure生成报告时的一些经验。

allure是我们在做接口自动化测试时所使用的一种产生报表的插件。首先要注意的是,由于他和pytest是绑定的。如果我们在生成时,文件名没有写成‘test_’开头或‘_test’结尾,那么我们在启动allure报告时就会报错。这点要注意。

首先安装:我们可以起官网下载allure。随便解压一个地方之后,我们需要将bin目录添加到环境变量中,这样我们才可以在终端使用allure命令

python自动生成word python自动生成报告_数据导入

 

添加好后在cmd输入:pip install allure-pytest安装

安装好后可以通过:allure --version查看版本号

python自动生成word python自动生成报告_python_02

 

 那么全部完成后我们在python中的使用就是import allure导入allure包,allure的使用主要是通过装饰器,标注用例的名称,级别,步骤等。我们来看几个具体的代码:

python自动生成word python自动生成报告_文件名_03

 

 在代码中是:

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生成报告数据

python自动生成word python自动生成报告_文件名_04

 

 随后我们使用allure serve启动我们的allure报告,它的原理和前端一样,只不过我们前端使用npm run serve启动或者yarn serve

python自动生成word python自动生成报告_python_05

 

 启动后我们就可以看到一份完整的报告啦!

python自动生成word python自动生成报告_python_06