Python单元测试

Python单元测试

    • 1、Pytest模块
    • 2、Pytest测试用例的运行参数
    • 3、Pytest测试用例的运行方式
    • 4、Pytest测试用例的执行顺序
    • 5、Pytest基本使用
    • 6、用例前置与后置(Fixture夹具)
    • 7、参数化测试
    • 8、断言
    • 9、测试用例重跑
    • 10、跳过测试用例
    • 11、Allure
    • 12、退出Pytest模式

1、Pytest模块

Python接口测试的主要模块有:Unittest和Pytest

Unittest是Python自带的单元测试框架,Pytest是一个第三方单元测试框架,具有丰富的插件生态,兼容Unittest测试集,社区繁荣

Pytest特性有:

  • Pytest可以和Selenium、Requests、Appium结合实现Web自动化、接口自动化、App自动化

  • Pytest可以实现测试用例的跳过以及reruns失败用例重试

  • Pytest可以和Allure生成非常美观的测试报告

  • Pytest可以和Jenkins持续集成

例如:

"""
pytest-html            生成html格式的自动化测试报告
pytest-xdist           测试用例分布式执行,多CPU分发
pytest-ordering        用于改变测试用例的执行顺序
pytest-rerunfailures   用例失败后重跑
allure-pytest          用于生成美观的测试报告
pytest-selenium        集成Selenium
"""

安装:

pip install pytest

Pytest框架的用例执行入口:

pytest.main(args参数列表)

2、Pytest测试用例的运行参数

'''
-s: 显示程序中的print/logging输出
-v: 丰富信息模式,输出更详细的用例执行信息
-vs: 该两个参数可一起使用
-q: 安静模式,不输出环境信息
-x: 出现一条测试用例失败就退出测试
-n=num: 多线程或分布式运行测试用例(需要先安装pytest-xdist)
--html=./report.html: 生成xml/html格式测试报告(需要先安装pytest-html)
--reruns num:重试运行测试用例(需要先安装pytest-rerunfailures)
'''

3、Pytest测试用例的运行方式

1) 主函数模式

'''
pytest.main()              运行当前目录下所有以test开头或结尾的文件
pytest.main(['test.py'])   运行指定模块
pytest.main(['./test'])    运行指定目录
通过nodeid指定用例运行:nodeid有模块名、分隔符、类名、方法名、函数名组成
pytest.main(["test.py::Test_Class"])                 指定类名
pytest.main(["test.py::Test_Class::test_method"])    指定方法
'''

2) 终端命令行模式

'''
pytest                     运行所有,当传入参数-s、-v、-x时,相当于命令行输入pytest -s -v -x
pytest test.py             运行指定模块
pytest ./test              运行指定目录
pytest test.py::Test_Class::test_method       指定方法
'''

3) 通过pytest.ini配置文件运行

位置:一般放在项目的根目录

编码:必须是ANSI,可以使用Notepad++修改编码格式

作用:改变Pytest默认的行为

运行规则:不管是主函数的模式运行,还是命令行模式运行,都会去读取这个配置文件

例如:

'''
[pytest]
# 命令行参数,多个参数使用空格分隔
addopts = -vs
# 测试用例文件夹(目录)
testpaths = ../pytestproject
# 测试搜索的模块文件名称
python_files = test*.py
# 测试搜索的测试类名
python_classes = Test*
# 测试搜索的测试函数名
python_functions = test*
'''

4、Pytest测试用例的执行顺序

Pytest:默认从上到下执行

改变默认执行顺序:使用mark标记

@pytest.mark.run(order=3)

5、Pytest基本使用

1) 拿到开发的代码:Calculator.python

你可能感兴趣的:(#,Python,#,自动化,python,单元测试)