pytest01
一,pytest单元测试框架
1,什么是单元测试框架:单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试.
2,单元测试框架
java:junit和testing
python:unitest和pytest
3,单元测试框架主要做什么?
1,测试发现:从多个文件里面去找到我们测试用例
2,测试执行:按照一定的顺序和规则去执行,并生成结果
3,测试判断:通过断言判断预期结果和实际结果的差异
4,测试报告:统计测试进度,耗时,通过率,生成测试报告
二,单元测试框架和自动化测试框架有什么关系?
1,什么是自动化测试框架
2,作用
1,提高测试效率,降低维护成本
2,减少人工干预,提高测试的准确性,增加代码的重用性
3,核心思想是让不懂代码的人也可能够通过这个框架实现自动化测试
3,pytest单元测试框架和自动化测试框架的关系
单元测试框架;只是自动化测试框架中的组成部分之一
pom设计模式:只是自动化测试框架中的组成部分之一
数据驱动
关键字驱动
全局配置文件的封装
日志监控
selenium,requests二次封装
断言
报告邮件
更多>>>>>
三,pytest简介
1,pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手
2,pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
3,pytest可以实现测试用例的跳过以及reruns失败用例重试
4,pytest可以和allure生成非常美观的测试报告
5,pytest可以和Jenkins持续集成
6,pytest有很多非常强大的插件,并且这些插件能够实现很多的实用的操作
pytest
pytest-html (生成html格式的自动化测试报告)
pytest-xdist (测试用例分布式执行,多cpu分发)
pytest-ordering (用于改变测试用例的执行顺序)
pytest-rerunfailures (用例失败后重跑)
allure-pytest (用于生成美观的测试报告)
放到requirements.txt中,通过pip install -r requirements.txt 安装上面的插件
查看是否安装成功;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'])
pytest.main(['-vs', './interface_testcase/test_interface.py::Testinterface::test_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
pytest -vs ./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao
参数详解;
-s:表示输出调试信息,包括print打印信息
-v:显示更详细的信息
-vs;这连个参数一起用
-n;之处多线程或者分布式运行测试用例---pytest -vs test_login.py -n 2
--reruns num:失败用例重跑
-x;表示只要一个用例报错,那么测试停止
--maxfail=2 出现两个用例失败停止
-k;根据测试用例的部分字符串指定测试用例---如;pytest -vs ./testcase -k "ao"
--html ./report/report.html;生成html的测试报告,到指定文件
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 #方法名的规则
markers =
smoke:冒烟用例
usermanage:用户管理模块
六,pytest执行测试用例的顺序是怎样的呢?
unittest 是按照ascll的大小来决定的执行的顺序
pytest默认从上到下
改变默认的执行顺序:使用mark标记--@pytest.mark.run(order=3)
七,如何分组执行(冒烟,分模块执行,分接口和web执行)
要在测试用例前面使用mark标记--@pytest.mark.somke
下面是ini文件中加配置
somke:
pytest -m "somke"
pytest -m "smoke or usermanage"
八,pytest跳过测试用例
1,无条件跳过
@pytest.mark.skip(reason="这里是跳过的理由")
2,有条件跳过
@pytest.mark.skip(age>=18,reason="这里是跳过的理由")

浙公网安备 33010602011771号