目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行。下面就对allure的使用进行一个详细的介绍和总结。
需要准备的环境:
python;
pytest;
allure-pytest;
allure工具;
1、allure用例描述
使用方法 | 参数值 | 参数说明 |
---|---|---|
@allure.epic() | epic描述 | 敏捷里面的概念,对用例或用例集进行描述分类 |
@allure.feature() | 模块名称 | 与epic类似,只是比epic级别低 |
@allure.story() | 用户故事 | 与epic类似,只是比feature级别低 |
@allure.title(用例的标题) | 用例的标题 | 重命名html报告的用例名称 |
@allure.testcase() | 测试用例的链接地址 | 与link类似 |
@allure.issue() | 缺陷 | 与link类似 |
@allure.description() | 用例描述 | 进行测试用例的描述 |
@allure.step() | 操作步骤 | 进行测试用例的步骤 |
@allure.severity() | 用例等级 | blocker,critical,normal,minor,trivial |
@allure.link() | 链接 | 定义一个链接,在测试报告展现(推荐使用) |
@allure.attachment() | 附件 | 报告添加附件 |
2、allure实战demo
# -*- coding:utf-8 -*-
import pytest
import allure
from base.log import Logger
logger = Logger(logger_name='allure', level='error').get_logger()@pytest.fixture(scope="session") # 用例前置操作
def login_fixture():# 比如登录获取token操作return "token:xx"@allure.step("用例步骤1")
def step_1():logger.info("用例操作---------------步骤1")return True@allure.step("用例步骤2")
def step_2():logger.info("用例操作---------------步骤2")return False@allure.step("用例步骤3")
def step_3():logger.info("用例操作---------------步骤3")return True@allure.epic("可以对用例或用例集进行描述分类(若出现多个时,内容一致则自动归为一类)")
@allure.feature("对用例集或用例进行描述分类---与epic类似,只是比epic级别低")
@allure.story("对用例集或用例进行描述分类---与epic类似,只是比feature级别低")
class TestAllureDemo:@allure.testcase("https://xxx/testcase/list",name='用例链接testcase') # 为了更好的链接到问题分类或者bug、测试用例地址中(url、name两个参数,可不填写name;可以用@allure.link)@allure.link("https://xxx/testcase/list", name='用例链接link') # 与testcase没有多大区别,从可读性角度还是建议选择@allure.link@allure.issue("https://xxx/testcase/list", name='用例链接issue') # 与testcase区别在于有小虫子图标@allure.title("用例的标题") # 可参数化标题@allure.story("用例分类:1") # 可参数化标题@allure.severity("critical") # 用例等级(blocker critical normal minor trivial)def test_case_1(self, login_fixture):"""1.用例描述2.用例步骤3.预期结果"""logger.info(login_fixture) # 获取用例前置的信息,比如登录tokenassert step_1()assert step_2()@allure.story("用例分类:2")def test_case_2(self, login_fixture):logger.info("测试用例2")assert step_1()assert step_3()@allure.epic("冒烟自动化用例")
class TestDemo2:@allure.story("用例分类:3")def test_case_3(self, login_fixture):logger.info("测试用例3")step_1()@allure.story("用例分类:4")def test_case_4(self, login_fixture):logger.info("测试用例4")step_3()
3、allure的命令行参数
pytest执行用例时可以加上allure的标记参数,可以控制执行哪些用例。
--allure-severities=SEVERITIES_SETComma-separated list of severity names. Tests onlywith these severities will be run. Possible valuesare: blocker, critical, normal, minor, trivial.
--allure-epics=EPICS_SETComma-separated list of epic names. Run tests thathave at least one of the specified feature labels.
--allure-features=FEATURES_SETComma-separated list of feature names. Run tests thathave at least one of the specified feature labels.
--allure-stories=STORIES_SETComma-separated list of story names. Run tests thathave at least one of the specified story labels.
--allure-link-pattern=LINK_TYPE:LINK_PATTERNUrl pattern for link type. Allows short links in test,like 'issue-1'. Text will be formatted to full urlwith python str.format().
实例如下:
# 选择运行你要执行epic的用例
pytest --alluredir ./report/allure --allure-epics=epic对大Story的一个描述性标签# 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-features=模块2# 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-stories="用户故事:1"
4、执行脚本-allure生成报表并启动报告
运行方式一:
命令行模式下运行pytest,生产测试结果文件
pytest demo.py --alluredir ./report/allure
allure程序启动已经生产的文件
allure serve ./report/allure
运行方式二:
编写启动方法,运行pytest
pytest.main([allure_demo.py, "--alluredir", "report/result"])
使用进程,开启allure服务
import subprocesssubprocess.call('allure generate report/result/ -o report/html --clean', shell=True)
subprocess.call('allure open -h 127.0.0.1 -p 9999 ./report/html', shell=True)
(两种方法都需要安装allure工具)
5、报告效果图及注解
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
在阳光照耀的舞台上,奋斗是绽放的华彩;在风雨交加的征途上,拼搏成就无悔的辉煌。坚持不止,勇往直前,用汗水浇灌理想之花,让努力与执着铸就璀璨人生的传世之作!
胜利属于那些不畏艰辛、敢于拼搏的人,只有勇往直前,才能突破自我、追逐梦想。坚持不放弃,奋斗不止步,唯有如此,方能书写属于自己的辉煌篇章,成就无限可能!
奋斗是生命的激情,拼搏是实现梦想的舞台。无论前路如何崎岖,执着的追求和不屈的毅力将开辟出通往成功之路。信念燃烧心中,奋力挥洒汗水,成就自己的辉煌,创造不凡的人生!