一、pytest测试用例的3种运行方式
1.1 : 主函数模式
1)运行所有:pytest.main()
if __name__ == '__main__':
pytest.main()
2)运行指定模块
#运行指定模块
pytest.main(['-vs','test_0617.py'])
3)运行指定目录
if __name__ == '__main__':
#运行指定目录
pytest.main(['-vs','./testcase'])
4)通过nodeid指定测试用例执行:nodeid由模块名,分隔符,类名,方法名,函数名组成。
if __name__ == '__main__':
# #运行指定函数
# pytest.main(['-vs','./testcase/test_0616.py::test_04_func'])
#运行指定方法(用例)--需要加类名
pytest.main(['-vs','./testcase/test_0616.py::TestLogin::test_02'])
1.2:命令行模式
1)运行所有:pytest
2)运行指定模块:pytest -vs test_0616.py
3)运行指定目录:pytest -vs ./api_testcase
4)通过nodeID运行指定的测试函数:
pytest -vs ./testcase/test_0616.py::test_04_func
pytest -vs ./testcase/test_0616.py::TestLogin::test_04_func
1.3:通过配置文件pytest.ini来改变以及执行用例
如果配置了pytest.ini,则不管是命令行模式还是主函数模式,都会读取pytest.ini配置文件来执行;
-vs等具体参数详解,见以下链接:
【pytest】pytest之全局配置文件pytest.ini,及命令执行参数详解_福多多的福的博客-CSDN博客_pytest 参数
二、pytest,默认的测试用例的规则以及基础应用
- 模块名(.py文件)必须以test_开头或者_test结尾
- 测试类必须以Test_开头,并且不能有init方法
- 测试方法必须以test_开头
三、pytest跳过测试用例
- 无条件跳过:skip
@pytest.mark.skip(reason="无理由跳过")
- 有条件跳过,满足特定条件后跳过该用例:skipif
@pytest.mark.skipif(age>60,reason="年龄大于60岁者跳过")
四、单元测试框架简介
(1)什么是单元测试框架?
单元测试是指在软件开发当中,针对软件的最小单位(即:函数、方法)进行正确性的检查测试。
(2)单元测试框架有哪些?
java:junit和testng(主流)
python:unittest和pytest(主流)
(3)单元测试框架主要做什么?
- 测试发现:按照规则,从多个文件里面去发现测试用例并加载测试用例
- 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果
- 测试判断:通过断言判断预期结果和实际结果的差异
- 测试报告:统计测试进度、耗时、通过率,生成测试报告
五、单元测试框架和自动化测试框架有什么关系?
(1)什么是自动化测试框架:pytest只是其中一部分
(2)作用
- 提高测试效率,降低维护成本
- 减少人工干预,提高测试的准确性,增加代码的重用性
- 核心思想是让不懂代码的人也能够通过这个框架去实现自动化测试
(3)pytest单元测试框架和自动化测试框架的关系
- 单元测试框架:只是自动化测试框架中的组成部分之一
- pom设计模式:只是自动化测试框架中的组成部分之一
- 数据驱动
- 关键字驱动
- 全局配置文件的封装
- 日志监控
- selenium,requests二次封装
- 断言
- 报告邮件
- 更多。。。
六、pytest简介
- pytest是一个非常成熟的python的单元测试框架,比unittest更灵活,更易上手
- pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
- pytest可以实现测试用例的跳过以及reruns失败用例重试
- pytest可以和allure生成非常美观的测试报告
- pytest可以和Jenkins持续集成
- pytest有很多非常强大的插件,并且这些插件能够实现很多的使用操作:
- pytest
- pytest-html (生成html格式的自动化测试报告)
- pytest-xdist (测试用例的分布式执行,多线程,多CPU分发)
- pytest-ordering (用于改变测试用例的执行顺序)
- pytest-rerunfailures (用例失败后重跑)
- allure-pytest (用于生成美观的测试报告)
- pytest-base-url (配置基础路径,sit/uat/prod等环境配置)
- allure-pytest (生成allure自动化测试报告)
安装插件的方法:
方法一:pip install -U pytest
方法二:pycharm-Settings-Project Interpreter
方法三:通过pip install -r requirements.txt(一次性安装)
- 新建file--requirements.txt,将需安装的插件放到txt文档中(去掉中文注释),保存
- 在terminal终端,输入命令:pip install -r requirements.txt