首页 > 其他分享 >pytest从入门到精通笔记

pytest从入门到精通笔记

时间:2023-05-29 16:22:08浏览次数:71  
标签:入门 vs 笔记 testcase 用例 pytest test interface

一、pytest简介

pytest是一个非常成熟的全功能的Python测试框架,比unittest更灵活,容易上手。主要有以下几个特点:

1.简单灵活,容易上手
2.支持参数化
3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
4.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如:

pytest
pytest-selenium(集成selenium)
pytest-html(生成html格式的自动化测试报告)
pytest-rerunfailures(case失败后重复执行)
pytest-xdist(测试用例分步执行、多CPU分发)
pytest-ordering(用户改变测试用例的执行顺序)
allure-pytest(生成美观的测试报告)
…
5.测试用例的skip和xfail处理
6.可以很好的和jenkins集成
7.report框架----allure 也支持了pytest

说明:插件的安装,可以放到requirements.txt中,通过pip install -r requirements.txt批量安装插件。

二、Pytest测试用例命名规范

1、模块名(测试用例文件命名)必须以 test_开头或者以_test结尾。
2、测试类命名应当以Test开头,并且不能有init方法。测试类不应该有构造函数。
3、测试函数命名,测试类的方法命名应该以test_开头。
4、测试方法必须以test开头。

三、pytest用例的运行方式
1、主函数模式

1、运行所有:pytest.main()
2、指定模块:pytest.main([’-vs’,'test_login.py])
3、指定目录:pytes.main([’-vs’,’./interface_testcase’])
4、通过nodeid指定用例运行:nodeid由模块名,分割符,类名,方法名,函数名组成
pytest.main([’-vs’,’./interface_testcase/test_interface.py::test_04_func’])
pytest.main([’-vs’,’./interface_testcase/test_interface.py::Testinterface::test_04_func’])

2、命令行模式

1、运行所有:pytest
2、指定模块:pytest -vs test_login.py
3、指定目录:pytes -vs ./interface_testcase
4、通过nodeid指定用例运行:nodeid由模块名,分割符,类名,方法名,函数名组成
pytest -vs ./interface_testcase/test_interface.py::test_04_func
pytest -vs ./interface_testcase/test_interface.py::Testinterface::test_04_func

参数详解
-s: 表示输出调试信息,包括print打印的信息
-v: 显示更详细的信息
-vs:两个参数一起用
-n:支持多线程或分布式运行用例
如:pytest -vs ./testcase/test_login.py -n 2
-return NUM:失败用例重跑,num失败后重跑的次数
-x:表示只要有一个用例报错,那么测试停止
–maxfall=2 :出现两个用例失败就停止
-k:根据测试用例的步伐字符串指定测试用例
如:pytest -vs ./testcase -k “ao”

  

3、通过读取pytest.ini配置文件运行(重要)
pytest.ini这个文件它是pytest单元测试框架的核心配置文件

1、位置:一般放在项目的跟目录下
2、编码:必须是ANSI,可以使用notpad++修改编码格式
3、作用:改变pytest默认的行为
4、运行规则:不管是主函数的模式运行,命令模式运行,都会去读取这个配置文件
[pytest]
addopts = -vs --html ./report/report.html
testpaths = ./testcase
python_files = test*.py
python_classes = Test*
python_functions = test

四、pytest执行用例的顺序
unittes :ASCII的大小来决定执行的顺序
pytest:默认从上到下
改变默认的执行顺序,使用mark标记

@pytest.mark.run(order=2)

 

五、分组执行用例
应用场景: 冒烟测试、分模块执行、分接口和web执行
smoke:冒烟用例,分布在各个模块里面

步骤:
1、自定义标签

#自定义
@pytest.mark.smoke

2、在pytest.ini文件中加入配置项:

markers =
smoke:冒烟用例
usermange:用户管理模块
...

3、执行用例

pytest -m "smoke"
pytest -m "smoke or usermanage or product"

  

标签:入门,vs,笔记,testcase,用例,pytest,test,interface
From: https://www.cnblogs.com/yizhipanghu/p/17440759.html

相关文章

  • 超高效的电子读书笔记怎么做?
    周围有不少朋友和同事都很喜欢读书,但是大多数人都有这样的困惑,这就是为什么自己读了很多书,但是能记住的精华部分非常有限呢?其实想要提高阅读的质量,做好读书笔记非常重要,而随着智能手机的发展,我们现在也可以改变做读书笔记的方式了,借助手机可以做出高效、高质量的电子读书笔记。那......
  • 功能测试面试没人要了!软件自动化测试如何入门?
    对于我来说,我做的是web端的测试,做测试也有好几个年头了,每次都是使用手工测试的话,一直是做重复性的工作,既枯燥又繁琐,所以我在两年前自己使用java语言写了一系列的自动化测试脚本,利用的框架是java+testng+reportng+selenium,这个框架在项目中基本可用了。不过最近由于公司项目发生变......
  • AUTOSAR笔记:AUTOSAR系统解决方案示例(二)
    目录AUTOSAR案例示例需求总体方案设计系统设计系统AUTOSAR架构ETASAUTOSAR系统解决方案介绍AUTOSAR系统解决方案介绍AUTOSAR案例示例需求某整车厂有A型、B型两种车型,其中,A为低端车型,B为高端车型。现需为它们设计两款车灯控制器。1)A:车灯开关打开,车灯点亮;2)B:车灯开关打开,车灯根......
  • K8S学习笔记
    K8S官网文档基本概念节点|Kubernetes(p2hp.com)使用kubectl来查看节点状态和其他细节信息:kubectldescribenode<节点名称>容器状态要检查Pod中容器的状态,你可以使用kubectldescribepod<pod名称>其输出中包含Pod中每个容器的状态。pod配置文件详解创建......
  • 字符串匹配|kmp笔记
    很久之前学的了。做个笔记回忆一下:kmp朴素比对字符串所谓字符串匹配,是这样一种问题:“字符串T是否为字符串S的子串?如果是,它出现在S的哪些位置?”其中S称为主串;T称为模式串。如在字符串sabcabcabcabd中找到子串Tabcabd:先设两个指针i、j,i表示S的指针,j表示T的指针......
  • 软件架构入门
    软件架构(softwarearchitecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。O'Reilly出版过一本免费的小册子《SoftwareArchitecturePatterns》(PDF),介绍了五种最常见的软件架构,是非常好......
  • Maven学习总结(一)——Maven入门
    一、Maven的基本概念Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。1.1、项目构建项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个......
  • 深入虚拟机笔记之整数运算
    第12章整数运算     二进制补码运算:java虚拟机支持的所有整数类型:byte、short、int、long,它们都是带符号的二进制补码数。在一个二进制补码数中,最重要的位是它的符号位(最高位),0表示正整数和0,1表示负整数。   能够被二进制补码表示的数值范围为:2的总位数的次幂。其中一半是......
  • 深入虚拟机笔记之类型的生命周期
    第7章类型的生命周期        java虚拟机通过装载、连接和初始化一个java类型,使该类型可以被正在运行的java程序所使用。   装载:是把二进制形式的java类型读入java虚拟机中。   连接:是把读入的二进制形式的类型数据合并到虚拟机的运行时状态中去。连接分三个子步......
  • 深入虚拟机笔记之整数运算
    第12章整数运算     二进制补码运算:java虚拟机支持的所有整数类型:byte、short、int、long,它们都是带符号的二进制补码数。在一个二进制补码数中,最重要的位是它的符号位(最高位),0表示正整数和0,1表示负整数。   能够被二进制补码表示的数值范围为:2的总位数的次幂。其中一半是......