VOL 153

27

2020-08

今天距2021年136天

这是ITester软件测试小栈第153次推文

点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍

微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起进群打怪。

本文2322字,阅读约需6分钟

在上一篇Pytest系列文章:Pytest之skip、skipif、xfail,主要介绍pytest中skipskipifxfail的用法。以下主要介绍pytest自定义配置及用例运行实战。

一个完整的项目,测试用例比较多,比如我们想将某些用例用来做冒烟测试,那该怎么办呢?pytest中可以自定义配置文件,用例按照指定的方式去运行。

配置文件

1

定义配置文件名

在项目根目录下,创建一个文件:pytest.ini (固定名称,不要修改)。

2

配置文件格式

pytest.ini

[pytest]
markers =demo: just for demosmoke

① 案例一:

之前在讲解用例被标记为@pytest.mark.xfail时,如果用例运行通过,显示XPASS。

test_demo.py

@pytest.mark.xfail()
def test_demo02():print("这是test_demo02")assert 1 == 1

在配置文件中未配置xfail_strict = True时,运行结果如下:

在pytest.ini 中加上xfail_strict = True配置后

运行结果为:

② 案例二:addopts

addopts参数可以更改默认命令行选项,省去手动敲命令行参数。

比如命令行想输出详细信息、分布式执行或最大失败次数,每次敲命令很麻烦,在配置里设置,以后命令直接输入pytest即可。

现有如下用例:

test_demo.py

def test_demo01():print("这是test_demo01")assert 1 == 2
def test_demo02():print("这是test_demo02")

如果需要输出信息更详细、输出调试信息及用例执行错误时立即退出,那么配置如下:

[pytest]
markers =demo: just for demosmoke
addopts = -v -s -x

命令行输入:pytest

输出结果为:

测试用例执行实战

比如我想从众多用例中挑选出部分用例,作为冒烟测试用例,怎么配置呢?

pytest.ini

[pytest]
markers =demo: just for demosmoke

其中smoke为标签,用例前加上标签名smoke,即都属于冒烟测试用例。

1

模块级别

在模块里加上标签,那么该模块下的类、方法或函数都会带上标签。

test_demo.py

import pytest
pytestmark = pytest.mark.smoke
class TestDemo:def test_demo01(self):print("这是test_demo01")def test_demo02(self):print("这是test_demo02")def test_demo03(self):print("这是test_demo03")

命令行输入:pytest -v -m smoke

输出结果为:

2

类级别

在类上添加标签,则类下的所有方法都带上标签

test_demo.py

import pytest
@pytest.mark.smoke
class TestDemo:def test_demo01(self):print("这是test_demo01")def test_demo02(self):print("这是test_demo02")def test_demo03(self):print("这是test_demo03")
def test_demo04():print("这是test_demo04")

在命令行输入:pytest -v -m smoke test_demo.py

3

函数级别

在函数上添加标签,那么此函数带上标签。

test_demo.py

import pytest
class TestDemo:def test_demo01(self):print("这是test_demo01")def test_demo02(self):print("这是test_demo02")def test_demo03(self):print("这是test_demo03")
@pytest.mark.smoke
def test_demo04():print("这是test_demo04")

命令行输入:pytest -v -m smoke test_demo.py

输出结果为:

以上

That‘s all

更多系列文章

敬请期待

ITester软件测试小栈

往期内容宠幸

1.Python接口自动化-接口基础(一)


2.Python接口自动化-接口基础(二)


3.Python接口自动化-requests模块之get请求


4.Python接口自动化-requests模块之post请求


5.Python接口自动化之cookie、session应用


6.Python接口自动化之Token详解及应用


7.Python接口自动化之requests请求封装


8.Python接口自动化之pymysql数据库操作


9.Python接口自动化之logging日志


10.Python接口自动化之logging封装及实战

想获取更多最新干货内容

快来星标 置顶 关注我

每周一、三、五 08:30见

<<  滑动查看下一张图片  >>

后台 回复"资源"取干货

回复"微信群"一起打怪升级

测试交流Q群:727998947

点亮一下在看,你更好看

Pytest之自定义mark相关推荐

  1. Pytest注册使用自定义mark标签

    [原文链接]Pytest注册使用自定义mark标签 文章目录 一.直接使用自定义mark标签 二.通过conftest.py文件中重写pytest_configure函数注册标签 三.通过pytest ...

  2. 【pytest官方文档】解读- 如何自定义mark标记,并将测试用例的数据传递给fixture函数

    在之前的分享中,我们知道可以使用yield或者return关键字把fixture函数里的值传递给test函数. 这种方法很实用,比如我在fixture函数里向数据库里插入必要的测试数据,那我就可以把相 ...

  3. Android高德地图自定义Mark并实现聚合效果

    Android高德地图自定义Mark并实现聚合效果 起因:公司本来项目里面用到了高德地图,然后最近老板看见别人的APP里面有个聚合的这个功能,老板:"这个效果能不能实现,我也要!" ...

  4. 【pytest】使用 mark 标记及运行测试用例,注册、管理 mark 标记

    使用 @pytest.mark.xxx 标记测试用例: 可以标记测试方法.测试类,标记名可以自定义,最好起有意义的名字: 同一测试类/方法可同时拥有多个标记: # test_login_logout. ...

  5. pytest框架之mark标记功能详细介绍

    文章末尾给大家留了大量福利 一.mark标记 在实际工作中,我们要写的自动化用例会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方法,而我们只想运行当中部分的用例时怎么办? ​ py ...

  6. layui laydate 自定义mark

    layui laydate 自行定义mark 在日历上标注区别签到过和未签到过的,效果如图: 要写个日历的,最后选择了layui上面的laydate日期和时间组件,我的需求上面不需要选择日期啥的,和日 ...

  7. Pytest之参数化

    VOL 154 02 2020-09 今天距2021年120天 这是ITester软件测试小栈第154次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  8. 12、Pytest之@pytest.mark.自定义标签使用

    @pytest.mark.自定义标签使用 前言: @pytest.mark.自定义标签的使用: 组合运行用例 注册.管理 mark 标记: 规范使用 mark 标记: 前言: Pytest允许用户自定 ...

  9. 自动化测试框架Pytest使用mark和参数化固定装置、测试函数

    目录 一.常见的内置markers 二.查看所有markers 三.注册自定义marks 四.对未注册mark的限制 五. 参数化固定装置.测试函数 一.常见的内置markers usefixture ...

最新文章

  1. python Tkinter学习笔记 menu控件 02
  2. CodeSign error: code signing is required for product type Application in SDK iOS XXX的解决办法
  3. 华为值多少钱?院士倪光南:13000亿美元!超过苹果,碾压阿里!
  4. 修改oracle 的dbname,在oracle 10g上修改dbname的实验
  5. php sql判断l列的存在,thinkphp 模块不存在:404
  6. 第十天内容《基础交换十》
  7. wince -- 线程中SetEvent及WaitForSingleObject用法
  8. python能学到什么-学习python三个月能学到什么?
  9. UVA 11859 Division Game[Nim游戏]
  10. 路飞学城Python-Day49
  11. Wireshark 301: Spying on what people are downloading (Part 2 of 2)
  12. hbase和es在搜索场景的应用
  13. 某厂机试算法刷题一览
  14. HRBUST2343 巴啦啦能量(字符串,技巧)
  15. 用shell脚本写的一个简单的俄罗斯方块
  16. vue项目前端导出xlsx表格带边框
  17. 基于springboot的药店进销存管理系统
  18. Intellij IDEA 初学入门图文教程(一) —— 介绍、下载和安装
  19. 使用学校机房网线连接自己笔记本电脑的步骤
  20. DIALOG——实现屏幕缩放功能

热门文章

  1. 使用string定义一个变量如何输出
  2. 寻宝机器人电路板焊接_专业维修宿迁市史陶比尔STAUBLI机器人维修{苏州罗韦维修}...
  3. 服务器没权限修改,ftp服务器没有修改权限
  4. mysql mysqldump触发器备份_MySQL常用的备份工具之mysqldump
  5. insert exec 语句不能嵌套_MySQL ------ 插入数据(INSERT和insert select)(二十)
  6. matlab硬币覆盖问题和八皇后,八皇后问题matlab程序
  7. 广数980tc3从u盘复制到系统_广州数控GSK980TC3车床数控系统操作手册(选)
  8. 计算机网络工程教程:基于cisco路由器和交换机,计算机网络工程教程—基于cisco路由器和交换机教学课件作者陆魁军chap2交换机VLAN设置v2.ppt...
  9. html页面 sql注入,使用html仅阻止SQL注入
  10. 让 Android WebView 支持文件下载的三种解决方案