首页 > 其他分享 >关键字 开发-14 用例跳过

关键字 开发-14 用例跳过

时间:2023-12-26 10:47:34浏览次数:27  
标签:code 14 关键字 api skip 用例 pytest sleep

前言

有些情况需要通过加入用例步骤之间的等待时间,来进行接口的断言或者后置,其次有时候需要根据条件判断用例是否需要执行。

1. 加入sleep等待时间

通过sleep关键字即可实现,在执行用例的过程前添加等待时间。

                        elif item == 'sleep':
                            try:
                                sleep_value = render_template_obj.rend_template_any(value, **self.context)
                                log.info(f'sleep time: {sleep_value}')
                                time.sleep(sleep_value)
                            except Exception as msg:
                                log.error(f'Run error: sleep value must be int or float, error msg: {msg}')
# testcase

config:
  name: 登录用例
  variables:
    username: "admin"
    password: "eaton@2023"

teststeps:
  -
    name: 登录-步骤1
    sleep: 3
    api: api/login.yml
    extract:
      code1: $.code
      code2: body.code
      token: $.data.token
    validate:
      - eq: [$.code, "000000"]
      - eq: [status_code, 200]

  -
    name: 登录-步骤2
    sleep: 3
    api: api/login.yml
    validate:
      - eq: [ status_code, 200 ]

在yaml文件中,支持每个步骤之间的等待,运行pytest ./testcase,可以知道一条用例,步骤一和步骤二同时加了3秒,于是功运行了6秒多的时间。

2. skip跳过用例

pytest 实现跳过用例有2种方式。

# 方式一,在testcase中添加@pytest.mark.skip装饰器
@pytest.mark.skip(reason="no way of currently testing this")
def test_the_unknown():
...

# 方式二,pytest.skip(skip_reason)是一个pytest框架中的函数,用于告诉pytest跳过当前测试用例。当某些条件不满足或者测试用例暂时不可用时,可以使用pytest.skip()来指示pytest跳过执行当前测试用例,并在报告中显示跳过的原因。
import pytest

def test_function():
    if some_condition_not_met:
        pytest.skip("Skipping this test because some_condition_not_met is True")
    # 测试代码

于是在用例执行的前面,添加skip关键字。

                        elif item == 'skip':
                            skip_reason = render_template_obj.rend_template_any(value, **step_context)
                            pytest.skip(skip_reason)
# testcase/test_login.yml
config:
  name: 登录用例
  variables:
    username: "admin"
    password: "eaton@2023"

teststeps:
  -
    name: 登录-步骤1
    skip: 测试数据不足,暂时不测试
    api: api/login.yml
    extract:
      code1: $.code
      code2: body.code
      token: $.data.token
    validate:
      - eq: [$.code, "000000"]
      - eq: [status_code, 200]

3. skipif条件满足跳过

skipif关键字可以参考skip关键字即可,只需要加一个if条件判断即可。

                        elif item == 'skipif':
                            if_exp = render_template_obj.rend_template_any(value, **step_context)
                            log.info(f'skipif : {eval(str(if_exp))}')
                            if eval(str(if_exp)):  # 只需加一个if条件,下面同样用到的也是pytest.skip()
                                pytest.skip(str(if_exp))
config:
  name: 登录用例
  variables:
    username: "admin"
    password: "eaton@2023"

teststeps:
  -
    name: 登录-步骤1
    skipif: 100 > 50  # 条件满足,则跳过
    api: api/login.yml
    extract:
      code1: $.code
      code2: body.code
      token: $.data.token
    validate:
      - eq: [$.code, "000000"]
      - eq: [status_code, 200]

标签:code,14,关键字,api,skip,用例,pytest,sleep
From: https://www.cnblogs.com/dack-zt-deng/p/17927594.html

相关文章

  • Leetcode LCP 14. 切分数组
    https://leetcode.cn/problems/qie-fen-shu-zu/description/给定一个整数数组nums,小李想将nums切割成若干个非空子数组,使得每个子数组最左边的数和最右边的数的最大公约数大于1。为了减少他的工作量,请求出最少可以切成多少个子数组。示例1:输入:nums=[2,3,3,2,3,3]......
  • C# 中使用 using 关键字和不使用 using 关键字创建 FileStream
    在C#中使用using关键字和不使用using关键字创建FileStream实例之间有一些区别。使用using关键字:using(FileStreamfileStream=newFileStream(filePath,FileMode.Open,FileAccess.Read)){//使用fileStream进行操作}using关键字用于创建FileStream......
  • 软件测试面试——如何提高测试用例覆盖率?
    如何提高测试用例覆盖率?在项目的初期,我们参与到需求评审中1.覆盖显性需求需求文档或原型图上已经标注清楚的功能一定要全部覆盖,通过思维导图工具进行梳理一般都能保证。2.获取隐含需求隐含需求的获取是一大难点,但需求就像冰山,露在水面的始终只是极少的一部分。3.合理使用合适的......
  • 前员工窃华为芯片机密,14人被捕 ,小米被卷入其中 | 百能云芯
    一起窃取芯片机密的案件引起了科技产业的广泛关注。据上海市公安局经济犯罪侦查总队通报,上海警方成功侦破了一起侵犯芯片技术商业秘密案,抓获了14名犯罪嫌疑人。在这宗案件中,华为的前员工离职后创立了一家名为“尊湃通讯”的公司,通过引诱多名原华为研发人员获取技术消息,将其应用于尊......
  • C++ /内存文件使用例程
    ///c++内存文件使用例程classMemoryBuffer:publicstd::strstreambuf{public:usingBase=std::basic_streambuf<char>;usingchar_type=typenameBase::char_type;MemoryBuffer(char*buf,size_tlen):std::strstreambuf(buf,l......
  • 软件设计14
    [实验任务一]:婚介所婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。实验要求:1. 提交类图;  2. 提交源代码;publicabstractclassCenter{    protec......
  • 12.14
    实验8Flink初级编程实践 1.实验目的(1)通过实验掌握基本的Flink编程方法。(2)掌握用IntelliJIDEA工具编写Flink程序的方法。2.实验平台(1)Ubuntu18.04(或Ubuntu16.04)。(2)IntelliJIDEA。(3)Flink1.9.1。3.实验步骤(1)使用IntelliJIDEA工具开发WordCount程序在Linux系统中安装In......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231413《计算机基础与程序设计》第十三周学习总结1.作业信息班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:《C语言程序设计》第13章并完成云班课测试作业正文:https://www.cnblogs.com/Kaifazheju......
  • 2023-2024-1 20231415 《计算机基础与程序设计》第十三周学习总结
    这个作业属于哪个班级https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/这二个左右要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13作业目标《C语言程序设计》第12章并完成云班课测试作业正文https://i.cnblogs.com/posts/edit教材内......
  • 2023-2024-1 20231412 《计算机基础与程序设计》第13周学习总结
    2023-2024-120231412《计算机基础与程序设计》第13周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13010这个作业的目标《C......