单元测试框架
java:junit和testing python:unittest和pytest
单元框架主要做了什么
- 测试发现:从多个文件找到我们的测试用例
- 测试执行:按照一定的顺序和规则去执行。并生成结果
- 测试判断:通过断言判断预期结果和实际结果的差异
- 测试报告:统计测试进度,耗时,通过率,生成测试报告。
Pytest单元测试框架和自动化测试框架的关系
单元测试框架:只是自动化测试框架中的组成部分之一。 pom设计模式… 数据驱动… 关键字驱动… 日志监控… selenium,requests二次封装… 断言… 报告邮件… 更多…
Pytest简介
- pytest是一个非常成熟的单元测试框架,比unittest更灵活,更容易上手。
- pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
- pytest可以实现测试用例的跳过以及reruns失败用例重试
- pytest可以和allure生成非常美观的测试报告
- pytest可以和Jenkins持续集成
- pytest有非常强大的插件,并且这些插件可以实现很多使用的操作
安装插件可通过将依赖包名加入requirements.txt,通过pip install -r requirements.txt 安装
使用Pytest,默认的测试用例规则以及基础应用
- python文件必须以
test_ 开头或者_test 结尾 - 测试类必须以Test开头,并且不能用
__init__ 方法 - 测试方法必须以test开头
Pytest测试用例的运行方式
-
主函数模式 (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_func']) -
命令行模式 (1)运行所有:pytest (2)指定模块:pytest -vs test_login.py (3)指定目录:pytest -vs './interface_testcase' -
通过读取pytest.ini 配置文件运行
参数详解: -s:表示输出调优信息,包括print打印的信息 -v:显示更详细的信息 -vs:这两个参数一起用
|