zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Pytest测试框架学习(干货)

2023-09-14 09:11:03 时间


pytest介绍

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:

1.简单灵活,容易上手

2.支持参数化

3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)

4.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等

5.测试用例的skip和xfail处理

6.可以很好的和jenkins集成

7.report框架----allure 也支持了pytest

Pytest命名规范:

1、测试用例文件命名应该以 test_开头或者以_test结尾。

2、测试函数命名,测试类的方法命名应该以test_开头。

3、测试类命名应当以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执行用例的顺序:

unittes :ASCII的大小来决定执行的顺序

pytest:默认从上到下

改变默认的执行顺序,使用mark标记

@pytest.mark.run(order=2)


最后:软件测试资料分享一波!

技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。

愿你我相遇,皆有所获! 如果对软件测试、接口测试、自动化测试、面试经验交流。关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!

推荐好文:

自动化测试到底要学什么?

为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事

自动化测试和手动测试哪个更高级?

新手必看:怎么写一个合格的测试用例?

python登录接口测试问题记录与解决 ( 干 货 )