10.接口自动化测试学习-Pytest框架(2)

1.mark标签

如果在每一个模块,每一个类,每一个方法和用例之前都加上mark标签,那么在pytest运行时就可以只运行带有该mark标签的模块、类、接口。

这样可以方便我们执行自动化时,自主选择执行全部用例、某个模块用例、某个流程用例

2.-m 选择对应的标签

一个:'-m','lesson_add(标签名)'
多个:'-m','lesson_add or lesson_list(标签名)'
排除法:'-m','not lesson_add(标签名)'
排除法多个:'-m','not (lesson_add or lesson_list(标签名))'

eg:只执行shop_list接口的相关用例

import pytest,allure,os
from libs.login import Login
from utils.handle_excel import get_excel_data
from utils.handle_path import report_path
from utils.handle_path import data_path
from common.baseApi import BaseAssert
#TestLogin继承BaseAssertclass TestShop(BaseAssert):@pytest.mark.parametrize('inBody,expData', get_excel_data('商铺模块', 'Listshop','请求参数','响应预期结果'))@pytest.mark.shop_listdef test_shop_list(self,inBody,expData,shop_init):#shop_init初始化操作# 1.调用业务层封装的接口代码res=shop_init.query(inBody)# 2.断言实际返回结果与预期结果self.define_assert(res['code'],expData['code'])if __name__ == '__main__':pytest.main([__file__,'-sv','-m','shop_list','--alluredir',report_path,'--clean-alluredir'])os.system(f'allure serve {report_path}')

如果出现如下图的警告,说明我们自己取得标签名系统不承认,则需要在ini文件中进行配置,在pycharm中安装ini插件
直接写mark标签,会有警告

pytest.ini—去除警告

[pytest]
markers=login: Run login caseshop: Run shop caseshop_list:Run shop_list caseshop_update:Run shop_update case

3.pytest其他用法

-k:匹配用例名称

pytest -k shop #带有shop的接口用例都会执行
  • 匹配:可全名,也可以模糊
    若有lesson1.py lesson2.py
  • pytest -k lesson
    会运行两个文件

-v:节点(多层化)

pytest -v test_shop.py::TestShop::test_shop_list
  • ::代表层级,上述命令表示执行test_shop模块下的TestShop类里的test_shop_list中的全部用例
  • 示例:test_lesson.py::TestLesson::test_lesson_add
  • pytest -v test_lesson.py::TestLesson::test_lesson_add

-sq:简化打印信息

  • -s:输出打印
  • -q:简化打印信息

跳过/条件跳过

  • 当功能未实现、功能阻塞等因素导致一些用例暂时不能执行,就可以金属跳过skip用例,相当于注释的效果
  • 写法应用
import pytest,allure,os
from common.baseApi import BaseAssert@pytest.mark.skip(reason='该模块暂时不要运行')
class TestShop(BaseAssert):@pytest.mark.parametrize('inBody,expData', get_excel_data('商铺模块', 'Listshop','请求参数','响应预期结果'))def test_shop_list(self,inBody,expData,shop_init):#shop_init初始化操作# 1.调用业务层封装的接口代码res=shop_init.query(inBody)# 2.断言实际返回结果与预期结果self.define_assert(res['code'],expData['code'])@pytest.mark.parametrize('inBody,expData', get_excel_data('商铺模块', 'Updateshop','请求参数','响应预期结果'))if __name__ == '__main__':pytest.main([__file__,'-sv','--alluredir',report_path,'--clean-alluredir'])os.system(f'allure serve {report_path}')
  • 有条件的跳过 -skipif,if条件为真,就跳过该用例
    eg:当运行环境为Windows 版本为2.2.2跳过
  • 写法
@pytest.mark.skipif(1==2,reason='条件满足就跳过')

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

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

相关文章

二分查找知识点及练习题

知识点讲解 一、没有相同元素查找 请在一个有序递增数组中(不存在相同元素),采用二分查找,找出值x的位置,如果x在数组中不存在,请输出-1! 输入格式 第一行,一个整数n,代…

家用洗地机买什么牌子的好?四大业内顶尖品牌推荐

家庭清洁一直是必不可少的,但用传统的手动拖地清洁,费时又费力。现在出现了洗地机,确实改变了我们对家庭清洁的看法。它不仅能扫地、拖地,还能吸水,甚至能够自动清洁滚刷解放我们双手,提供高效清洁的同时还…

【Linux系列】 离线安装vnc 可视化桌面

离线安装vnc 可视化桌面 缘下载安装vnc初始化链接 缘 项目需要下载 下载地址: http://mirror.centos.org/centos/7/updates/x86_64/Packages/tigervnc-license-1.8.0-31.el7_9.noarch.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/libXfont2-2.0.…

【Day 6】MySQL 基础

1 MySQL DataBase(DB)是存储和管理数据的仓库 DataBaseManagementSystem(DBMS)数据库管理系统,操纵和管理数据库的大型软件 SOL(Structured QueryLanguage)操作关系型数据库的编程语言&#…

C++/Qt 小知识记录5

工作中遇到的一些小问题,总结的小知识记录:C/Qt 小知识5 Windows下查看端口占用情况C调用Python三方库测试库有没有被加上的测试方法初始化使用Python的env环境,用Py_SetPythonHome设置GDAL相关的,需要把osgeo、rasterio的路径加入…

【iOS开发】(一)2024 从一无所有开始,到ios开发(react Native)

​ 2024 从一无所有开始,到ios开发(react Native) 目录标题 1 工具简介2 基础环境搭建1 安装 brew2 安装 Node.js3 安装 Yarn4 安装 React Native 脚手架 3 ios环境搭建4创建并启动一个app 在这里插入图片描述 1 工具简介 Homebrew (brew)&a…

OpenHarmony实战开发-页面布局检查器ArkUI Inspector使用指导

DevEco Studio内置ArkUI Inspector工具,开发者可以使用ArkUI Inspector,在DevEco Studio上查看应用在真机上的UI显示效果。利用ArkUI Inspector工具,开发者可以快速定位布局问题或其他UI相关问题,同时也可以观察和了解不同组件之间…

Matlab分段微分方程组拟合【案例源码+视频教程】

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之③:数据分析之一(智能报表)

概述 在企业数字化转型的过程中,ERP系统与数据平台作为核心支撑工具,对于提升运营效率、优化决策支持、实现业务流程一体化起着至关重要的作用。然而,智能报表与报表的智能化合并作为其中的重要领域,却往往面临诸多挑战与难点&am…

探索 去中心化的Web3.0

随着区块链技术的日益成熟和普及,Web3(Web 3.0)已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念,更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中,我们将深入探讨Web3技术的核心…

纯js图片上传插件

目录标题 一、效果预览二、使用简单三、完整代码(一)index.html(二)css(三)js四、附带后台上传文件代码 一、效果预览 支持多图片上传,删除、预览。 二、使用简单 导入依赖(需要…

Dart基础语法

Hello Dart Dart 语言与其他许多编程语言一样,以 main 函数作为程序的入口点。以下是一个简单的 "Hello Dart" 程序示例,展示了 Dart 语言的这一特点。 // 标准写法 void main(){print("Hello Dart"); }// 省略写法 main(){print(&…

WebGL绘制和变换三角形

1、绘制多个点 构建三维模型的基本单位是三角形。不管三维模型的形状多么复杂,其基本组成部分都是三角形,只不过复杂的模型由更多的三角形构成而已。 gl.vertexAttrib3f()一次只能向顶点着色器传入一个顶点,而绘制三角形、矩形和立方体等&am…

【网络安全】HTTP协议 — 特点

专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 学习目标​ 一、请求与响应 1.服务器和客户端 二、不保存状态 1.不保存状态的协议 三、资源定位 1.URI(统一资源标识符) 四、请求方法 1.请求方法 五…

如何在window系统中安装Mysql

先简单来说说MySQL是什么? MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 MySQL 由瑞典 MySQL AB 公司开发,目前属于…

多模态模型训练QA

Q:InternLM-XComposer的最新版本把vit的参数量降低了但是效果好了,所以好奇scale up vision encoder的收益大么?还是说重点是一个好的llm? A:结论是二者同步扩大才会起作用。我们试下来结论是llm 7b情况下&#xff0c…

利用AI知识库,优化医保系统售后信息管理流程

在医疗行业中,传统知识库管理虽能整合医疗行业知识,但搜索和管理效率有限,导致医护人员难以高效利用。特别是面对医保系统等复杂系统时,他们常需依赖人工客服或繁琐的电子产品手册解决问题。而HelpLook AI知识库利用AI技术&#x…

中国人民解放军信息支援部队成立

中国人民解放军信息支援部队成立 ----------强化信息化战争能力,维护国家安全 阅读须知: 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或…

基于 Win32 编程,使用 C语言开发一个记事本。

现在 Win32 非常少见,因为太原始了,同时也因为高级语言做应用开发速度更快。但是用 C 语言开发一个 win32 记事本对于理解应用程序运行的内部原理还是很有帮助的,“最基础的就是最有用的”,Windows 编程圣经 《Windows 程序设计》…

HCIP学习笔记

个人学习hcip笔记 供参考 笔记有些乱 之后还会修改完善并添加其他篇幅 OSPF篇 OSPF采用组播方式发送hello包,组播地址为224.0.0.5 相关: 所有节点:224.0.0.1; 所有路由器:224.0.0.2; OSPF DRO发给DR&…