首页 > 其他分享 >Pytest_知识点总结

Pytest_知识点总结

时间:2023-10-16 22:48:09浏览次数:26  
标签:总结 知识点 pytest mark Pytest 参数 test 测试用例 执行

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)来进行控制,数字越小,越前执行


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])]) 进行参数化

 

标签:总结,知识点,pytest,mark,Pytest,参数,test,测试用例,执行
From: https://www.cnblogs.com/YouJeffrey/p/17768567.html

相关文章

  • Unittest单元测试框架-知识点总结
    unittest单元测试框架1.导入unittest包========================================================================2.创建类的时候要继承与unittest.TestCase类2.1,setUp方法是在类中测试执行前的初始化工作2.2,tearDown方法是在类中测试执行后的清除工作2.3,测试用例函数以test开头......
  • 今日总结
    今天尝试着不看任何视频,自己手把手构建elementplus,虽然成功展示出表格来了,但是巨痛苦,因为Vue3的写法跟之前完全不一样,因此组件的代码也跟之前不一样。 ......
  • 每日总结20231016
    代码时间(包括上课)3h代码量(行):20行博客数量(篇):1篇相关事项:1、今天是周一,一周里面最容易犯困的一天,但是这次没有那么困,这次还算是学了不少的,今天上的是软件设计模式和人机交互技术。2、软件设计模式这次讲了三种模式,中介者模式、备忘录模式、观察者模式,人机交互技术讲的是盒子模......
  • 每日总结1016
    代码时间(包括上课)3h代码量(行):20行博客数量(篇):1篇相关事项:1、今天是周一,一周里面最容易犯困的一天,但是这次没有那么困,这次还算是学了不少的,今天上的是软件设计模式和人机交互技术。2、软件设计模式这次讲了三种模式,中介者模式、备忘录模式、观察者模式,人机交互技术讲的是盒子模......
  • 10.16每日总结
    今天完成了软件构造的作业,代码如下:packagecalculation;importjava.util.Random;publicclassEquation{privateinttheFirstNumber;privateinttheSecondNumber;privateStringsymbol;publicEquation(intmaxNumber,booleanallowMulti......
  • 每日总结
    今天学习了算法的基础。(1)线性结构每个元素前、后最多都只能有一个节点,如:线性表、栈、队列、数组、串(2)非线性结构如:二维数组、多维数组、树、图等存储结构顺序存储  链接存储队列和栈:队列先进先出,栈先进后出。树:满二叉树,完全二叉树,非完全二叉树。以及二叉树......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第四周学习总结
    班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:计算机科学概论第4、5章并完成云班课测试《C语言程序设计》第3章并完成云班课测试教材学习内容总结:了解了门和电路、计算部件的基础知识教材学习中的问题和解决过程:......
  • 10月9日总结
    有100亿个url被加入了黑名单,现在提供一个url要去判断是否属于黑名单。也就是一个很简单的一个东西是否属于一个集合的问题。一般来说用set就能解决这种问题,但是由于url数目太多,内存中无法开辟一个这么大的空间去存放所有url,这个时候就需要我们去使用一种结构,去减少状态信息存储所......
  • 10月12日总结
    在前面我们基本把应用框架的基础设施搭建完成。接下来我们就得着手处理一下种子数据的问题。在一个基础框架里面,种子数据很重要,比如一些基础数据,初始用户等等,这些都需要初始化,否则程序启动却无法使用就很尴尬了。IDataSeeder#首先定义一个种子数据接口usingWheel.DependencyI......
  • 10月11日总结
    Chiplet封装是什么介绍Chiplet前,先说下SOC。Chiplet和SOC是两个相互对立的概念,刚好可以用来互为参照。SOC(SystemOnChip,系统级芯片)——是指将多个负责不同类型计算任务的单元,通过光刻的形式制作到同一片晶圆上。目前主流智能手机的SOC芯片上,基本都集成了CPU、GPU、DSP、IS......