Python+Pytest框架,“api_key.py文件怎么编写“?

embedded/2024/9/23 22:18:27/

1、在"api_keyword"文件夹下新增"api_key.py"

python">import allure
import requests
import json
import jsonpath
from deepdiff import DeepDifffrom config import *@allure.title("测试用例执行")
class ApiKey:@allure.step(">>>:开始发送GET请求")def get(self, url, params=None, **kwargs):"""发送get请求:param url:接口请求url:param params:拼接URL的参数:param kwargs:其他的参数:return:返回请求后的数据"""return requests.get(url=url, params=params, **kwargs)@allure.step(">>>:开始发送POST请求")def post(self, url, data=None, json=None, **kwargs):"""发送post请求:param url:接口请求url:param data:data的请求数据:param json:json的请求数据:param kwargs:其他的参数:return:返回请求后的数据"""res = requests.post(url=url, data=data, json=json, **kwargs)print(">>>:响应数据为:", res.json())return res@allure.step(">>>:开始提取JsonPath数据")def get_text(self, response, key):"""提取Json当中的某个值:param response:需要提取的json数据,比如{"msg":"登录成功"}:param key:对应要提取的jsonpath:return:返回提取数据之后的第一个值"""if isinstance(response, str):# 是字符串,就让它转一下类型response = json.loads(response)# print(">>>:开始提取JsonPath数据")value_list = jsonpath.jsonpath(response, key)print(">>>:提取的数据为:", value_list[0])return value_list[0]@allure.step(">>>:开始提取数据库数据")def get_sqlData(self,sqlValue):""":param sqlValue: sql,返回的数据是一个元祖"""import pymysql# 1.配置数据库连接信息并连接connection = pymysql.connect(host=DB_HOST,port=DB_PORT,user=DB_USER,password=DB_PASSWORD,db=DB_NAME)# 2.创建游标对象,使用它进行操作cursor = connection.cursor()# 3.sql语句# sqlValue= 'select username from user where id="13";'# 4.使用游标对象去执行操作sqlcursor.execute(sqlValue)# 5.得到结果集的下一行result = cursor.fetchone()print(result)# 6.关闭数据库连接cursor.close()return result[0]@allure.step(">>>:响应数据全量对比")def jsonDeepDiff(self, json1, json2, **other):"""对比json数据的一致性:param json1:期望结果:param json2:实际结果:param other:你想要写的对应的规则:return:"""res = DeepDiff(json1, json2, **other)if res == {}:return Trueelse:return False

1、发送GET请求

2、发送POST请求

3、提取JsonPath数据

4、提取数据库数据

5、响应数据全量对比


http://www.ppmy.cn/embedded/114723.html

相关文章

MySQL学习(视图总结)

文章目录 MySQL的视图视图基本操作创建视图修改视图 练习 MySQL的视图 视图是虚拟的表,是从数据库中一个或多个表中导出来的表,作用是可以隐藏一些数据,也可以将一些复杂的查询结果做成视图。数据库只保存视图的定义,而不保存视图…

PostgreSQL的流复制断点续传

PostgreSQL的流复制断点续传 PostgreSQL的流复制(Streaming Replication)具有断点续传的能力,这意味着当主节点和备用节点之间的连接由于网络故障等原因中断后,备用节点会自动从中断点继续接收WAL(Write-Ahead Loggin…

策略路由与路由策略的区别

🐣个人主页 可惜已不在 🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 一、主体不同 二、方式不同 三、规则不同 四、定义和基本概念 一、主体不同 1、路由策略:是为了改…

Python 二级考试

易错点 电脑基础知识 定义学生关系模式如下:Student (S#, Sn, Ssex,class,monitorS#)(其属性分别为学号、学生名、性别、班级和班长学号) 在关系模式中,如果…

nvm切换版本失败踩坑

首先新建vue3项目,提示错误,搜索得知是npm版本不支持现在的node版本,于是切换node版本即可 去官网下载了nvm,用于管理node版本 nvm安装 安装后,开始下载所需要的node版本,使用nvm use 进行切换,…

详解c++:new和delete

文章目录 前言一、new和mallocnew的用法(爽点)自动构造 delete和freedelete的用法(爽点) 提醒 前言 提示:这里可以添加本文要记录的大概内容: 在C中,new 和 delete 是两个非常重要的操作符&am…

Oracle 数据库常用命令与操作指南

目录 授权用户操作权限使用最高权限登录 Oracle 数据库解锁被锁定的账户修改用户密码删除用户授予权限总结 记忆已更新 我们可以补充一些常用的 Oracle 数据库命令,包括修改用户密码、删除用户和授予权限等操作。下面是扩展后的博客内容,增加了这些实…

npm切换为淘宝镜像源

要切换 npm 的镜像源,您可以使用以下几种方法: 前言 然而,由于众所周知的网络环境问题,直接使用npm官方源下载依赖包时,常常会遇到速度慢甚至下载失败的情况。因此,使用更稳定、更快速的国内镜像源就显得尤…