Pytest之自定义mark
VOL 153
27
2020-08
今天距2021年136天
这是ITester软件测试小栈第153次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起进群打怪。
本文2322字,阅读约需6分钟
在上一篇Pytest系列文章:Pytest之skip、skipif、xfail,主要介绍pytest中skip
、skipif
、xfail
的用法。以下主要介绍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相关推荐
- Pytest注册使用自定义mark标签
[原文链接]Pytest注册使用自定义mark标签 文章目录 一.直接使用自定义mark标签 二.通过conftest.py文件中重写pytest_configure函数注册标签 三.通过pytest ...
- 【pytest官方文档】解读- 如何自定义mark标记,并将测试用例的数据传递给fixture函数
在之前的分享中,我们知道可以使用yield或者return关键字把fixture函数里的值传递给test函数. 这种方法很实用,比如我在fixture函数里向数据库里插入必要的测试数据,那我就可以把相 ...
- Android高德地图自定义Mark并实现聚合效果
Android高德地图自定义Mark并实现聚合效果 起因:公司本来项目里面用到了高德地图,然后最近老板看见别人的APP里面有个聚合的这个功能,老板:"这个效果能不能实现,我也要!" ...
- 【pytest】使用 mark 标记及运行测试用例,注册、管理 mark 标记
使用 @pytest.mark.xxx 标记测试用例: 可以标记测试方法.测试类,标记名可以自定义,最好起有意义的名字: 同一测试类/方法可同时拥有多个标记: # test_login_logout. ...
- pytest框架之mark标记功能详细介绍
文章末尾给大家留了大量福利 一.mark标记 在实际工作中,我们要写的自动化用例会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方法,而我们只想运行当中部分的用例时怎么办? py ...
- layui laydate 自定义mark
layui laydate 自行定义mark 在日历上标注区别签到过和未签到过的,效果如图: 要写个日历的,最后选择了layui上面的laydate日期和时间组件,我的需求上面不需要选择日期啥的,和日 ...
- Pytest之参数化
VOL 154 02 2020-09 今天距2021年120天 这是ITester软件测试小栈第154次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- 12、Pytest之@pytest.mark.自定义标签使用
@pytest.mark.自定义标签使用 前言: @pytest.mark.自定义标签的使用: 组合运行用例 注册.管理 mark 标记: 规范使用 mark 标记: 前言: Pytest允许用户自定 ...
- 自动化测试框架Pytest使用mark和参数化固定装置、测试函数
目录 一.常见的内置markers 二.查看所有markers 三.注册自定义marks 四.对未注册mark的限制 五. 参数化固定装置.测试函数 一.常见的内置markers usefixture ...
最新文章
- python Tkinter学习笔记 menu控件 02
- CodeSign error: code signing is required for product type Application in SDK iOS XXX的解决办法
- 华为值多少钱?院士倪光南:13000亿美元!超过苹果,碾压阿里!
- 修改oracle 的dbname,在oracle 10g上修改dbname的实验
- php sql判断l列的存在,thinkphp 模块不存在:404
- 第十天内容《基础交换十》
- wince -- 线程中SetEvent及WaitForSingleObject用法
- python能学到什么-学习python三个月能学到什么?
- UVA 11859 Division Game[Nim游戏]
- 路飞学城Python-Day49
- Wireshark 301: Spying on what people are downloading (Part 2 of 2)
- hbase和es在搜索场景的应用
- 某厂机试算法刷题一览
- HRBUST2343 巴啦啦能量(字符串,技巧)
- 用shell脚本写的一个简单的俄罗斯方块
- vue项目前端导出xlsx表格带边框
- 基于springboot的药店进销存管理系统
- Intellij IDEA 初学入门图文教程(一) —— 介绍、下载和安装
- 使用学校机房网线连接自己笔记本电脑的步骤
- DIALOG——实现屏幕缩放功能
热门文章
- 使用string定义一个变量如何输出
- 寻宝机器人电路板焊接_专业维修宿迁市史陶比尔STAUBLI机器人维修{苏州罗韦维修}...
- 服务器没权限修改,ftp服务器没有修改权限
- mysql mysqldump触发器备份_MySQL常用的备份工具之mysqldump
- insert exec 语句不能嵌套_MySQL ------ 插入数据(INSERT和insert select)(二十)
- matlab硬币覆盖问题和八皇后,八皇后问题matlab程序
- 广数980tc3从u盘复制到系统_广州数控GSK980TC3车床数控系统操作手册(选)
- 计算机网络工程教程:基于cisco路由器和交换机,计算机网络工程教程—基于cisco路由器和交换机教学课件作者陆魁军chap2交换机VLAN设置v2.ppt...
- html页面 sql注入,使用html仅阻止SQL注入
- 让 Android WebView 支持文件下载的三种解决方案