python接口自动化11-pytest入门,python接口自动化100例,前言pytest是一


前言

pytest是一个非常成熟的全功能的Python测试框架,适合从简单的单元到复杂的功能测试,主要特点有以下几点:

简单灵活,容易上手;支持参数化;能够支持简单的单元测试;标记测试功能与属性复杂的功能测试,比如可以做selenium等自动化测试、接口自动化测试(pytest+requests);pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)等;Skip和xfail:处理不成功的测试用例;可以很好的和jenkins集成;通过xdist插件分发测试到多个CPU

一、简介

1、环境搭建推荐版本匹配:pip install pytest==3.6.3

Python3.6.x + pytest 3.6.3Python3.7.x + pytest 4.0.2

2、查看版本:pytest --version

C:\Users\Administrator>pytest --versionThis is pytest version 3、6、3, imported from d:\path_python\lib\site-packages\pytest、py

3、pytest 命名规则:

文件名以test_*、py 或 *_test、py类已 Test* 开头函数/方法以 test_* 开头

4、pytest 直接写用例,写完 cmd 运行,不需要导入其他模块。

G:\python_study\study\pytest_demo\study>pytest -s test_demo1.py================================================= test session starts =================================================platform win32 -- Python 3.6.5, pytest-3.6.3, py-1.8.0, pluggy-0.6.0rootdir: G:\python_study\study\pytest_demo\study, inifile:collected 2 items
test_demo1.py我是用例:a.我是用例:b.
============================================== 2 passed in 0.02 seconds ===============================================

技术图片

二、pytest 命令行参数介绍

1、运行规则:pytest py文件路径

C:\Users\Administrator>pytest G:\python_study\study\pytest_demo\study\test_demo.py============================= test session starts =============================platform win32 -- Python 3.6.5, pytest-3.6.3, py-1.8.0, pluggy-0.6.0rootdir: C:\Users\Administrator, inifile:collected 4 itemstest_demo.py ....                                                        [100%]========================== 4 passed in 0.03 seconds ===========================

2、显示打印信息(不然不会看到打印内容):pytest -s xxx

G:\python_study\study\pytest_demo\study>pytest -s test_demo1.py================================================= test session starts =================================================platform win32 -- Python 3.6.5, pytest-3.6.3, py-1.8.0, pluggy-0.6.0rootdir: G:\python_study\study\pytest_demo\study, inifile:collected 2 itemstest_demo1.py我是用例:a.我是用例:b.============================================== 2 passed in 0.02 seconds ===============================================

3、显示详细信息:pytest -v xxx

G:\python_study\study\pytest_demo\study>pytest test_demo1.py -v============================= test session starts =============================platform win32 -- Python 3.6.5, pytest-3.6.3, py-1.8.0, pluggy-0.6.0 -- d:\path_python\python.execachedir: .pytest_cacherootdir: G:\python_study\study\pytest_demo\study, inifile:collected 2 itemstest_demo1.py::Test_api::test_a PASSED                                   [ 50%]test_demo1.py::Test_api::test_b PASSED                                   [100%]========================== 2 passed in 0.02 seconds ===========================

4、简洁显示信息:pytest -q xxx

G:\python_study\study\pytest_demo\study>pytest test_demo1.py -q..                                                                       [100%]2 passed in 0.02 seconds

5、运行指定用例:pytest -k case_name (case_name可类可函数,模糊匹配关键字),如下匹配demo

G:\python_study\study\pytest_demo\study>pytest -k demo -v============================= test session starts =============================platform win32 -- Python 3.6.5, pytest-3.6.3, py-1.8.0, pluggy-0.6.0 -- d:\path_python\python.execachedir: .pytest_cacherootdir: G:\python_study\study\pytest_demo\study, inifile:collected 11 items / 5 deselectedtest_demo.py::test_ab PASSED                                             [ 16%]test_demo.py::test_aba PASSED                                            [ 33%]test_demo.py::Test_api::test_aa PASSED                                   [ 50%]test_demo.py::Test_api::test_b PASSED                                    [ 66%]test_demo1.py::Test_api::test_a PASSED                                   [ 83%]test_demo1.py::Test_api::test_b PASSED                                   [100%]=================== 6 passed, 5 deselected in 0.06 seconds ====================

6、命令行参数不分顺序,还有其他命令行参数,不一一细说:

运行类用例且不运行类某个用例:pytest -v -k "Test_api1 and not test_a"失败停止测试:pytest -x指定个数失败后停止测试:pytest --maxfail=2运行上一次失败用例(或没失败的):pytest --last-failed等等

更多请查看 pytest -h 或者找度娘,我们一般用以上的参数够日常使用了。欢迎来QQ交流群:482713805

python接口自动化11-pytest入门

评论关闭