pytest接口自动化框架实际应用

一、自动化实现的目标

1、测试用例数据驱动。
2、测试数据和用例分离。
3、每个测试用例拥有专属的测试数据有明确的测试初始状
4、测试用例的执行不依赖其他测试用例执行所产生的数据
5、建立体系化测试数据,进行数据依赖管理,覆盖全部测试分层策略要求的测试类型
6、在api目录下编写每个业务接口的py文件,主要是用来体现“数据来源:可以调用api获取生产数据作为测试数据”

二、框架目录

在这里插入图片描述

三、实现逻辑

在这里插入图片描述
testcase举例:

test_data = read_yaml(os.path.join(get_project_root(), "data", 'u4a', 'create_tenant_data.yml'))@allure.description("验证正常创建租户接口")
@pytest.mark.parametrize("case_data", test_data['case_test_create_tenant_normal'],ids=jmespath.search("case_test_create_tenant_normal[].case_desc", test_data))
def test_create_tenant_normal(login, case_data):# 创建租户resp = create_tenant(login=login, clusterid=user_env('cluster_id'), tenant_name=case_data['tenant_name'],displayName=case_data['tenant_displayname'], owner=user_env('username'))# 查询租户列表存在该租户resp_search = get_tenant_list(login)# 断言# Assert.assert_code(resp.status_code, 200)Assert.assert_body(resp['data']['tenantCreate']['displayName'], case_data['tenant_displayname'])Assert.assert_body(resp['data']['tenantCreate']['name'], case_data['tenant_name'])Assert.assert_contain(jmespath.search("data.tenants[].name", resp_search), case_data['tenant_name'])# 清理delete_tenant(login, tenant_name=case_data['tenant_name'])

data:
在这里插入图片描述

上述例子,获取data中定义的对应数据,,通过数据驱动方式进行挨个请求,方法中引用了在conftest.py中定义的登录获取token的实现方法,请求已经定义好的api,传入必要参数,最后进行相关的断言,最后进行清理,实现了标题一下的自动化实现目标

四、统一入口

可以在这里定义运行哪些用例,或者直接在终端执行也行

# code=utf-8import pytest
from common.environment_manager import user_env, init_envif __name__ == "__main__":# 初始化环境信息init_env("tamp_env_example.yaml")  # 初始化环境变量文件变量pytest.main(['-s', '-q', '../testcases/u4a/test_project_manage.py', '--clean-alluredir', '--alluredir=../allure-reports'])

五、其它问题

1.如何执行的?
通过jenkins来执行
2.产品有多个版本,如何管理的?
通过git设置不同分支来管理对应版本,每个版本的自动化用例,就指定执行哪个版本的

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

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

相关文章

PCB的电气/物理特性检查项目需思考的问题

在PCB设计、制造和装配过程中,为确保产品性能和质量,电子工程师必须进行电气特性和物理特性检查,然而对很多新人来说如何高效进行检查是个难题,所以下面将分别探讨这些检查时需要考虑的问题。 1、PCB电气特性检查项目①导线参数分…

CLIP 图文检索,相似度计算

CLIP 是OpenAI提出的神经网络,它可以从自然语言监督中有效地学习视觉概念。 CLIP 可以应用于任何视觉分类基准,只需提供要识别的视觉类别的名称,类似于 GPT-2 和 GPT-3 的“零样本”功能。 相关paper 用法可以参考github 这里举几个使用CLI…

CTK插件框架学习-信号槽(05)

CTK插件框架学习-事件监听(04)https://mp.csdn.net/mp_blog/creation/editor/137171155 一、主要流程 信号发送者告诉服务要发送的信号信号发送者发送信号信号接收者告诉服务当触发某个订阅的主题时通知槽函数信号接收者处理槽函数信号槽参数类型必须为(const ctk…

[RK3588-Android12] 调试MIPI-双通道-压缩屏(Video Mode/MIPI Dphy 8Lane/DSC 144HZ)

问题描述 被测屏幕:小米Pad6 分辨率:1800X2880 模式:Video Mode/MIPI Dphy 8Lane/DSC 144HZ PPS: 11 00 00 89 30 80 0B 40 03 84 00 14 01 C2 01 C2 02 00 01 F4 00 20 01 AB 00 06 00 0D 05 7A 06 1A 18 00 10 F0 03 0C 20 00 06 0B 0B 33…

linux进程退出之exit与_exit

linux进程退出之exit与_exit _exitexit流程清理函数atexit()函数:on_exit()函数: _exit /* Terminate program execution with the low-order 8 bits of STATUS. */ /** status参数定义了进程的终止状态,父进程可以通过wait(&am…

腾讯云邮件推送功能有哪些?如何有效使用?

腾讯云邮件推送如何设置?怎么用邮件推送做高效营销? 腾讯云作为业界领先的云服务提供商,其邮件推送功能在便捷性、稳定性和安全性上都有着出色的表现。那么,腾讯云邮件推送功能究竟有哪些呢?让AokSend来探个究竟。 腾…

基于SpringBoot+微信小程序的图书借阅管理系统(包运行调试)

介绍 系统介绍 是一套图书借阅管理系统,包括用户小程序以及后台管理系统。 前台商城系统包含用户注册登录、首页门户、图书查询、在线借阅、个人中心、我的信息、我的借阅、押金充值。 后台管理系统包含统计分析、用户管理、分类管理、图书管理、借阅管理、管理员…

HarmonyOS NEXT应用开发之@Observed装饰器和\@ObjectLink装饰器:嵌套类对象属性变化

上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二…

教育信创 | 云轴科技ZStack联合飞腾发布全场景教育信创白皮书

随着数字化时代的到来,教育行业正面临着前所未有的挑战与机遇。为了推动教育行业的数字化转型和信创人才培养,云轴科技ZStack联合飞腾于3月28日正式发布了《教育行业数字化自主创新飞腾生态解决方案白皮书》(简称《教育白皮书》)。…

新能源汽车充电桩主板产业链解析

新能源汽车充电桩主控制板,简称汽车充电桩主板,是充电桩设施的核心部件,主要负责控制充电桩的整体运行和管理充电过程。了解汽车充电桩主板的整体产业链是非常重要的,这可以帮助您更好地了解供应链、采购渠道以及行业发展趋势。 产…

抓住信号如此简单,WeTrade一个指标1分钟轻松解决

在交易中是不是有这样的困惑,没有清晰的计算逻辑还抓不住交易的信号,这样的投资者有福了,今天WeTrade众汇分享一个指标1分钟轻松解决这个困惑。 ROC全称Rate of Change,中文名为变动速度指标或变动率指标,它以百分比的…

Java就近原则和this关键字

Java 中的就近原则和 this 关键字有着密切的关系,特别是在处理成员变量与方法参数同名的情况下。就近原则指的是在同一作用域下,优先使用最近声明的变量或参数。 在 Java 中,如果一个方法的参数与类的成员变量同名,为了明确指示要…

大数据实验四-MapReduce编程实践

一.实验内容 MapReduce编程实践: 使用MapReduce实现多个文本文件中WordCount词频统计功能,实验编写Map处理逻辑、编写Reduce处理逻辑、编写main方法。 二.实验目的 1、通过实验掌握基本的MapReduce编程方法。 2、实现统计HDF…

【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析

一、引言 在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息&#xff…

Vue-Electron配置及踩坑

前言 大道至简。太复杂的教程不看。 本篇将记述我创建好Vue3项目之后,用Electron把页面呈现出来的整个过程。会记录一些踩坑。 首先,Electron官网可以参考。但是它只是作出了一个普通的html结构该如何用Electron呈现出来,vue的配置有一些变…

OC分层渲染详解,OC分层渲染与云渲染区别

​OC分层渲染通过分层处理场景来提升渲染效率,而云渲染借助云服务器进行远程高性能渲染。主要差异在于OC分层渲染优化了本地渲染过程,云渲染则依靠云计算资源执行。 OC分层渲染是指什么 OC分层渲染,即Object Channel分层渲染,是一…

C语言运算符和表达式——赋值中的自动类型转换(精度损失问题)

目录 自动类型转换 数值精度损失 自动类型转换 在不同类型数据间赋值时,会发生自动类型转换 *取值范围大的类型 → 取值范围小的类型,通常是不安全的 *数值溢出(Overflow) *反之,一定都是安全的吗?…

fastlio2 给 interactive-slam 保存每帧的点云和每帧的里程计为单独的文件做后端回环优化和手动回环优化

为了给 interactive-slam 提供数据做后端回环优化和手动回环优化,需要保存每帧的点云和每帧的里程计为单独的文件,并且需要保存的名字为ros时间戳。 效果很好,比我自己写的手动回环模块好用 // This is an advanced implementation of the algorithm described in the // fo…

Golang和Java对比

其实我是Javaer转的Golang,我谈谈自己对Java和Golang的体会 我先讲讲我认为Golang的优点 1、Golang是一门新语言,相比于Java,他的生态要小很多,优点很明显,自由度高,学习成本低,能快速拉起一个…

数据结构——二叉树链式结构

目录 前言 1. 二叉树的概念及结构 1.1概念 1.2 特殊的二叉树 1.3 二叉树的性质 1.4 二叉树的存储结构 2. 二叉树链式结构实现 2.1 手动创建二叉树 2.2 二叉树的遍历 2.2.1 前序、中序和后序遍历 2.2.2 层序遍历 2.3 节点个数以及高度 2.3.1 节点个数 2.3.2 求二叉…