首页 > 其他分享 >pytest-依赖测试

pytest-依赖测试

时间:2023-02-28 22:34:05浏览次数:44  
标签:依赖 01 mark dependency pytest 测试 test

背景

我们在接口自动化过程中,总会存在依赖性较强的场景,比如批价->下单->支付,具备强依赖关系,这个时候就用到了依赖测试。
参考 https://blog.csdn.net/dingding_ting/article/details/117200319

1、安装:

pip install pytest-dependency

2、用法:

第一步:需要在用例开始位置写上@pytest.mark.dependency(),代表这条用例作为主条件,如果这条用例失败,关联它的用例会跳过执行。
第二步:在被关联的用例上,也打上带参数的装饰器@pytest.mark.dependency(),参数depends可写关联的依赖用例名。在depends也可以用别名的方式指定用例名

(1)在函数中执行

在test_01函数前我们加上了@pytest.mark.dependency(),
在test_02函数前也写了@pytest.mark.dependency(depends=["test_01"])

(2)在类中执行

在类中执行,不能直接写方法名,需要加上类名::方法名或者别名
在test_01函数前我们加上了@pytest.mark.dependency(),
在test_02函数前也写了@pytest.mark.dependency(depends=["类名::test_01"])

2、依赖范围:

(1)class
作用于所属的类,外部类不会被关联
@pytest.mark.dependency(depends=["test_01"],scope="class")

(2)module
默认参数是’module’,作用于当前文件。只会查找当前文件的符合条件的文件名,类里同名的方法不会被依赖。
@pytest.mark.dependency(depends=["test_01"],scope="module")

(3)package
作用于当前目录同级的依赖函数,跨目录无法找到依赖的函数。
例如在dep2目录下,创建了test_dep_01.py和test_dep_02.py
@pytest.mark.dependency(depends=["xxx.py::类名::test_01"],scope="package")

(4)session
作用域全局,可跨目录调用。但被依赖的用例必须先执行
@pytest.mark.dependency(depends=["xx/xx.py::类名::test_01"],scope="session")
支持直接在类名上方添加,那么类下面所有方法都不执行

3、实战

场景一 相同文件下用例依赖-class

比如:依赖用例1满足条件(学员详情列表有数据),再执行用例2(检查学习进度)


 

 

 

class-被依赖方
 

 

 

class-依赖方

场景二 不同目录下用例依赖-session

比如:依赖用例1满足条件(学习进度100%),再执行用例2(新建完成课程的标签)


 

 

 

session-被依赖方  

 

 

session-依赖方


标签:依赖,01,mark,dependency,pytest,测试,test
From: https://www.cnblogs.com/kxtomato/p/17166324.html

相关文章

  • 测试目录
    面试题Java基础知识1.jvm、jdk、jrejvm:jvm是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结......
  • 课堂测试
    昨天王老师进行了一次课堂,做了那么多次的Javaweb,久违得做了一次纯Java的题目实施证明我对Java的理解和掌握也不深入题目——  我的代码——packagedemo;importj......
  • 性能测试工具locust压测介绍
    官方文档:https://docs.locust.io/en/stable/index.html1、初识locustLocust完全基本Python编程语言,采用python编写压测脚本,且所有请求完全基于requests库。除了HTT......
  • 第三方软件测试机构需要具备哪些资质?软件测评收费标准
    一、什么是第三方软件测试机构?第三方软件测试机构是区别与软件开发方与需求方的第三方检测机构,因为与软件产品本身无利益关系且有着丰富的测试经验,操作软件测试过......
  • java网络编程-待测试
    publicclassServer2{publicstaticvoidmain(String[]args)throwsException{System.out.println("==服务器的启动==");//1.注册端口......
  • 《渗透测试》学习随笔 day4
    思维导图 1 常规的Web应用搭建:(1)购买云服务器,购买域名(2)云服务器去搭建中间件(3)下载并上传Web程序源码(4)添加网站并绑定域名目录2子域名模式www.xiaod......
  • 【MyBatis】测试链接数据库查询用户
    配置文件访问:【MyBatis】配置Mybatis项目-小鼻涕孩-博客园(cnblogs.com)数据表数据:Test.java:1importorg.apache.ibatis.io.Resources;2importorg.apache.......
  • 注册功能_后台_service代码实现&测试与注册功能_后台_验证码&前台数据处理
    注册功能_后台_service代码实现&测试添加数据   成功的添加到数据库中     注册功能_后台_验证码&前台数据处理  //验证......
  • 第三周上课测试
    今天上课留下的任务是计算出一篇英语文本中最长且不重复的单词链。在知道这个要求时,我先判断出它需要对文件进行操作以及一定会用到至少两个数组。我计划先将文件中的单词......
  • python+playwright 学习-17.模拟手机浏览器测试
    前言使用Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。设置手机模式只需配置您想要模拟的设备,Playwright就会模拟浏览器行......