pytest框架运行时的参数,以及多线程分布式运行用例、运行指定模块用例

一、运行时的参数

在上一篇博客中写了pytest最为核心的运行时前后置如何设置,细心的朋友可能也会发现其实我们当时就加过运行时的参数-vs。
pytest.main([‘-s’]):能打印出调试信息,print()或者日志都可以直接打印在控制台上。
在这里插入图片描述
在这里插入图片描述
pytest.main([‘-v’]):能打印出运行用例时的详细信息。
我们日常在工作中呢一般都使用这两个参数,而这两个参数我们一般结合起来一起使用。

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

在这里还要说一下,一个参数那就是-k,只执行或者只不执行带有对应关键字的用例。
只执行带有关键字oa的用例:

import pytest
import timeclass TestLogin_01:def test_01_hujian(self):print('运行用例1')def test_02_hujianoa(self):print('运行用例2')
if __name__ == '__main__':pytest.main(['-vs', '-k=oa'])

运行结果:
在这里插入图片描述
如果想只运行不带关键字oa的用例呢:

if __name__ == '__main__':pytest.main(['-vs', '-k not oa'])

运行结果:
在这里插入图片描述

二、多线程分布式运行用例

当我们存在多条用例时,而用例执行又没有前后关系,这时候就可以使用分布式运行用例的方法。
在使用该方法前需要先安装:

pip install pytest-xdist

我们在使用时不需要导入该模块。
这是我们正常运行用例时。

import pytest
import timeclass TestLogin_01:def test_01_hujian(self):print('运行用例1')time.sleep(2)def test_02_hujian(self):print('运行用例2')time.sleep(2)if __name__ == '__main__':pytest.main(['-sv', 'test_login_02.py'])

运行时间4s。
在这里插入图片描述
接下来我们加参数分布式运行用例,

import pytest
import timeclass TestLogin_01:def test_01_hujian(self):print('运行用例1')time.sleep(2)def test_02_hujian(self):print('运行用例2')time.sleep(2)if __name__ == '__main__':pytest.main(['-sv', 'test_login_02.py', '-n=2'])

两个线程运行跑用例可以看到运行时间是2s相对于上次缩减了一半。
在这里插入图片描述

运行指定模块用例

在我们一般自动化测试过程中,一般会有一个调用一个模块所有用例的入口方法,如果我们想只运行某个测试类或者测试用例该这么做呢:
只运行某个测试用例:
层级分别是py文件对应的类以及方法。

import pytestif __name__ == '__main__':pytest.main(['-vs', 'test_login_02.py::TestLogin_01::test_01_hujian'])

我们还可以指定文件夹去运行用例:pytest会自动找对应文件下的用例文件,前提是命名规则要对哦。

import pytestif __name__ == '__main__':pytest.main(['-vs', '文件夹名称'])

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

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

相关文章

基于微信小程序的房屋租赁系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境说明用户微信小程序端的主要功能有:户主微信小程序端的主要功能有:管理员的主要功能有:具体实现截图详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考论文…

CSRF攻击(跨站请求伪造)

1.CSRF原理 程序员开发的时候,未对相关页面进行token和referer判断,造成攻击者可构造自己的URL地址欺骗用户进行点击 漏洞分析(低级可绕过) 通过这个可以更改密码 改为了password 中级多了referer头可以绕过 源代码 多了一个refer…

MVC设计思想理解和ASP.NET MVC理解

三层模式 三层模式包括:UI层,业务逻辑层,数据访问层,模型层 MVC设计思想和ASP.NET MVC理解 MVC设计思想: MVC的思想就是把我们的程序分为三个核心的模块,这三个模块的详细介绍如下: 模型(Model) :负责封装与引用程序的业务逻辑相关的数据以及对数据的处理方法。模型层有对…

单片机论文参考:5、基于单片机的自动打铃系统

摘 要 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的…

Xcode15+iOS17适配以及遇到的问题

今天更新了 Xcode15,遇到了一些问题,做下记录希望大家少走点坑。 1.iOS17 SDK 安装失败 Xcode更新完成后,打开项目一直显示 no fund iOS17 sdk,根据项目不同提示可能有区别,根据提示下载后提示安装失败,…

什么是单点登录?什么又是 OAuth2.0?

对于刚开始接触身份认证的朋友对于单点登录,OAuth2.0,JWT 等等会有诸多疑惑,甚至还会问既然有了 JWT 还拿 单点登录做什么?还拿 OAuth2.0 做什么? 不知做过身份认证的 xdm 看到这里是不是感觉这句话有点迷&#xff1f…

简单好用的Python装饰器详解

装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用于在不修改原始代码的情况下添加额外的…

LaTex打出上大下小的公式

想要在latex中打出如下word公式 首先使用 \atop符号 使用如下语句 d_{H(A,B)} max\{{sup\, inf \atop {a \in A\,b \in B}}\,d(a,b), {sup\, inf\,\atop {b\in B\,a\in\,A}}d(b,a)\}. ![在这里插入图片描述](https://img-blog.csdnimg.cn/0c842594716a4693b1124523d53bfcad…

java框架-Spring-IOC

文章目录 一、组件注册包扫描组件注解0)、 ComponentScans1)、 RestController2)、 Srevice3)、 Rerpository4)、Component 导入第三方包里的组件1)、Configuration1)、Bean1)、Cond…

JavaScript 期约 Promise 总结

同步与异步的概念 JavaScript 是一门单线程的语言,这意味着它在任何给定的时间只能执行一个任务。 然而,JavaScript 通过异步编程技术来处理并发操作,以避免阻塞主线程的情况。 在上图中,同步行为的进程 A 因为等待进程 B 执行完…

elsarticle class not displaying email addresses

See https://tex.stackexchange.com/questions/84573/elsarticle-class-not-displaying-email-addresses

华为OD机试真题-分积木-2023年OD统一考试(B卷)

题目描述: Solo和koko是两兄弟,妈妈给了他们一大堆积木,每块积木上都有自己的重量。现在他们想要将这些积木分成两堆。哥哥Solo负责分配,弟弟koko要求两个人获得的积木总重量“相等”(根据Koko的逻辑),个数可以不同,不然就会哭,但koko只会先将两个数转成二进制再进行加…

iPhone辐射超标,发布三年突然禁售了

昨晚 iPhone 15 预售大家抢到了吗? 虽然13日发布会后大家的反应十分冷静,但身体还是很诚实,官网都排到6-7周以后了... 在大伙都争着第一波尝鲜的时候,有一个地方正准备禁售 iPhone 。 不用想肯定是欧盟某个国家啦,这…

点分治维护dp+连通块上新型dp思路+乘积方面进行根号dp:0922T4

首先连通块,所以点分治肯定是 Trick1 钦定选根的连通块dp 对于钦定选根的连通块dp,有一种常见思路 先对原树求其dfn序,按dfn序倒序求解 具体的,对于当前点 i i i(注意这里都是指dfn序),我们…

进程间通信(IPC)的方法:UNIX域套接字

UNIX域套接字(UNIX domain socket)为我们提供了一种在进程之间建立通信通道的便捷方法,具有许多有用的内置功能。它支持面向流(TCP)和面向数据报(UDP)协议作为TCP/IP互联网套接字。我们还可以在阻塞和非阻塞模式之间进行选择。 首先需要创建套接字并在套接字函…

jupyter显示内核启动失败或者网络连接失败——解决办法

问题:jupyter显示内核启动失败或者网络连接失败解决: 重新打开cmd(anaconda),新建了一个虚拟环境可以啦参考链接:https://blog.csdn.net/cocoink/article/details/129203225

Qt事件处理

1. 事件 众所周知Qt是一个基于C的框架,主要用来开发带窗口的应用程序(不带窗口的也行,但不是主流)。我们使用的基于窗口的应用程序都是基于事件,其目的主要是用来实现回调(因为只有这样程序的效率才是最高…

基于SpringBoot的旅游系统

基于SpringBootVue的旅游系统、前后端分离 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:管理员、用户 用户:浏览旅游…

【论文阅读】内存数据库并发控制算法的实验研究

内存数据库并发控制算法的实验研究 原文链接jos.org.cn/jos/article/pdf/6454 摘要 并发控制算法的基本思想归纳为"先定序后检验”,基于该思想对现有各类并发控制算法进行 了重新描述和分类总结,于在开源内存型分布式事务测试床 3TS 上的实际对比实…

spark中结合源码理解reduceByKey、groupByKey、combineByKey等几个ByKey算子的区别

源码版本:pyspark3.1.2 1.combineByKey2.reduceByKey3.groupByKey4.aggregateByKey5.foldByKey总结 1.combineByKey def combineByKey(self, createCombiner, mergeValue, mergeCombiners,numPartitionsNone, partitionFuncportable_hash):"""Generi…