接口自动化—pytest命令行操作

news2025/1/17 3:16:40

学习目标:

1、pytest的不同的运行方法

2、pytest常见的命令行参数

3、如何添加自定义的pytest命令行参数

学习内容:

1、pytest的不同的运行方法

1.1主要有三种情况的运行方式:

1.1.1没有使用pytest框架,但是要运行包含test开头的用例

方法:在py文件的最后,添加main方法,使用pytest.main([‘文件名(要执行的用例)’、’参数1’、‘参数2’、‘参数n’])

例如:pytest.main(['demo.py::test','-s'])

1.1.2 已经有pytest框架,要运行test文件,直接右键放到代码的test函数上选择py.test运行即可

1.1.3 在终端运行pytest用例,直接在终端输入:pytest 文件名 参数1 参数n

1.2 如何添加pytest运行器?

方法:设置默认的运行器:file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test

1.3 当存在pytest运行器,但是右键运行pytest用例一直默认使用python的普通运行方式时候如何处理?

方法:点击上方的设置->点击‘+’ ->python tests -> py.test-> 添加相关的信息和相关参数

2、pytest常见的命令行参数

2.1 执行特定的用例的参数

2.1.1 运行指定的函数(使用两对冒号 : 分隔)

pytest 模块名::类名::函数名,pytest demo.py::test1

2.1.2 假如期望执行的用例有唯一名或者是测试名的后缀相同,可以使用-k “关键词”定位,再结合collect-only验证筛选情况(这个参数作用只收集用例,不执行),-k只运行与给定字符串表达式匹配的测试用例

2.2.2 如果想要把用例分组,然后一起执行相同分组的用例,可以使用-m参数。具体做法:先使用@pytest.mark.xxx给用例做标记xx填写分组标记,这里可以自己定义不做限制。然后使用pytest -m xxx,就可以执行相关分组的用例

2.2 查看运行结果是否详细的参数(下面的比较常用就不举例了)

-s :显示标准输出,例如print()的语句;
-v :显示详细报告;
-q :显示简洁报告;

2.3 设置什么时候结束执行用例的参数

2.3.1 --m参数,正常的用例执行都是失败会跳过继续执行下个用例,如果想要失败后不执行后面的用例可以使用参数-m

注意:使用@pytest.mark参数,需要在根目录下建立一个pytest.ini文件并且写入markers选项,否则会保持war

 

2.3.2 --lf(last fail)参数,可以把上次执行使用的用例重新执行

2.3.3 –-ff参数,把上次执行失败的用例执行完后,在继续执行剩下成功的用例

3、如何添加自定义的pytest命令行参数

3.1 如何添加自定义参数选项

在conftest文件里面定义pytest_addoption函数,里面添加自定义的参数

parser.addoption() 参数说明

name:自定义命令行参数的名字,可以是:“foo,“-foo” 或 “–foo”;

action:在命令行中遇到此参数时要采取的基本操作类型;action=“store”:默认,只存储参数的值,可以存储任何类型的值,此时 default 也可以是任何类型的值,而且命令行参数多次使用也只能生效一个,最后一个值覆盖之前的值;

nargs:应该使用的命令行参数的数量;

const:某些操作和nargs选择所需的常量值;

default:如果参数不在命令行中,则生成的默认值。

type:命令行参数应该转换为的类型;

choices:参数允许值的容器;

required:命令行选项是否可以省略(仅可选);

help:对参数作用的简要说明;

metavar:用法消息中参数的名称;

dest:要添加到 parse_args() 返回的对象中的属性的名称;

3.2 如何引用添加的自定义参数选项

使用fixture把要自定义的函数全局化使用,下次使用这个自定义的参数时,直接取它的返回值即可

需要使用这个自定义参数的返回值,可以在函数的参数里面加上步骤2的函数名称即可

3.3 如何设置自定义参数的默认配置

在pytest里面有两个非test文件非常重要

1、pytest.ini:pytest的主配置文件,可以改变pytest的默认行为

2、conftest.py:测试用例的一些fixture配置

在pytest.ini里面可以设置addopts参数:addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作

除了上述的ini配置,还可以参考这篇文章设置其他的配置:https://www.cnblogs.com/poloyy/p/12702294.html

备注:参数和值之间不能有空格

4、如何添加指定执行的case目录

4.1 pytest.ini文件下指定要执行的目录

4.2 根目录创建run_all.py文件,执行全部的文件和生产报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1358148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信多功能投票小程序源码系统:送礼物+在线充值+票数汇总+创建活动+完整的代码安装包 附带完整的搭建教程

微信已成为人们日常生活中不可或缺的一部分。因此,微信小程序也受到了广大用户的欢迎。在这个背景下,多功能投票小程序应运而生,为各种活动提供了方便快捷的投票方式。本文将介绍一款微信多功能投票小程序源码系统,该系统具有送礼…

Python | Iter/genartor | 一文了解迭代器、生成器的含义\区别\优缺点

前提 一种技术的出现,需要考虑: 为了实现什么样的需求;遇到了什么样的问题;采用了什么样的方案;最终接近或达到了预期的效果。 概念 提前理解几个概念: 迭代 我们经常听到产品迭代、技术迭代、功能迭代…

Apache Doris (六十一): Spark Doris Connector - (1)-源码编译

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. Spark Doris Connector…

开发者必备的 Github 加速工具(截至2024年01月)

开始闲聊前,我要感谢大神小青龍总结的博文:作为程序员不得不知道的几款Github加速神器,给我们介绍了常用(较为合规😄)的加速方法。毕竟 github 是开发者绕不过的宝库。 背景 我用 Github 将近12年&#x…

drf知识--11

补充 # 研究simple-jwt提供的Token类: 1、RefreshToken:生成refresh token的类 2、AccessToken:生成refresh token的类 3、Token:他们俩的父类 4、str(RefreshToken的对象)---得到字符串 refresh token,Token类写了 …

【linux学习】linux概述

1. linux概述 操作系统主要的功能有两个部分,一是更有效率的控制计算机硬件资源(主要通过核心来控制),二是为程序设计师提供更容易开发软件的环境(系统呼叫提供软件开发环境)。linux就是一套操作系统&…

台灯学生用哪个牌子最好?学生护眼台灯最好的品牌推荐

如今的家长对教育十分重视,不仅给孩子提供了各种别致的文具,为了孩子有更好的学习光线,还会购买各种护眼台灯,但各种选择五花八门。从无蓝光、无频闪到柔和光,各种宣传亮点层出不穷……为了为孩子选购一款优质的学习护…

P3704数字表格(莫比乌斯反演)

题目背景 Doris 刚刚学习了 fibonacci 数列。用 fi​ 表示数列的第 i 项,那么 00,11f0​0,f1​1 fn​fn−1​fn−2​,n≥2 题目描述 Doris 用老师的超级计算机生成了一个 nm 的表格, 第 i 行第 j 列的格子中的数是 gcd(i,j)​,其中gcd(…

企业数据治理的三个阶段:从起步到成熟的数据管理之旅

随着数字化时代的到来,企业数据已经成为企业的重要资产和驱动业务发展的重要力量。然而,要想充分利用数据的价值,企业需要对其数据进行有效的管理和治理。本文将对企业数据治理的三个阶段进行详细的探讨,以帮助企业了解其在数据治…

5600U PVE安装WIN10后直通核显

修改PVE系统配置 请先安装相同版本的PVE系统,其他版本如果存在问题请自行查找。 安装过程比较简单,具体方法请自行百度 1. 修改grub启动参数: 修改文件 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 配置: GRUB_CMDLINE_LI…

七款人体感应报警器电路图

人体感应报警器电路图(一) 人体发出的红外线波长在9~10um之间,属远红外线区。我们利用热释电红外传感器及信号处理集成电路,组装成一个人体红外线感应开关电路报警器,它能依靠人体发出的微量红外线进行开关…

一键减低PNG像素,轻松优化图片质量!

在数字时代,我们每天都要处理大量的图片文件,从网站设计、广告素材到社交媒体图片等。PNG作为一种常用的无损压缩格式,在保证图片质量的同时,也占用了较大的存储空间。为了优化存储空间和提高加载速度,我们需要对PNG图…

获取小红书笔记详情API调用说明(含请求示例参数说明)

前言 小红书,是一个引领全球时尚潮流的社交电商平台。在这里,你可以发现世界各地的优质好物,从美妆护肤、穿搭时尚,到家居生活、旅行美食,一切应有尽有。同时,这里也是一个分享生活点滴的平台,…

CPU平台做视频智能分析,Lnton视频分析平台不仅支持流分析,同时也支持图片分析了

LntonAIServer最新v1.0.09版本支持图片分析了,经过几个月的研发,在原有的视频流分析的基础上,我们终于支持大家都非常期待的图片分析功能了,图片分析的功能加上,能有利于很多场景的展开,比如在烟火、明厨亮…

蓝牙技术在智能交通系统中的革新与应用

随着科技的不断进步,蓝牙技术已经成为智能交通系统中的一项关键技术。其无线连接和低功耗的特性为交通管理和车辆通信提供了新的解决方案。本文将深入探讨蓝牙技术在智能交通系统中的应用,以及其对交通效率、安全性和用户体验的积极影响。 1. 蓝牙技术在…

5G工业物联网网关:连接未来的智能工业

在当今数字化时代,工业物联网正迅速崛起,并引领着全球工业的数字转型。而5G工业物联网网关作为实现IIoT的关键基础设施,在连接未来的智能工业中发挥着举足轻重的作用。 什么是5G工业物联网网关 5G工业物联网网关是连接工业设备和5G网络的关键…

“晨曦记账本:筛选特定时间段内的借款信息,管理更轻松!“

晨曦记账本,为您的财务记录带来前所未有的便捷!现在,我们推出了一项新功能,让您能够轻松筛选特定时间段内的借款信息。这不仅让您更轻松地管理借款记录,还能确保您的财务数据一目了然。 首先,我们要打开晨…

YOLOv8独家原创改进:新颖的Shape IoU结合 Inner-IoU,基于辅助边框的IoU损失的同时关注边界框本身的形状和尺度,小目标实现高效涨点

💡💡💡本文改进:一种新的Shape IoU方法结合 Inner-IoU,基于辅助边框的IoU损失的同时,更加关注边界框本身的形状和尺度来计算损失 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/ca…

2024年您应该知道的 12个绝佳且免费的 AI 工具

2024年,人工智能的世界会继续让我们着迷。 这里收集了12 个免费的 AI 工具,其中大多数易于使用,还有一些复杂的。无论如何,AI 将会给我们的工作和生活带来巨大的改变,了解并掌握最适合自己的工作至关重要。 1、Adobe …

MySQL的CRUD操作函数介绍union和union all

目录 一. CRUD(增删改查) 1.1 SELECT(查询) 概念 语法 含义 1.2 INSERT(新增) 概念 语法 含义 1.3 UPDATE(修改) 语法 含义 1.4 DELETE(删除) 语…