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="已成年")

九、生成报告

相关推荐
贾伟康6 小时前
【化学实验室|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明
软件测试·移动开发·harmonyos·arkts·arkui
贾伟康9 小时前
【化学实验室|19】HarmonyOS ArkTS 回归测试实战:覆盖启动、空数据、异常输入和重复点击
软件测试·移动开发·harmonyos·arkts·arkui
成渝丶10 小时前
自动发布如何避免重复提交:三个检查点
软件测试·自动化
泽众云测试2 天前
泽众TestAgent-面向测试的AI智能体
软件测试·人工智能·ai测试
凛铄linshuo5 天前
分析业务流程什么时候适合断言?
python·pytest
凛铄linshuo6 天前
自动化测试:pytest第一个实例学习
学习·pytest
zuozewei6 天前
第02篇-k6-脚本结构与生命周期
软件测试·jmeter·性能测试·k6·ai 编程
软件交付观察室7 天前
数据大屏总数与明细为什么对不上?2026项目开发排查指南
软件测试·数据库·sql·sqlite·数据可视化
测试开发技术7 天前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
软件测试·人工智能·测试工具·接口测试·agent·抓包
泽众云测试7 天前
国产化替代国外性能测试工具推荐:泽众PerformanceRunner
软件测试·测试工具·性能测试