ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # **实战** ## 一、**fixture方法(替换setup)** 1、添加装饰器@pytest.fixture()变成装饰器 ![](https://img.kancloud.cn/16/d6/16d6a303d657aa6743faa28a79205d6d_250x98.png) 2、用法一:在测试用例中传入方法名,即可调用 ![](https://img.kancloud.cn/2d/10/2d101d7985cd4247ec0bb7866380628a_319x106.png) 3、用法二:使用装饰器方法调用(好处是不用动到里面的参数) ![](https://img.kancloud.cn/e8/55/e855e30844da6c19e0dc5cf72b27f91a_336x103.png) ## 二、**yield方法(可以激活fixture的,teardown功能)** 1、Yield返回值 ![](https://img.kancloud.cn/85/b7/85b7081cd20b2b2c246617f682929ff2_355x134.png) 2、获取fixture方法的返回值 ![](https://img.kancloud.cn/38/96/38963ef44d2564dec9a1ab0734a2d9d2_430x96.png) ## 三、**fixture作用域** 1、function函数或者方法界别都会被调用 每一个测试用例都会调用 ![](https://img.kancloud.cn/58/bf/58bfefc77600da57520bceda448693a0_280x109.png) 2、Class类级别调用一次 只在class前后执行一次 ![](https://img.kancloud.cn/c6/9b/c69b31ca58099b524270fed748ee8ea1_279x111.png) 3、Module模块级别调用一次 在整个\*.py文件中只调用一次 ![](https://img.kancloud.cn/f6/c3/f6c3bbd99f90d74d3ff73cd4a62a35d8_296x110.png) 4、Session是多个文件调用一次 ## 四、**conftest.py用法** 1、conftest下的fixture方法,其他同级文件可以直接调用 2、Params参数化调用 如果有yield方法,就不需要return调用参数 ![](https://img.kancloud.cn/f5/e6/f5e677eb1a4bed208f4c2ec3028a9025_343x167.png) ## 五、**pytest配置文件** ### **自定义mark标签名** 1、写在pytest.ini文件中 ![](https://img.kancloud.cn/ac/29/ac2970a380c8866104cc7dfb53119598_188x139.png) 2、Pytest的主配置文件,一般放在项目工程的根目录 3、指定pytest的运行方式 4、不能使用任何中文符号 5、可以给测试用例打上标签,指定执行特定标签的用例 ![](https://img.kancloud.cn/6d/24/6d24e1b918ab1c28fe9b854301ae746c_286x91.png) 6、执行方法 ![](https://img.kancloud.cn/56/e0/56e00d66012fcf05ebd0f53464dabffe_400x34.png) ### **Addopts运行时参数(可添加多个命令行参数,空格分隔,所有参数与命令行一致)** 1、写在pytest.ini文件中 执行pytest   \*\_.py命令时,自动带入 多个参数时,空格写在后面即可 ![](https://img.kancloud.cn/2e/aa/2eaaa7a3d462e124bda903e08fb7ab16_135x33.png) 2、自定义测试文件的命名规则,python\_files 在pytest.ini文件中,注释用“;” ![](https://img.kancloud.cn/3d/21/3d21127985326f0084ea2c189980919d_292x49.png) 3、自定义测试类的命名规则,python\_classes ![](https://img.kancloud.cn/c6/ab/c6ab200a349d2ca0c962ed601f016a37_272x47.png) 4、自定义测试方法的命名规则,python\_functions ![](https://img.kancloud.cn/bc/a0/bca0f9937b5efe0968b4aaa2dafabb36_281x49.png) 5、指定特定路径运行 testpaths = baidu ![](https://img.kancloud.cn/4d/63/4d63d7c5f7b70a38595a42fd7c00ccc8_242x50.png) 6、忽略路径 norecursedirs 用例较多时,可以提升运行效率 ![](https://img.kancloud.cn/e6/57/e6576ad4255465e24cc187fe0776c4c9_330x52.png) ### **Pytest插件** 1、失败重跑 指定重跑次数 ![](https://img.kancloud.cn/f5/54/f554d7c8c932b8b0866153e2dca4b98e_491x28.png) 指定重跑间隔 ![](https://img.kancloud.cn/44/c3/44c3ec7a0ae5ac0fddeecf3ad783b57e_487x27.png) 也可以通过装饰器的方式 ![](https://img.kancloud.cn/b2/26/b2265c1ec9b70e983861634c1edd0d7a_368x86.png) 2、pytest-assume列出失败的用例 安装pytest-assume ![](https://img.kancloud.cn/6f/30/6f30620e2a263ae89ba9da5383cd052c_273x113.png) 1、pytest-ordering控制测试用例的执行顺序(建议测试用例不要有顺序,不要有依赖) ![](https://img.kancloud.cn/11/13/1113d63c5697325e964d8ba63e339c09_243x125.png) ![](https://img.kancloud.cn/88/75/8875c10f4b447b60a8615a17b666e692_263x73.png) 2、pytest-xdist多线程执行测试用例 安装 ![](https://img.kancloud.cn/37/07/370775fafce14cd4543e8277eb21b67d_257x62.png) \-n参数3(线程数) ![](https://img.kancloud.cn/73/82/73820310f9cf187cf71ec3ecb3022389_327x30.png)