一文搞定接口自动化测试框架搭建orPytest_知识点总结

news/2025/2/23 3:29:05/

pytest编写的规则:
1、测试文件以test_开头(以_test结尾也可以)
2、测试类以Test开头,并且不能带有__init__方法
3、测试函数以test_开头
4、断言必须使用assert

pytest.main(['-s','-v']) :用来执行测试用例
-s 打印print语句到控制台
-v 显示测试方法执行的详情
-m 标签名:测试分组的执行

fixture方法详解:类似unittest中的setup和teardown功能。
@pytest.fixtrue(scope="function",params=None,autouse=False,ids=None,name=None)
scope: 作用范围,设置范围后,会根据设置的范围去触发执行。
可选范围如下:
function:每个方法(函数)都会执行一次。(默认)
class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行
module:一个.py文件执行一次。一个.py文件可能包含多个类和方法
package/session:多个文件调用一次,可以跨.py文件

params:传入参数,接收一个列表,列表中每个数据都作为用例的输入
autouse:在一个session内所有的test都会自动调用当前的fixture,默认为false
ids:测试字符串id的列表,每个测试字符串id对应于params,默认为参数值
name:fixture的名称,默认为装饰函数的名称

conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture
使用conftest.py规则要求:
1、该文件所在目录必须存在__init__.py文件
2、该文件不能被其他文件导入,会自动被调用
3、所有同目录测试文件运行前都会执行该文件
4、该文件名字是固定的,不可以做任何修改

mark用法: 测试用例分组执行
设置步骤如下:
1、注册标签名,通过在项目根目录下新建pytest.ini配置文件注册;
[pytest]
markers =
smoke_test:冒烟测试
system_test:系统测试
login_test:登录模块
2、在测试用例的前面加上:
@pytest.mark.smoke_test
3、运行时,根据用例标签过滤(-m 标签名)
pytest.main(['-s','-v','-m smoke_test']) # 只执行smoke_test分组下的用例
pytest.main(['-s','-v','-m system_test or login_module']) # 两个标签的用例都执行
pytest.main(['-s','-v','-m system_test and login_module']) # 包含两个标签的用例才执行
pytest.main(['-s','-v','-m not login_module']) # 除了该标签之外,其他用例都执行

pytest中测试用例的执行顺序
pytest测试用例的执行顺序按照编写顺序执行
利用pytest-ordering插件,通过装饰器@pytest.mark.run(order=1)来进行控制,数字越小,越前执行

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

skip(): 测试用例跳过的设置
使用@pytest.mark.skip(self,reason=None):在要跳过的测试用例前加入该标签,并可以选择传入一个非必须参数reason表示原因
使用@pytest.mark.skipif(self,condition,reason=None):在要跳过的测试用例前加入该标签,根据condition条件判断是否进行跳过
使用skip()方法:在测试方法中调用pytest.skip()方法来实现跳过
使用pytestmark=pytest.mark.skip()方法:可以跳过整个模块,注意pytestmark为关键字,必须用此名称

parametrize:做参数化
使用@pytest.mark.parametrize()做参数化
1、传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化
2、传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化

 总结:

  从软件测试到测试开发全套视频+文档+项目+简历模板+面试宝典资料包

需要的小伙伴可以点击小编主页

,验证消息填写000即可获取喔

 一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九, 银行业务测试

十,大数据测试和业务分析

 

 十一:项目实战


http://www.ppmy.cn/news/1218629.html

相关文章

qsort对字符型指针数组排序

之前一直用qsort对整型数组进行排序,qsort同样可以对字符数组排序。但是这次对字符串指针数组排序,属实是绕了一会,记录一下。 文章目录 前言 一、字符型指针数组排序 1、qsort头文件 2、qsort 写法 3、对字符型指针数组进行排序 总结 前言 …

如何解决 Node.js 20 升级中未预期的请求问题

在 Tubi,我们使用 Node.js 为 Web/OTT 应用进行服务端渲染及代理请求。近来,为了从新版本的性能改进和新功能中受益,我们将 Node.js 从 14.x 版本升级到了 20.x。 升级像 Node.js 这样的基础设施绝非易事,尤其是有着许多第三方依…

Unity中使用VS常用技巧

文章目录 1、Unity预览代码中文显示乱码解决方案2、VS中格式化代码快捷键 1、Unity预览代码中文显示乱码解决方案 ①打开VS,在 扩展 中找到 管理扩展 打开 ②在 管理扩展面板 联机 中搜索 Force UTF-8(No BOM) ,点击下载即可 ③重启VS 如果以前编写的脚…

metinfo 6.0.0 任意文件读取漏洞复现

metinfo 6.0.0 任意文件读取漏洞复现 漏洞环境 环境为mrtinfo 6.0.0 漏洞存在的位置 通过代码审计发现在源代码的/app/system/include/module/old_thumb.class.php这个位置有着任意读取文件漏洞 漏洞点:http://127.0.0.1/metinfo_6.0.0//include/thumb.php 漏洞复现 访…

rocketmq一主多从搭建

1.四台服务器192.168.4.202(master),192.168.4.203,192.168.4.204,192.168.4.205 分别在四台机子上跑namesrv,无需修改参数及启动命令,官方默认启动即可。 2. broker 以下内容复制到4台机子的…

阿里云国际站:密钥管理服务

文章目录 一、密钥管理服务的概念 二、密钥管理服务的功能 三、密钥管理服务的优势 一、密钥管理服务的概念 密钥管理服务KMS(Key Management Service)是您的一站式密钥管理和数据加密服务平台、一站式凭据安全管理平台,提供简单、可靠、…

无人零售:创新优势与广阔前景

无人零售:创新优势与广阔前景 无人零售在创新方面具有优势。相比发展较为成熟的欧洲和日本的自动贩卖机市场,中国的无人零售市场人均占有量较少,这表明该市场具有广阔的前景和巨大的市场潜力。 此外,无人零售涉及到许多相关行业&…

Python机器学习、深度学习提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…