51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3600|回复: 0
打印 上一主题 下一主题

[转贴] allure step 编写测试用例的两种方式

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-5-12 11:34:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1.方式一:
      测试用例中with allure.step():
    1.  # common_fucntion.py
    2.   import allure
    3.   import pytest
    4.   '''
    5.   流程性的用例,添加测试步骤,让用例更清晰
    6.   用例步骤:1.登陆, 2.浏览商品 3.添加购物车  4.生成订单  5.支付成功
    7.   '''
    8.   def login(username, password):
    9.       '''登陆'''
    10.       print("前置操作:先登陆")
    11.   def open_goods():
    12.       '''浏览商品'''
    13.       print("浏览商品")
    14.   def add_shopping_cart(goods_id="10086"):
    15.       '''添加购物车'''
    16.       print("添加购物车")
    17.   def buy_goods():
    18.       '''生成订单'''
    19.       print("buy")
    20.   def pay_goods():
    21.       '''支付'''
    22.       print("pay")
    复制代码
     test_allure_step.py
    1. # test_allure_step.py
    2.   import allure
    3.   import pytest
    4.   from .common_function import *
    5.   '''
    6.   流程性的用例,添加测试步骤,让用例更清晰
    7.   用例步骤:1.登陆, 2.浏览商品 3.添加购物车  4.生成订单  5.支付成功
    8.   '''
    9.   @pytest.fixture(scope="session")
    10.   def login_setup():
    11.       login("yoyo", "123456")
    12.   @allure.feature("功能模块")
    13.   @allure.story("测试用例小模块-成功案例")
    14.   @allure.title("测试用例名称:流程性的用例,添加测试步骤")
    15.   def test_add_goods_and_buy(login_setup):
    16.       '''
    17.       用例描述:
    18.       前置:登陆
    19.       用例步骤:1.浏览商品 2.添加购物车  3.购买  4.支付成功
    20.       '''
    21.       with allure.step("step1:浏览商品"):
    22.           open_goods()
    23.       with allure.step("step2:添加购物车"):
    24.           add_shopping_cart()
    25.       with allure.step("step3:生成订单"):
    26.           buy_goods()
    27.       with allure.step("step4:支付"):
    28.           pay_goods()
    29.       with allure.step("断言"):
    30.           assert 1 == 1
    复制代码

    测试报告:

      2.方式二:
      直接使用allure.step() 装饰器定义在步骤的函数上面
     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")

      用例
    请  import allure  import pytest
      from .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

      报告:

      3.两种方式比较
      使用 with allure.step("step:步骤") 这种方式代码可读性更好一点,但不会带上函数里面的传参和对应的值。
      使用 @allure.step("step:步骤") 这种方式会带上函数的传参和对应的值。
      这两种方式结合起来使用,才能更好的展示测试报告!
      结合使用案例:
      with allure step():  可以集成一些截图,通过attach来格式化输出报告:









    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 03:05 , Processed in 0.064005 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表