前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytest常用参数剖析 | 案例演示

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

作者头像
测试小兵
发布2022-04-14 19:24:48
4560
发布2022-04-14 19:24:48
举报
文章被收录于专栏:猪圈子猪圈子

上一期基于环境的配置做了简单的介绍,针对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

代码语言:javascript
复制
# -*- 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()

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

命令行执行模式:

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

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

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

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

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

代码语言:javascript
复制
# -*- 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

代码语言:javascript
复制
# -*- coding:utf-8 -*-
# auth:shichao
# Email:695214599@qq.com

import pytest

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

主函数运行模式

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

代码语言:javascript
复制
all_test.py | pytest.main()

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

代码语言:javascript
复制
all_test.py | pytest.main(['-vs'])

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

代码语言:javascript
复制
all_test.py | pytest.main(['-vs','test_two_case.py'])

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

代码语言:javascript
复制
all_test.py | pytest.main(['-vs','../zhihu'])

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

代码语言:javascript
复制
# 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.不带参数执行所有的测试用例

代码语言:javascript
复制
all_test.py | pytest

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

代码语言:javascript
复制
all_test.py | pytest -vs

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

代码语言:javascript
复制
pytest  -vs  test_two_case.py

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

代码语言:javascript
复制
pytest  -vs ../zhihu

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档