Pytest测试实战|执行常用命令

news2024/11/25 9:50:27

Pytest测试实战

本文章主要详细地阐述下Pytest测试框架执行TestCase常用命令。

按分类执行

在Pytest测试框架中按照分类执行的命令为“-k”,它的主要特点是按照TestCase名字的模式来执行,在编写具体的TestCase的时候,都会编写每个TestCase的名称,一般而言TestCase名称都是需要被测对象模块的名称,这样执行的时候可以按照实际需求选择性的执行需要执行的模块,案例代码如下:


import pytest


def test_login_001():

pass


def test_login_002():

pass


def test_product():

pass


def test_platform():

pass

如上的测试模块中编写的被测对象分别是login、product、platform,如果只是想执行login模块的代码,那么执行的命令为:

pytest -s -v -k "login" test_command.py

执行后的结果信息如下所示。

图片

如果想同时执行login与platform模块的TestCase,执行的命令为:

pytest -s -v -k "login or platform" test_command.py

如上可以看到使用or的关系来解决多个模块需要同时执行的问题,执行后的结果信息如下所示。

图片

按分组执行

按照分组执行使用的命令是“-m”。在编写TestCase的时候会针对TestCase按照业务属性打标签,那么使用“-m”可以按照标签的模式来进行执行,比如编写的TestCase中有部分是SmokeTest,打的标签一般是“smoke”,应用的场景如环境部署后,需要验证环境的可用性,只需要执行打的标签为“smoke”的TestCase,案例代码如下。

 

import pytest


@pytest.mark.smoke

def test_login_001():

pass


def test_login_002():

pass


@pytest.mark.smoke

def test_product():

pass


@pytest.mark.smoke

def test_platform():

pass


@pytest.mark.book

def test_book_001():

pass

如上代码中TestCase打的标签分别是“smoke与book”,如果只执行标签为“smoke”,那么执行的命令如下。

pytest -s -v -m "smoke" test_command.py

执行结果信息如下。

图片

根据如上的结果信息可以看到,只执行了标签为“smoke”的TestCase,其他的并没有执行,如果一个TestCase同时打了多个标签但是又需要执行它,那么使用“and”就可以了,案例代码如下。

 

import pytest


@pytest.mark.smoke

@pytest.mark.login

def test_login_001():

pass


@pytest.mark.login

def test_login_002():

pass


@pytest.mark.smoke

def test_product():

pass


@pytest.mark.smoke

def test_platform():

pass


@pytest.mark.book

def test_book_001():

pass

执行命令如下所示。

 pytest -s -v -m "smoke and login" test_command.py

执行结果如下所示。

图片

执行失败立刻停止

Fixtue执行失败立刻停止使用到的命令为“-x”,一般不建议使用该命令,理由是在TestCase执行的时候,不能因为失败就停止执行,而大多数的时候需要把被执行的TestCase全部执行完成,再分析执行失败的具体原因到底是什么?一般这种情况需要加入重试的机制,如在API测试中,第一次请求可能HTTP协议状态码不是200,而是非200,那么此时再等待几秒再次发送请求,可能HTTP返回的协议状态码是200,因为这个过程有可能网关层异常,如API GateWay TimeOut时会返回504。

忽略执行

忽略执行使用到的命令为“-rs”,这样的场景在实际工作中应用还是很广泛的,具体如编写的TestCase,但是由于业务调整,这部分TestCase不需要执行了,那么这些TestCase可以打上“skip”的标签并且说明理由,见案例代码。

 

import pytest


@pytest.mark.smoke

@pytest.mark.login

def test_login_001():

pass


@pytest.mark.login

def test_login_002():

pass


@pytest.mark.smoke

def test_product():

pass


@pytest.mark.skip("屏蔽平台入口")

def test_platform():

pass

如执行的时候忽略执行加了标签“skip”的TestCase,执行命令如下。

pytest -s -v -rs test_command.py

执行后的结果信息如下。

图片

如上所示可以看到打了“skip”标签的TestCase执行的时候会忽略并且显示忽略执行的信息。

在Pytest测试框架中执行TestCase使用到的命令会非常丰富,本文章主要总结了执行TestCase常用的命令,关于使用命令分布式执行后续文章介绍,感谢您的阅读。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

el-table表格点击该行任意位置时也勾选上其前面的复选框

需求&#xff1a;当双击表格某一行任意位置时&#xff0c;自动勾选上其前面的复选框 1、在el-table 组件的每一行添加row-dblclick事件&#xff0c;用于双击点击 <el-table:data"tableData"ref"tableRef"selection-change"handleSelectionChange&q…

常用组件详解(五):torch.nn.BatchNorm2d()

文章目录 一、基本原理二、函数说明 在卷积神经网络的卷积层之后通常会添加torch.nn.BatchNorm2d()进行数据的归一化处理&#xff0c;将数据规范到均值为0&#xff0c;方差为一的分布上&#xff0c;使得数据在进行Relu时不会因为数据过大而导致网络性能的不稳定。 一、基本原理…

基础实践:使用JQuery Ajax调用Servlet

前言 本博客介绍最简单的JQuery&#xff08;原生JS的封装库&#xff09;使用Ajax发送请求&#xff0c;并通过对应的servlet响应数据&#xff0c;并在页面显示&#xff0c;并且servlet响应的数据来自MySQL数据库。 实现需求&#xff1a;在前端页面的输入框中输入要注册的用户名&…

2024年_ChatGPT 及类似的人工智能技术带来的影响与改变 怎样利用 ChatGPT 提高学习效率

人工智能技术给我们带来了什么的改变&#xff1a; 工作方式与效率&#xff1a; 信息检索与处理&#xff1a;能快速整合大量信息&#xff0c;提供较为准确的答案和建议&#xff0c;帮助人们更高效地获取所需知识&#xff0c;提升信息检索和处理的速度与质量&#xff0c;比如在做…

Git版本控制的使用教程

使用Git进行项目代码的版本控制&#xff0c;具体操作&#xff1a; 1). 创建Git本地仓库 当Idea中出现&#xff1a; 说明本地仓库创建成功。 2). 创建Git远程仓库 访问Gitee - 基于 Git 的代码托管和研发协作平台&#xff0c;新建仓库 点击 创建 3). 将本地文件推送到Git远程…

Java【根据数据库生成实体文件】

下载插件 安装 MybatisX 配置包 Scratches and Consoles -> Extensions&#xff0c;Reload from Disk 后&#xff0c;会出现 MyBatisX 文件夹&#xff0c;将模板配置文件夹&#xff08;我的模板配置文件夹叫做 a-custom&#xff09;放入该文件夹下的 templates 文件夹内&am…

【欧拉函数变化】[SDOI2012] Longge 的问题

求和 gcd(i,j) 转化为 k*gcd(i/k,j/k) 1 (i,j%k 0)。 本质就是利用互质转化到了欧拉函数的领域上。 [SDOI2012] Longge 的问题 - 洛谷 转自小粉兔 #include<bits/stdc.h> #define int long long using namespace std; unordered_map<int,int>pd; long long…

天润融通发布微藤智能体平台,中国客户联络正式进入“智能体时代”

9月19日&#xff0c;以“云启智跃&#xff0c;产业蝶变”为主题的2024云栖大会在杭州正式开幕。大会持续三天&#xff0c;聚焦AI时代的技术升级与实践应用&#xff0c;设有三大主论坛、400多个分论坛&#xff0c;并开放4万平方米的智能科技展区&#xff0c;展示全球百余款AI应用…

20_BERT微调训练

1.导包 import json #通过路径加载预训练模型 import os import torch from torch import nn import dltools2.加载预训练模型BERT函数 def load_pretrained_model(pretrained_model, num_hiddens, ffn_num_hiddens,num_heads, num_layers, dropout, max_len, devices):dat…

David律所代理Jose Martin幽默水果版权首发维权,尚未TRO

案件基本情况&#xff1a;起诉时间&#xff1a;2024/9/18案件号&#xff1a;2024-cv-08484原告&#xff1a;Jose Martin原告律所&#xff1a;David起诉地&#xff1a;伊利诺伊州北部法院涉案商标/版权&#xff1a;原告品牌简介&#xff1a;西班牙的卓越艺术家Jose Martin以他非…

linux 下80端口被占用

先看报错&#xff1a; [rootlocalhost ~]# nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address alread…

专业版【命令行下载离线安装包及依赖】

UOS统信专业版命令行下载应用商店应用软件的离线安装包及依赖的相关信息。 文章目录 应用场景一、解决方案1.首先需要确认待下载应用的软件包名称。打开应用商店&#xff0c;找到想下载的应用&#xff0c;这里以【企业微信】为例&#xff1a;2.点击应用版本右侧切换按钮&#x…

docker - 迁移和备份

文章目录 1、docker commit1.1、查询 容器 docker ps1.2、docker commit zookeeper zookeeper:3.4.13 2、docker save -o2.1、宿主机 切换到 /opt 目录下2.2、将镜像保存到 宿主机/opt目录下 3、docker load -i 对某一个容器修改完毕以后&#xff0c;我们可以把最新的容器部署到…

三、LLM应用开发准备工作

LLM应用开发准备工作 开发基础开发工具大模型kxswkey的配置与使用工具推荐结语 开发基础 最好具备一定的Python开发基础&#xff0c;不需要特别深 如果不具备&#xff0c;可以先学习一下基础知识&#xff08;概念&#xff09;&#xff0c;比如Python环境管理、包管理与使用、基…

数据结构(Day20)

一、学习内容 树形结构 概念 (1树是n个元素的有限集合 n0 空树 n>0 有且只有一个根结点 其他的结点 互不相交的子集 树具有递归性&#xff1a;树中有树 树的术语 (结点&#xff1a;树的数据元素 (根结点&#xff1a; 唯一的 没有前驱(没有双亲) 叶子&#xff1a;终端结…

One API本地开发环境搭建

One API本地开发环境搭建 简介 摘要 &#xff1a; 本文介绍如何在本地搭建 One API 开发环境&#xff0c;包括安装 Go 语言和 GoLand IDE&#xff0c;以及如何新建项目和配置数据库信息。通过简明的步骤说明&#xff0c;帮助开发者快速完成基本的开发环境配置&#xff0c;方…

Vue2/3封装按钮Loding

Vue2/3封装按钮Loding 1、Vue3 基于如下平常代码&#xff0c;我们可以发现&#xff0c;两个按钮逻辑中&#xff0c;有很多重复代码(开启loding&#xff0c;关闭loding)&#xff0c;并且正式项目中会有很多按钮会发送请求 <template><el-button click"test"…

漫步者开放式耳机怎么样值得买吗?南卡、漫步者、QCY热门开放式耳机实测推荐!

​开放式耳机目前已经成为蓝牙耳机中的顶流&#xff0c;网上很多人都在讨论这类耳机&#xff0c;这类耳机的优点在于高佩戴舒适度以及在听歌时可以感知环境&#xff0c;更加安全&#xff0c;因此作为一名数码博主&#xff0c;今天也回应粉丝的要求&#xff0c;买了三款开放式耳…

客户流失、裁员、增长放缓后,PayPal股价重新“起飞”的时机已到来

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;PayPal的股价已经从2023年的最低点上涨了45%以上。 &#xff08;2&#xff09;随着增长放缓&#xff0c;该公司正在制定一系列扭亏为盈的战略。 &#xff08;3&#xff09;与主要竞争对手相比&#xff0c;它的估值相对偏…

气压高度加误差的两种方法(直接添加 vs 换算到气压误差),附MATLAB程序

在已知高度真实值时,如果需要计算此高度下的气压计误差,可考虑本文所述的两种方法 气压高度 气压与高度之间的关系可以用大气压的垂直变化来描述。随着高度的增加,气压通常会下降。这是因为空气的密度在高度增加时减少,导致上方空气柱对下方空气施加的压力减小。 主要关系…