
pytest文档38-allure.step()添加测试用例步骤
发布日期:2021-05-09 09:02:52
浏览次数:18
分类:博客文章
本文共 2807 字,大约阅读时间需要 9 分钟。
前言
一般流程性的测试用例,写成自动化用例时,步骤较多写起来会比较长。在测试用例里面添加详细的步骤有助于更好的阅读,也方便报错后快速的定位到问题。
举个常见的测试场景用例:从登陆开始,到浏览商品添加购物车,最后下单支付用例步骤:1.登陆, 2.浏览商品 3.添加购物车 4.生成订单 5.支付成功用例设计
先把上面的每个环节,写成函数放到common_fucntion.py
# common_fucntion.pyimport allureimport pytest'''流程性的用例,添加测试步骤,让用例更清晰用例步骤:1.登陆, 2.浏览商品 3.添加购物车 4.生成订单 5.支付成功作者:上海-悠悠 QQ交流群:779429633'''def login(username, password): '''登陆''' print("前置操作:先登陆")def open_goods(): '''浏览商品''' print("浏览商品")def add_shopping_cart(goods_id="10086"): '''添加购物车''' print("添加购物车")def buy_goods(): '''生成订单''' print("buy")def pay_goods(): '''支付''' print("pay")
接下来测试用例设计,登陆可以单独拿出来,当成前置操作,后面的步骤合起来就是一个用例test_allure_step.py
# test_allure_step.pyimport allureimport pytestfrom .common_function import *'''流程性的用例,添加测试步骤,让用例更清晰用例步骤:1.登陆, 2.浏览商品 3.添加购物车 4.生成订单 5.支付成功作者:上海-悠悠 QQ交流群:779429633'''@pytest.fixture(scope="session")def login_setup(): login("yoyo", "123456")@allure.feature("功能模块")@allure.story("测试用例小模块-成功案例")@allure.title("测试用例名称:流程性的用例,添加测试步骤")def test_add_goods_and_buy(login_setup): ''' 用例描述: 前置:登陆 用例步骤:1.浏览商品 2.添加购物车 3.购买 4.支付成功 ''' with allure.step("step1:浏览商品"): open_goods() with allure.step("step2:添加购物车"): add_shopping_cart() with allure.step("step3:生成订单"): buy_goods() with allure.step("step4:支付"): pay_goods() with allure.step("断言"): assert 1 == 1
执行用例,生成allure报告
> pytest --alluredir ./allure_report test_allure_step.py> allure serve ./allure_report
报告展示效果如下
测试步骤@allure.step()
测试步骤也可以在 common_fucntion.py 里面定义的函数上加上装饰器实现:@allure.step()
import allureimport pytest'''流程性的用例,添加测试步骤,让用例更清晰用例步骤:1.登陆, 2.浏览商品 3.添加购物车 4.生成订单 5.支付成功'''@allure.step("setup:登陆")def login(username, password): '''登陆''' print("前置操作:先登陆")@allure.step("step:浏览商品")def open_goods(): '''浏览商品''' print("浏览商品")@allure.step("step:添加购物车")def add_shopping_cart(goods_id="10086"): '''添加购物车''' print("添加购物车")@allure.step("step:生成订单")def buy_goods(): '''生成订单''' print("buy")@allure.step("step:支付")def pay_goods(): '''支付''' print("pay")
测试用例设计 test_allure_step_x.py
import allureimport pytestfrom .common_function import *# 作者:上海-悠悠 QQ交流群:779429633@pytest.fixture(scope="session")def login_setup(): login("yoyo", "123456")@allure.feature("功能模块")@allure.story("测试用例小模块-成功案例")@allure.title("第二种实现方式:流程性的用例,添加测试步骤")def test_add_goods_and_buy_2(login_setup): ''' 用例描述: 前置:登陆 用例步骤:1.浏览商品 2.添加购物车 3.购买 4.支付成功 ''' open_goods() add_shopping_cart(goods_id="10086") buy_goods() pay_goods() assert 1 == 1
执行用例,生成allure报告
> pytest --alluredir ./allure_report test_allure_step_x.py> allure serve ./allure_report
报告展示效果如下
两种方式对比
使用 with allure.step("step:步骤")
这种方式代码可读性更好一点,但不会带上函数里面的传参和对应的值。
@allure.step("step:步骤")
这种方式会带上函数的传参和对应的值。这两种方式结合起来使用,才能更好的展示测试报告! 发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月03日 02时43分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
常用Windows 快捷键
2019-03-06
linux命令-压缩与打包
2019-03-06
oracle 11g not in 与not exists 那个高效?
2019-03-06
玩玩小爬虫——试搭小架构
2019-03-06
Javascript之旅——第九站:吐槽function
2019-03-06
Sql Server之旅——第十站 看看DML操作对索引的影响
2019-03-06
双十一来了,别让你的mongodb宕机了
2019-03-06
深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
2019-03-06
Python大神编程常用4大工具,你用过几个?
2019-03-06
一文带你了解图神经网络
2019-03-06
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
2019-03-06
【Flink】Flink 底层RPC框架分析
2019-03-06
MySQL错误日志(Error Log)
2019-03-06
oracle使用DBMS_RANDOM包生成随机数据
2019-03-06
C++高精度模板
2019-03-06
联赛模拟测试23 D. 真相 思维题
2019-03-06
SSISDB2:SSIS工程的操作实例
2019-03-06