1.pytest基础知识(默认的测试用例的规则以及基础应用)

一、pytest单元测试框架

1)什么是单元测试框架

单元测试是指再软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。

2)单元测试框架

java:junit和testing

python:unittest和pytest

3)单元测试框架主要做什么?

1.测试发现:从多个文件里面去找到我们测试用例

2.测试执行:按照一定的顺序和规则去执行。并生成脚本

3.测试判断:通过断言判断预期结果和实际结果的差异

4.测试报告:统计测试进行,耗时,通过率,生成测试报告

二、单元测试框架和自动化测试框架有什么关系?

1)什么是自动化测试框架

2)作用

1.提高测试效率,降低维护成本

2.减少人工干预,提高测试的准确性,增加代码的重用性

3.核心思想是让不懂代码的人也能够通过这个框架去实现自动化测试

三、pytest简介

1.pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手(使用pycharm工具)

2.pytest可以和selenium,request,appium结合实现web自动化,接口自动化,app自动化

3.pytest可以实现测试用例的跳过以及reruns失败用例重试

4.pytest可以和allure生成非常美观的测试报告

5.pytest可以和Jenkins持续集成

6.pytest有很多非常强大的插件,并且这些插件能够实现很多实用的操作

pytest-html(生成html格式的自动化测试报告)

pytest-xdist(测试用例分布式执行,多CPU分发)

pytest-ordering (用于改变测试用例的执行顺序)

pytest-rerunfailures (用例失败后重跑)

allure -pytest(用于生成美观的测试报告)

pytest --version (验证安装是否成功)

四、使用pytest,默认的测试用例的规则以及基础应用

1.模块名必须以test_开头,或者_test结尾

2.测试类必须以Test开头,并且不能有init方法

3.测试方法必须以test开头

五、pytest测试用例的运行方式

1.主函数模式

1)运行所有:pytest.main()

2)指定模式:pytest.main(['-vs','test_login.py'])

3)指定目录:pytest.main(['-vs','./interface_testcase'])

4)通过nodeid指定用例运行:nodeid由模块名,分隔符 ,类名,方法名,函数名组成。

pytest.main(['-vs','./interface_testcase/test_interface.py::test_04_func'])

//运行test_04_func函数

pytest.main(['-vs','./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao'])

//运行TestInterface类中的est_03_zhiliao方法

2.命令行模式

1)运行所有:pytest

2)指定模式:pytest -vs test_login.py

3)指定目录:pytest -vs ./interface_testcase

4)通过nodeid指定用例运行:nodeid由模块名,分隔符 ,类名,方法名,函数名组成。

pytest -vs ./interface_testcase/test_interface.py::test_04_func

//运行test_04_func函数

pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_03_zhiliao

//运行TestInterface类中的est_03_zhiliao方法

参数详解:

-s:表示输出调试信息,包括print打印的信息

-v:显示更详细的信息

-vs:两个参数可以一起用(还可以再命令行里使用)

-n:支持多线程或者分布式运行

--reruns NUM:失败用例重跑

-x:只要用一个用例报错,测试就停止

--maxfail=2:出现两个用例报错,测试就停止

-k:根据测试用例的部分字符串指定测试用例

pytest -vs ./testcase -k "ao" //只允许包含ao的用例

--html ./report/report.html


3.通过读取pytest.ini配置文件运行

pytest.ini这个文件它是pytest单元测试框架的核心配置文件

1.位置:一般放在项目的根目录

2.编码:必须是ANSI,可以使用notpad++改变

3.作用:改变pytest默认的行为

4.运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置。

addopts = -vs #命令行的参数,用空格分隔

testpaths = ./testcase #测试文件路径

python_files = test_*py #模块名的规则

python_classes = Test* #类名的规则

python_functions = test #方法名的规则

六、pytesr执行测试用例的顺序是怎样的呢?

pytest:默认从上到下

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

@pytest.mark.run(order=3)

七、如何分组执行(冒烟,分模块执行,分接口和web执行)

smoke:冒烟用例,分布在各个模块里面

@pytet.mark.smoke

配置文件中:

markers=

smoke:冒烟用例

usermanage:用户管理模块

productmanage:商品管理模块

八、pytest跳过测试用例

1.无条件跳过

@pytest.mark.skip(reason="微微太漂亮")

2.有条件跳过

@pytest.mak.skipif(age>=18,reason="已成年")

九、生成报告

相关推荐
美团测试工程师1 小时前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
天天要nx1 小时前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
程序猿000001号3 小时前
探索Python的pytest库:简化单元测试的艺术
python·单元测试·pytest
测试者家园8 小时前
ChatGPT生成接口文档的方法与实践
软件测试·chatgpt·测试用例·接口测试·接口文档·ai赋能·用chatgpt做软件测试
Heaven64510 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
测试老哥14 小时前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
测试者家园21 小时前
ChatGPT接口测试用例生成的流程
软件测试·chatgpt·测试用例·接口测试·测试图书·质量效能·用chatgpt做测试
互联网杂货铺1 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
测试者家园1 天前
ChatGPT与接口测试工具的协作
软件测试·测试工具·chatgpt·接口测试·ai赋能·用chatgpt做软件测试·测试图书
爱学测试的雨果1 天前
分布式测试插件 pytest-xdist 使用详解
分布式·pytest