首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytest文档38-allure.setp添加测试用例步骤

pytest文档38-allure.setp添加测试用例步骤

作者头像
上海-悠悠
发布2020-05-12 17:56:40
发布2020-05-12 17:56:40
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

前言

一般流程性的测试用例,写成自动化用例时,步骤较多写起来会比较长。在测试用例里面添加详细的步骤有助于更好的阅读,也方便报错后快速的定位到问题。 举个常见的测试场景用例:从登陆开始,到浏览商品添加购物车,最后下单支付

用例步骤:

1.登陆, 2.浏览商品 3.添加购物车 4.生成订单 5.支付成功

用例设计

先把上面的每个环节,写成函数放到common_fucntion.py

代码语言:javascript
代码运行次数:0
运行
复制
# common_fucntion.py
import allure
import 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

代码语言:javascript
代码运行次数:0
运行
复制
# test_allure_step.py
import allure
import pytest
from .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报告

代码语言:javascript
代码运行次数:0
运行
复制
> pytest --alluredir ./allure_report test_allure_step.py
> allure serve ./allure_report

报告展示效果如下

测试步骤@allure.step()

测试步骤也可以在 common_fucntion.py 里面定义的函数上加上装饰器实现:@allure.step()

代码语言:javascript
代码运行次数:0
运行
复制
import allure
import 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

代码语言:javascript
代码运行次数:0
运行
复制
import allure
import pytest
from .common_function import *

@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报告

代码语言:javascript
代码运行次数:0
运行
复制
> pytest --alluredir ./allure_report test_allure_step_x.py
> allure serve ./allure_report

报告展示效果如下

两种方式对比

使用 with allure.step("step:步骤") 这种方式代码可读性更好一点,但不会带上函数里面的传参和对应的值。 使用 @allure.step("step:步骤") 这种方式会带上函数的传参和对应的值。 这两种方式结合起来使用,才能更好的展示测试报告!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 用例设计
  • 测试步骤@allure.step()
  • 两种方式对比
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档