今日分享主题:Python + Pytest 自动化框架中测试用例依赖的探索与实践,今天分享的内容以“依赖别名+scope=’package’”进行演示。

1、安装 pytest-dependency

安装命令:pip install pytest-dependency,它是一个 pytest 第三方插件,主要解决用例之间的依赖关系。

2、dependency 可作用的范围说明

(1).session:作用于全局,可跨目录调用。但被依赖的用例必须先执行,否则用例会执行跳过。

(2).package:作用于当前目录同级的依赖函数,跨目录无法找到依赖的函数。

(3).module:不传递scope,默认参数是’module’,作用于当前文件,只会查找当前文件的符合条件的文件名,类里同名的方法不会被依赖。

(4).class:作用于所属的类,外部类不会被关联。

3、使用步骤

(1).首先,需要在用例开始的位置打上一个装饰器@pytest.mark.dependency(),这是代表这条用例作为主条件,如果这条用例失败,关联它的用例会跳过执行。

(2).在被关联的用例上,也打上带参数的装饰器@pytest.mark.dependency(),depends 接受的参数是关联的依赖用例名。

(3).在 depends 也可以用别名的方式指定用例名。

4、代码演示

test_dep_01.py:这是一个被依赖的文件,用来做权限检查的(这是我模拟的一个本地的 ip 访问校验使用的)

#test_dep_01.py文件内容如下:

import pytestfrom commons.HandleJson import handle_jsonimport commons.configs as configfrom commons.log import loggerfrom commons.HandleCompare import compareTestfrom commons.ApiRequest import apiRequestbaseFileName = '…/…/testdata/check_premission_data.json’testCaseData = handle_json.load_json(baseFileName)classTestDep1(): @pytest.mark.dependency(name=‘testUserCheck’) @pytest.mark.parametrize(‘case_data’, testCaseData[‘testcase’])deftestUserCheck(self, case_data): api_response = apiRequest.api_request(config.apiurl, testCaseData, case_data)for case_validate in case_data[‘validate’]: logger.info(‘断言期望相关参数:check:{},comparator:{},expect:{}’.format(case_validate[‘check’], case_validate[‘comparator’],case_validate[‘expect’])) compareTest.compare_Assert(api_response, case_validate[‘check’], case_validate[‘comparator’],case_validate[‘expect’])

check_premission_data.json:用例数据文件只有1条用例,如下所示:

test_dep_02.py:这个是依赖上面的代码内容,逻辑是当前面的检查校验通过后,才可以允许做登录。

#test_dep_02.py文件内容如下:

import pytestfrom commons.HandleJson import handle_jsonimport commons.configs as configfrom commons.log import loggerfrom commons.HandleCompare import compareTestfrom commons.ApiRequest import apiRequestbaseFileName = ‘…/…/testdata/post_user_login_data.json’testCaseData = handle_json.load_json(baseFileName)classTestDep2(): @pytest.mark.dependency(depends=[“testUserCheck”], scope=‘package’) @pytest.mark.parametrize(‘case_data’, testCaseData[‘testcase’])deftestUserLogin(self, case_data): api_response = apiRequest.api_request(config.apiurl, testCaseData, case_data)for case_validate in case_data[‘validate’]: logger.info(‘断言期望相关参数:check:{},comparator:{},expect:{}’.format(case_validate[‘check’], case_validate[‘comparator’],case_validate[‘expect’])) compareTest.compare_Assert(api_response, case_validate[‘check’], case_validate[‘comparator’],case_validate[‘expect’])if name == ‘main’: pytest.main([’-sv’])

post_user_login_data.json:用例数据文件一共有4条用例,如下所示:

5、执行test_dep_02.py文件结果如下

总结:

今天分享的是 Python + Pytest 框架中的用例依赖关系及使用,后续会持续整理分享演示的代码并将其以测试资料的文章的共享形式供大家查阅与获取。


最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

Python + Pytest 自动化框架的用例依赖实操相关推荐

  1. pytest文档73-pytest+yaml实现接口自动化框架之用例参数关联

    前言 使用 yaml 文件写测试用例的时候,如何在 yaml 文件的测试用例里面实现参数关联? 这是很多做自动化测试的小伙伴经常思考的一个问题. 接着前面的pytest+yaml 文件实现接口自动化框 ...

  2. python自动化框架pytest接口关联串联_基于python接口自动化框架搭建_pytest+jenkins+allure...

    本接口测试框架使用python语言实现,基于pytest测试框架,同时集成Jenkins和Allure 核心特性 封装requests请求,使用装饰器模式 详细的请求日志输出 环境与数据隔离,实现不同 ...

  3. Pytest自动化框架-权威教程05-Pytest fixtures:清晰 模块化 易扩展

    Fixture函数:清晰 模块化 易扩展 2.0/2.3/2.4版本新函数 text Fixture函数的目的是为测试的重复执行提供一个可靠的固定基线.Fixture函数比经典的xUnit setUp ...

  4. 如何在项目中搭建python接口自动化框架?

    文章目录 前言 一.框架目录介绍 1.common模块 读取Excel代码 读取yaml代码(支持场景关联) jsonpath断言封装代码 requests二次封装(get.post) configp ...

  5. Python pytest测试框架详解

    pytest介绍: pytest是一个非常成熟的全功能的Python测试框架: 1.简单灵活,容易上手 2.支持参数化 3.测试用例的skip和xfail,自动失败重试等处理 4.能够支持简单的单元测 ...

  6. python selenium自动化框架_一文讲透!实现一个Python+Selenium的自动化测试框架如此简单!...

    首先你得知道什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium I ...

  7. python pytest测试框架(一)

    目录 一.安装 二.第一个测试例子 三.pytest参数 1.-K EXPRESSION 3.--maxfail=num 4.-m MARKEXPR 5. -v, --verbose 6.-q, -- ...

  8. python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制

    一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这 ...

  9. python参数化字符串,【python接口自动化】- 正则用例参数化

    ​我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据. ​正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(Regular Expr ...

最新文章

  1. TypeError: __init__() got an unexpected keyword argument ‘ratio‘
  2. 描述Linux的虚拟化实现,Linux中实现虚拟化的四种常用方法
  3. python最难学的是什么_python是最难学的语言吗
  4. animateWithDuration:animations:completion:
  5. Java批量生成数据库测试数据
  6. 高速缓冲存储器的功能、结构与工作原理
  7. 谈了千百遍的缓存数据的一致性问题
  8. 执行 link.exe 时出错_在20多岁时应该做什么,以避免在30多岁和40多岁时后悔?...
  9. 3010基于二叉链表的二叉树高度的计算(附思路,WA的一种可能情况及代码)
  10. 傻瓜看完都可以简单使用Git
  11. AMESim储能电气库用户手册(二)
  12. html 播放wav,js播放wav文件(源码)
  13. 最常见的电脑数据恢复软件有几种
  14. USBKey使用openssl链接
  15. HTML5教程7-实战:调色板
  16. 关于苹果AR/VR专利新闻的一次超详细探索!
  17. perl中正则匹配中文字符
  18. BS工作原理—BS总结
  19. mysql create definer_Mysql CREATE DEFINER
  20. html5将文字生成图片

热门文章

  1. 一起来玩AZURE SQL(三)AZURE SQL 数据库迁移
  2. Springboot整合一之Springboot整合RabbitMQ
  3. 暴涨30%!马斯克突然杀入推特:当上最大股东!
  4. 超大杯来了!一加10 Ultra将在第三季度登场:或搭载OPPO 自研影像芯片
  5. 雷军再失猛将!小米12号创始员工离职 曾一起喝粥创立小米
  6. 华为Mate 50系列明年初发布:麒麟990/骁龙8 Gen1加持
  7. 摊上事了?中国卖家对亚马逊发起集体诉讼:3000多账号被封 损失惨重
  8. 培训机构破产了,“我还要还贷到2028年”
  9. 携程启动“2021混合办公试验”,梁建章:拥抱疫情之外的在家办公
  10. 网红手工耿造了辆电动汽车 罗永浩点赞 网友喊话雷军投资