pytest学习记录

简介: pytest学习记录

一:pytest介绍

1.非常成熟的单元测试框架,比unittest更加灵活,容易上手
2.pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
3.pytest可以实现测试用例的跳过以及rerun失败用例重试
4.pytest可以和allure生成漂亮的报告
5.pytest可以和jenkins持续集成
6.pytest有强大的插件,功能很实用
pytest
pytest-html:生成html格式的自动化报告
pytest-xdist:测试用例分布式执行,多cpu分发
pytest-ordering:用于改变测试用例执行顺序
pytest-rerunfailures:用例失败重跑
allure-pytest:生成测试报告

二:pytest默认用例的规则以及基础应用

1.模块名必须以test_或者_test结尾开头
2.测试类必须以Test开头,并且不能带有init方法
3.测试用例必须以test_开头

三:pytest测试用例的运行方式

main函数执行方法:
1.运行所有pytest.main()
2.指定模块:pytest.main(['-vs', 'test_login.py'])
3.指定 目录:pytest.main(['-vs', './testcase'])
4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成pytest.main(['-vs', './testcase/test_login.py::test_001'])
命令行模式:
1.运行所有:pytest
2.指定模块:pytest -vs test_login.py
3.指定目录:pytest -vs ./testcase
4.指定目录:pytest -vs ./testcase/test_login.py::test_001
通过读取pytest.ini配置文件运行
[pytest]
addopts=-vs       命令行参数,用空格分开
testpaths=./testcase     用例路径
python_files=test*.py      模块名的规则
python_classes=Test*        类名的规则
python_functions=test_*      方法名的规则
addopts = -vs --html ./report/report.html
1.Pytest.ini这个文件是pytest的单元测试框架核心配置文件
2.编码:必须是ANSI,可以使用notepad++来更改编码格式(编码---转为ANSI)
3.作用:改变pytest的默认行为
4.不管是主函数模式运行还是命令行模式运行,都会读取这个文件

四:常用参数介绍

执行的参数:
-vs  
-v:输出相信信息
pytest -v
-s:输出调试信息
-n:多线程运行(pytest-xdist)
pytest -vs -n=2
return num 失败重跑  安装插件:pytest-rerunfailures
raise Exception('ggg')   抛出异常
try except    解决异常
-x  出现一个用例失败,则停止测试  
如:pytest -vs -x
--maxfail   出现几个失败才终止
--html           生成htnl测试报告    安装插件:pytest-html
pytest -vs --html ./reports/result.html
-k      运行测试用例中包含某个字符穿的测试用例  
pytest -vs -k "002"

五:pytest用例执行顺序

Unittest:是通过ascII的大小来执行
Pytest:默认从上往下
改变默认的执行顺序:使用mark标记
@pytest.mark.run(order=2)

六:分组执行(冒烟、分模块、web和接口的)

Pytest.ini
[pytest]
addopts = -vs
testpaths = ./testcase
python_files = test*.py
python_classes = Test*
python_functions = test_*
markers =
    smoke:冒烟用例
    usermanage:用户管理
Smoke: 冒烟用例,分布在各个模块里头
Pytest -vs -m "smoke"
Pytest -vs -m "smoke or usermanage"
相关文章
|
21天前
|
测试技术 持续交付 Python
Python测试架构pytest
【4月更文挑战第19天】pytest 是一个强大且灵活的 Python 测试框架,它可以帮助你编写高效且可维护的测试。通过遵循上述基本架构指南,你可以开始使用 pytest 来提高你的 Python 项目的质量和可靠性。
11 2
|
21天前
|
测试技术 API Python
Python自动化测试:unittest与pytest的实战技巧
Python自动化测试:unittest与pytest的实战技巧
|
21天前
|
测试技术 开发者
软件测试/测试开发/全日制|Pytest参数化神器,pytest.mark.parametrize()使用
软件测试/测试开发/全日制|Pytest参数化神器,pytest.mark.parametrize()使用
32 0
|
21天前
|
jenkins 测试技术 持续交付
pytest教程-1-环境搭建
Pytest是Python的一种单元测试框架,与Python自带的unittest测试框架类似,但是比 unittest框架使用起来更简洁,效率更高。
|
21天前
|
jenkins 测试技术 程序员
软件测试/测试开发|什么是pytest,我们为什么选择pytest?
软件测试/测试开发|什么是pytest,我们为什么选择pytest?
37 0
|
10月前
|
Web App开发 测试技术 开发者
【Pyhton入门系列】第十三篇:Python自动化测试和单元测试
自动化测试是软件开发中不可或缺的一部分,它可以提高软件质量、减少人工测试工作量,并确保代码的稳定性。Python作为一种简洁而强大的编程语言,提供了丰富的测试框架和工具,使得自动化测试和单元测试变得更加容易。
93 2
|
11月前
|
测试技术 Python
01-pytest-安装及入门
01-pytest-安装及入门
|
12月前
|
测试技术 数据库 Python
Python单测框架Pytest教程
The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries. pytest介绍和教程。 pytest 框架使编写小型可读测试变得容易,并且可以扩展以支持应用程序和库的复杂功能测试。
139 0
|
自然语言处理 Java 测试技术
pytest学习和使用21-测试报告插件allure-pytest如何使用?
pytest学习和使用21-测试报告插件allure-pytest如何使用?
129 0
pytest学习和使用21-测试报告插件allure-pytest如何使用?