文章目录

前言一、allure下载二、allure安装三、allure目录介绍四、allure环境变量配置五、pytest + allure-pytest插件生成allure企业级测试报告六、allure企业级报告的log定制七、allure企业级报告功能内容定制1.功能左边层级定制2.功能右边优先级定制3.功能右边测试用例描述定制4.功能右边测试用例链接定制5.功能右边测试用例测试步骤定制6.功能右边测试用例测试步骤+附件定制6.功能右边测试用例测试步骤+文本内容定制

八、局域网下查看allure测试报告1.局域网(内网)2.局域网(外网)

前言

allure 是一个java测试报告框架。所以要基于JDK环境

JDK下载与安装及配置:https://blog.csdn.net/weixin_44904239/article/details/116291544

一、allure下载

allure下载地址:https://github.com/allure-framework/allure2/releases

二、allure安装

将下载好的安装包解压到需要存放的路径下(我这边存放在了D盘的根目录下)

三、allure目录介绍

bin:命令文件 config:配置文件 lib:存放jar包 plugins:插件

四、allure环境变量配置

此电脑 → 属性 高级系统设置 环境变量 双击系统变量下的Pash 新建 填写 allure 安装的路径 → 确定(D:\allure-2.21.0\bin) 确定 确定 Windows系统及PyCharm中验证 allure --version

注意:allure环境变量配置完成以后,Windows窗口验证没问题,pycharm验证有问题,则重启pycharm重新验证即可

五、pytest + allure-pytest插件生成allure企业级测试报告

安装 pytest 和 allure-pytest 插件 pip install pytest

pip install allure-pytest

配置 pytest.ini 全局配置文件 # --alluredir=./temps:设置allure生成临时的json格式的报告存放的路径

# --clean-alluredir:清空上一次运行的记录

addopts = -vs --alluredir=./temps --clean-alluredir

pytest测试框架的主函数入口配置

参数作用generte生成报告tempsallure生成临时的json格式的报告存放的路径-o生成allure报告的目录report生成allure报告存放的目录-c,–clean清空import os

import pytest

# 运行pytest测试框架的主函数

if __name__ == '__main__':

pytest.main()

# 调用allure生成报告

os.system("allure generate ./temps -o ./report --clean")

注意:需要通过pytest主函数执行才会生成allure的html测试报告

查看allure生成的html测试报告 修改allure报告的语言

六、allure企业级报告的log定制

前往allure安装目录下的plugins存放插件的目录下复制定制log的插件名称 将复制的插件名称粘贴到allure安装目录下的config目录下的allure.yml文件中 config目录下的allure.yml文件中配置自定义的logo插件 - custom-logo-plugin

重新启动pytest生成allure报告,查看是否启用自定义log插件 将准备好的log图片放到allure安装目录下的plugins\custom-logo-plugin\static定制log的插件路径下 修改allure安装目录下的plugins\custom-logo-plugin\static定制log的插件路径下的styles.css文件

通过修改这两个参数来调整log图片的大小和位置:margin-left: 10px; 和 height: 90px;

.side-nav__brand {

background: url('log.jpg') no-repeat left center !important;

margin-left: 10px;

height: 90px;

background-size: contain !important;

}

.side-nav__brand-text {

display: none;

}

重新启动pytest生成allure报告,查看是否定制log成功

七、allure企业级报告功能内容定制

1.功能左边层级定制

(1)项目名称(史诗):@allure.epic() (2)模块名称(特性):@allure.feature() (3)接口名称(分组):@allure.story() (4)用例标题:有两种方式(两种效果是一样的,方式二更加灵活)

方式一:@allure.title()方式二:allure.dynamic.title() 方法一 import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.title("用例名称-验证成功登陆")

def test_login(self):

print("登陆")

@allure.story("用户注册接口")

@allure.title("用例名称-验证成功注册")

def test_register(self):

print("注册")

@allure.story("添加用户")

@allure.title("用例名称-验证成功添加用户")

def test_add_user(self):

print("添加用户")

方法二 import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

print("登陆")

@allure.story("用户注册接口")

def test_register(self):

allure.dynamic.title("用例名称-验证成功注册")

print("注册")

@allure.story("添加用户")

def test_add_user(self):

allure.dynamic.title("用例名称-验证成功添加用户")

print("添加用户")

注意:每次修改内容后要查看预期结果需要重新执行allure生成报告

2.功能右边优先级定制

优先级默认都是:normal

测试用例严重级别:

BLOCKER:致命的(@allure.severity(allure.severity_level.BLOCKER))CRITICAL:严重的(@allure.severity(allure.severity_level.CRITICAL))NORMAL:正常的(@allure.severity(allure.severity_level.NORMAL))MINOR:轻微的(@allure.severity(allure.severity_level.MINOR))TRIVIAL:不重要的(@allure.severity(allure.severity_level.TRIVIAL)) import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

print("登陆")

@allure.story("用户注册接口")

@allure.severity(allure.severity_level.CRITICAL)

def test_register(self):

allure.dynamic.title("用例名称-验证成功注册")

print("注册")

@allure.story("添加用户")

@allure.severity(allure.severity_level.NORMAL)

def test_add_user(self):

allure.dynamic.title("用例名称-验证成功添加用户")

print("添加用户")

@allure.story("删除用户")

@allure.severity(allure.severity_level.MINOR)

def test_delete_user(self):

allure.dynamic.title("用例名称-验证成功删除用户")

print("删除用户")

@allure.story("修改用户")

@allure.severity(allure.severity_level.TRIVIAL)

def test_update_user(self):

allure.dynamic.title("用例名称-验证成功修改用户")

print("修改用户")

3.功能右边测试用例描述定制

测试用例的描述定制:有两种方式

方式一:@allure.description()方式二:allure.dynamic.description() 方法一: import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.description("这是验证登陆是否成功")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

print("登陆")

@allure.story("用户注册接口")

@allure.severity(allure.severity_level.CRITICAL)

@allure.description("这是验证注册是否成功")

def test_register(self):

allure.dynamic.title("用例名称-验证成功注册")

print("注册")

@allure.story("添加用户")

@allure.severity(allure.severity_level.NORMAL)

@allure.description("这是验证添加用户是否成功")

def test_add_user(self):

allure.dynamic.title("用例名称-验证成功添加用户")

print("添加用户")

@allure.story("删除用户")

@allure.severity(allure.severity_level.MINOR)

@allure.description("这是验证删除用户是否成功")

def test_delete_user(self):

allure.dynamic.title("用例名称-验证成功删除用户")

print("删除用户")

@allure.story("修改用户")

@allure.severity(allure.severity_level.TRIVIAL)

@allure.description("这是验证修改用户是否成功")

def test_update_user(self):

allure.dynamic.title("用例名称-验证成功修改用户")

print("修改用户")

方法二: import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

print("登陆")

@allure.story("用户注册接口")

@allure.severity(allure.severity_level.CRITICAL)

def test_register(self):

allure.dynamic.title("用例名称-验证成功注册")

allure.dynamic.description("这是验证注册是否成功")

print("注册")

@allure.story("添加用户")

@allure.severity(allure.severity_level.NORMAL)

def test_add_user(self):

allure.dynamic.title("用例名称-验证成功添加用户")

allure.dynamic.description("这是验证添加用户是否成功")

print("添加用户")

@allure.story("删除用户")

@allure.severity(allure.severity_level.MINOR)

def test_delete_user(self):

allure.dynamic.title("用例名称-验证成功删除用户")

allure.dynamic.description("这是验证删除用户是否成功")

print("删除用户")

@allure.story("修改用户")

@allure.severity(allure.severity_level.TRIVIAL)

def test_update_user(self):

allure.dynamic.title("用例名称-验证成功修改用户")

allure.dynamic.description("这是验证修改用户是否成功")

print("修改用户")

4.功能右边测试用例链接定制

@allure.link():接口访问链接 @allure.issue():bug链接 @allure.testcase():测试用例链接 import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.link("接口访问链接")

@allure.issue("bug链接")

@allure.testcase("测试用例链接")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

print("登陆")

5.功能右边测试用例测试步骤定制

测试步骤定制:两种方式(常用第二种)

方式一:@allure.step()方式二:with allure.step(): 方法一: import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.link("接口访问链接")

@allure.issue("bug链接")

@allure.testcase("测试用例链接")

@allure.step("测试步骤:输入用户名、输入密码、点击登陆")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

print("登陆")

方法二: import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.link("接口访问链接")

@allure.issue("bug链接")

@allure.testcase("测试用例链接")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

with allure.step("第一步:输入用户名"):

print("输入用户名")

with allure.step("第二步:输入密码"):

print("输入密码")

with allure.step("第三步:点击登陆"):

print("点击登陆")

print("登陆")

6.功能右边测试用例测试步骤+附件定制

测试用例步骤+附件(一般用于错误截图(一般用于web自动化测试)) import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.link("接口访问链接")

@allure.issue("bug链接")

@allure.testcase("测试用例链接")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

print("登陆")

# 测试步骤

for i in range(1, 6):

with allure.step("第" + str(i) + "步"):

pass

# 错误截图

with open("D:\\error.png", mode="rb") as f:

result = f.read()

allure.attach(body=result, name="错误截图", attachment_type=allure.attachment_type.PNG)

6.功能右边测试用例测试步骤+文本内容定制

文本内容定制:一般应用于接口自动化 文本内容定制:allure.attach("文本内容", name="文本名称", attachment_type=allure.attachment_type.TEXT) import allure

@allure.epic("项目名称-智考1.0")

@allure.feature("模块-用户管理模块")

class TestFirstClass():

@allure.story("用户登陆接口")

@allure.severity(allure.severity_level.BLOCKER)

@allure.link("接口访问链接")

@allure.issue("bug链接")

@allure.testcase("测试用例链接")

def test_login(self):

allure.dynamic.title("用例名称-验证成功登陆")

allure.dynamic.description("这是验证登陆是否成功")

print("登陆")

# 测试步骤

for i in range(1, 6):

with allure.step("第" + str(i) + "步"):

pass

# 错误截图

with open("D:\\error.png", mode="rb") as f:

result = f.read()

allure.attach(body=result, name="错误截图", attachment_type=allure.attachment_type.PNG)

# 接口自动化:文本

# 请求四要素

allure.attach("接口地址:https://www.baidu.com", name="文本1", attachment_type=allure.attachment_type.TEXT)

allure.attach("接口参数:{一般从yaml中获取}", name="文本2", attachment_type=allure.attachment_type.TEXT)

allure.attach("接口请求方式:get", name="文本3", attachment_type=allure.attachment_type.TEXT)

allure.attach("请求头:{一般从yaml中获取}", name="文本4", attachment_type=allure.attachment_type.TEXT)

# 响应内容

allure.attach("响应文本:{一般从yaml中获取}", name="文本5", attachment_type=allure.attachment_type.TEXT)

allure.attach("接口执行结果:成功/失败", name="文本6", attachment_type=allure.attachment_type.TEXT)

八、局域网下查看allure测试报告

1.局域网(内网)

让公司内部局域网下其他人员查看allure测试报告(通过下面方法,将得到的链接地址分析给其他人员即可)

命令:allure open allure测试报告地址 allure open ./report

2.局域网(外网)

需要做网络映射,需要运维人员去完成,不属于测试的工作范围

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: 


大家都在找:

pytest:自动化测试pytest

allure:爱马仕allure

自动化测试:自动化测试工具selenium的使用

大家都在看: