目录
前言
pytest 是一个成熟的全功能 Python 测试工具,可以帮助您编写更好的程序。它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。
一、pytest单元测试框架
(1)什么是单元测试
单元测试是指在软件开发过程中,针对软件的最小单位(如函数、方法等)进行正确性的检查测试。
(2)常见的单元测试框架
Java:junit和testing
python:unittest和pytest
(3)单元测试框架主要做什么?
1. 测试发现:从多个文件中找到我们的测试用例
2. 测试执行:按照一定的顺序和规则执行并生成结果
3. 测试判断:通过断言判断预期结果和实际结果的差异
4. 测试报告:统计测试进度、耗时、通过率,生成测试报告
二、 单元测试框架和自动化测试框架有什么关系
(1)什么是自动化测试
自动化测试包括一切通过工具(程序)的方式来代替或辅助手工测试的行为。其主要手段是模拟手工测试,通过组织编写自动化脚本执行测试用例,解决测试工作量大的问题,自动化测试能有效的提高测试效率。
(2)自动化测试的作用
1. 提高测试效率,降低维护成本
2. 减少人工干预,提高测试准确性,增加代码的复用性
(3)二者的关系
单元测试是自动化测试的组成部分之一
三、pytest简介
1. pytest是一个非常成熟的python单元测试框架,比unittest更加灵活,容易上手
2. pytest可以和selenium、request、qppium结合实现web自动化、接口自动化、app自动化
3. pytest可以实现测试用例的跳过及rerun失败用例重试
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开头