Pytest常用参数剖析 | 案例演示

本文详细介绍了Pytest单元测试框架的执行方式,包括主函数模式和命令行模式。重点讲解了-s、-v等常用参数的使用,并通过实例演示了单条测试用例及多个模块批量执行的场景,展示了Pytest的灵活性。

上一期基于环境的配置做了简单的介绍,针对Pytest灵活的单元测试框架,它的优点就在于内置方法巧妙之处

一、上期重点回顾

** 运行之前需要给大家介绍下pytest框架文件的设计规则,这是pytest的游戏规则请遵守,否则在执行期间pytest找不到不按规则命名的脚本

文件名需以 test_*.py 文件和*_test.py

函数以 test_开头

类以 Test 开头

方法以 test_开头

所有的包 pakege 必项要有__init__.py 文件

今天基于Pytest的执行的main方法参数,拿实际案例进行分享下,测试脚本的执行方法

二、Pytest框架知识点剖析

#用例运行方式分为

1.主函数模式

2.命令行模式

#常用参数详解

-s :表示输出调试信息,包括prin打印的信息

-v :显示更详细的运行信息

-vs:这两个参数可一起使用

-k :匹配相应字符串的测试用例

-x :用例运行失败立即停止

:: :指定测试用例运行

注:还有部分参数未列,这里只介绍-s、-v、:: 几种运行方式

三、案例执行

#单条测试用例场景下看看主函数执行与命令执行的效果

新建项目E:\Python3\JinShan_AutoTest\testcase

新建脚本E:\Python3\JinShan_AutoTest\testcase\test_one_case.py

# -*- coding:utf-8 -*-
# auth:shichao 
# Email:695214599@qq.com


class TestLogin:
def test_01_shichao(self):
        print('这是第一条测试用例')


if __name__ == '__main__':
        pytest.main()

主函数执行模式:

1.不带参数执行pytest.main()

aaeb613e48595bd430991e20aea9a928.png

2.带参数执行pytest.main(['-vs'])

405fc217953f0f65c7d7fd217acff43a.png

命令行执行模式:

1.不带参数执行pytest test_one_case.py

195ed41cc500b0a9c84d12c43a518cc0.png

2.带参数执行pytest -vs test_one_case.py

c294bc3da35d3b1c95498eb5ac522362.png

以上为单条测试用例文件以test开头的主函数执行与命令执行的2种方式

#接下来我们看看当我们有多个模块的测试用例想批量执行或者指定某个模块进行执行的场景

新建文件:E:\Python3\JinShan_AutoTest\testcase\test_two_case.py

# -*- coding:utf-8 -*-
# auth:shichao 
# Email:695214599@qq.com


import  pytest


class TestProduct:
def test_02_shangpin(self):
        print('这是第二条测试用例')


if __name__ == '__main__':
    pytest.main()

新建文件:E:\Python3\JinShan_AutoTest\testcase\all_test.py

# -*- coding:utf-8 -*-
# auth:shichao
# Email:695214599@qq.com


import pytest


if __name__ == '__main__':
    pytest.main(['-vs'])

主函数运行模式

1.不带参数执行所有的测试用例

all_test.py | pytest.main()

4513a3c3181a2841acd268d09f3d0952.png

2.带参数执行所有的测试用例

all_test.py | pytest.main(['-vs'])

ca7720de2ddb8efe44949895a6d80aee.png

3.带参数执行指定模块测试用例

all_test.py | pytest.main(['-vs','test_two_case.py'])

a01969009773d2cf5c74cd2678de01e8.png

4.带参数执行跨目录下的文件

all_test.py | pytest.main(['-vs','../zhihu'])

新建目录zhihu:E:\Python3\JinShan_AutoTest\zhihu

zhihu目录下新建文件:E:\Python3\JinShan_AutoTest\zhihu\test_auto_demo.py

# coding:utf-8
# authou: shichao
# pytest试运行


import pytest
from selenium import webdriver
import time




def test_login():
    url = "https://www.baidu.com"
    driver = webdriver.Chrome()
    driver.get(url)  # 打开百度浏览器
    driver.maximize_window()  # 最大化浏览器
    driver.find_element_by_id("kw").send_keys("知乎")  # 定位输⼊框并输⼊关键字
    driver.find_element_by_id("su").click()  # 点击[百度⼀下]搜索
    time.sleep(3)  # 等待3秒
    driver.quit()  # 关闭浏览器




if __name__ == '__main__':
    pytest.main('-vs')

命令行模式运行

1.不带参数执行所有的测试用例

all_test.py | pytest

676a4e1d5875af399f0540c9676b3124.png

2.带参数执行所有的测试用例

all_test.py | pytest -vs

f03673d8571c922cf9cf4ee47cd9b16a.png

3.带参数执行指定模块测试用例

pytest  -vs  test_two_case.py

ef580c6c2c122095efb52de57b46b868.png

4.带参数执行指定目录下测试用例

pytest  -vs ../zhihu

32089640e3ff6ce967006c28a3d79523.png

以上就是多个模块进行批量、跨层级执行的过程,是不是很灵活

文本就是针对pytest框架测试用例2种执行方式 [ 主函数、命令行模式 ]以及几种正常场景下的常用参数[ -v 、-s ]进行分享

其它的参数在实际应用也会起到相对应的效果!大家可以慢慢探索

b4ad7c1d8386e319f3cc1153e93222ec.png

感谢阅读!点个赞再走,点击原文链接更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值