• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Pthon pytest框架标签定制化执行

武飞扬头像
^会飞的鱼Fly^
帮助1

简介

本文简单介绍了pytest框架下的mark的使用及方法案例。@pyest.mark.xxx
目的:实际工作中,我们写的自动化执行用例会比较多,多个py执行文件,多个class,很多方法,而我们只想运行当中部分的用例时怎么办?
1、打标位置:接口模块、类、方法及用例,运行用例时指定运行某个标签。
2、mark功能作用就是灵活的管理和运行指定测试用例
—————————————————————————————————————————

环境搭建

  • pycharm-》设置-》编辑器-》插件,搜索 ini 下载这款插件
    学新通

如果你的pycharm搜不到,请去官网下载:https://plugins.jetbrains.com/plugin/6981-ini/versions

  • 1、查看你pycharm版本号
    学新通
  • 2、搜索对应你pycharm的对应年代对应运行版本下载到本地
    学新通
  • 3、 手动导入安装你的ini插件
    学新通
  • 4、 安装完毕,在pycharm项目下新建一个文档pytest.ini
    学新通

使用方法

1、配置标签

自定义的标签会被pytest识别不了,出现警告.PytestUnknownMarkWarning: Unknown pytest.mark.xxxx

[pytest]
addopts=-vsq
testpaths=./test_case
markers =
    login: run the test_login test function for tasks project
    p0: test1
    p1: test2
    p2: test3

标记注册好后,可以通过pytest --markers来查看
学新通
配置项addopts:执行时可以省略一遍遍填写-v -s -q等参数,直接在mark配置好
学新通
.addopts=-vqs
-v:pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等
-spytest -s 说明:输入我们用例中的调式信息,比如print的打印信息等
-mpytest -m ”标记“ 说明:执行特定的测试用例。修改下上面的用例代码
-qpytest -q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个…点代替了pass结果
-kpytest -k “关键字” 说明:执行用例包含“关键字”的用例
–tb=style:屏蔽测试用例执行输出的回溯信息,可以简化用例失败时的输出信息。style可以是 on,line,short,具体区别请自行体验。如使用pytest --tb=no
配置项testpaths
testpaths指示pytest去哪里访问。testpaths是一系列相对于根目录的路径,用于限定测试用例的搜索范围。只有在pytest未指定文件目录参数或测试用例标识符时,该选项才有作用

2、使用@pytest.mark.xxx

在类或方法或用例前加上:

@pytest.mark.标签名

样式:

import pytest


def inc(x):
    return x   1


@pytest.mark.p0
def test_request1():
    assert inc(2) == 4


@pytest.mark.p1
def test_request2():
    assert inc(1) == 2


@pytest.mark.p2
def test_input():
    a = 1
    b = a
    c = a   b
    assert inc(1)   c == 4


if __name__ == '__main__':
    pytest.main(['test_abc.py', '-m', 'p0 or p1'])
学新通

执行结果:
学新通

3、跳过执行

pytest.mark.skip(xxx),某些接口或者方法由于某些原因需要跳过时使用。

import pytest


def inc(x):
    return x   1

@pytest.mark.p0				#打标P0
def test1():
    assert inc(2)   2 == 4

@pytest.mark.skip(reason='本次不执行')	#打标跳过执行,并且写上原因
def test2():
    assert inc(2)   2 == 4



if __name__ == '__main__':
    pytest.main(['test_abc.py', '-vs'])
学新通

执行结果:第二条跳过,并且表名理由。并且可以在报告中展示出来:
学新通
报告展示:
学新通

更多参数请查看:https://www.cnblogs.com/zouzou-busy/p/11323606.html

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhkbgci
系列文章
更多 icon
同类精品
更多 icon
继续加载