1、pytest介绍
- pytest是一个非常成熟的全功能的Python测试框架
- 简单灵活,容易上手
- 支持参数化
- 测试用例的skip和xfail,自动失败重试等处理
- 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/ appnium等自动化测试、接口自动化测试(pytest+requests)
- pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest allure(完美html测试报告生成),pytest-xdist(多CPU分发)等
- 可以很好的和jenkins集成
- pytest能够支持简单的单元测试和复杂的功能测试
- pytest可以结合Requests实现接口测试;结合Selenium、Appium 实现自动化功能测试
- 使用pytest结合Allure集成到Jenkins中可以实现持续集成
- pytest支持315种以上的插件
2、Pytest官方文档
文档:https://docs.pytest.org/en/latest/contents.html#toc
3、为什么要选择Pytest
- 丰富的第三方插件
- Allure报告
- 多线程
- 顺序控制
- 简单灵活
- 兼容Unittest
- 定制化插件开发
3、Pytest环境安装
PS:前提:本地已配置完成Python环境
第一种方式:在命令行输入
pip install pytest
第二种方式 :PyCharm直接安装
4、安装Pytest第三方库(用不到的库可以不安装)
Pytest第三方库学习文档::https://pypi.org/search/?q=pytest
# pytest安装与依赖
pip install pytest
#升级Pytest
pip install -U pytest
#界面美化
pip install pytest-sugar
# 重新运行出错的测试用例
pip install pytest-rerunfailures
#进行多任务、同时并发执行测试用例
pip install pytest-xdist
# 对测试用例进行断言
pip install pytest-assume
# 会生成html测试报告
pip install pytest-html
# 控制用例执行顺序
pip install pytest-ordering
# 用例随机执行
pip install pytest-random-order
# 查看所有第三方库
pip list
#查看Pytest帮助文档
pytest -h
5、Pytest运行方式
Pytest运行规则,对文件名、类名、函数名命名有一定的规范
- 文件以test_或者_test开头
- 类名Test开头
- 测试用例以test_
6、Pytest实战
#test_sample.py
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
执行结果如下:
$ pytest
============================= test session starts =============================
collected 1 items
test_sample.py F
================================== FAILURES ===================================
_________________________________ test_answer _________________________________
def test_answer():
> assert inc(3) == 5
E assert 4 == 5
E + where 4 = inc(3)
test_sample.py:5: AssertionError
========================== 1 failed in 0.04 seconds ===========================
以上是我学习的笔记,简单分享一下,希望对大家有帮助~~~