接口自动化【三】(接口依赖之上传图片;Template 模块用法)

news2024/11/15 15:42:55

  • 前言

  • 一、后台上传图片接口

  • 二、用postman来做这种有依赖的接口

  • 三、使用 Template 模块进行字符串的替换

  • 四、使用 Template 模块进行字符串的替换(针对于Excel表格中的数据)

  • 总结


前言

 

本章中,对接口的依赖做了阐述,后台上传图片。以及使用Template模块进行字符串的替换。

一步一步的加深,对单独线性和对一个功能封装代码的进阶阐述。


提示:以下是部分知识点的补充,做一个参考。截图中的备注信息也是重点。

一、后台上传图片接口

我们知道上传图片,肯定是在账号登录了的情况下才能够进行操作。那么在上传图片里面,我们首先会考虑到拿到登录后的某个东西。才能够带着这个东西进行操作,如果没有这个东西,那么就相当于识别不了是否是登录状态。这个东西就是我们平时说的token。这个token就相当于是一把钥匙。

1) 先登录,拿到鉴权。

2)带上token
   请求头里:Authorization  bearer52062948-9cd9-4455-a5e7-222caf9a045d


   
上传图片地址:http://mall.lemonban.com:8108/admin/file/upload/img
请求方式:post
content-type:multipart/form-data


上传图片成功之后,数据库:tz_attach_file

注意:这个说的这个数据库里,是指在数据库里面这个表当中有这张图片了。对比可以到数据库去看看。思想是:查询到这张图片,进行键值比对。

 这里标红的地方就是最重要的地方。

 注意点1:

这里的  "Authorization": "bearer"+token  这个token是从登陆的那个步骤提取出来的,需要与bearer做组合。

组合方式可以有两种写法:

(1)headers1 = {"Authorization": f"bearer{token}"}

(2)headers1 = {"Authorization": "bearer"+token}

 一个用正常的字符拼接;一个用 f 表达式

注意点2:

 我们从这个上传图片接口的请求里面,也可以看出这个name也是file

Python中files字段中的三种上传图片的方式:

二、用postman来做这种有依赖的接口

依赖:指上一个接口的部分数据,我们要拿到下一个接口中使用。(也可以说下一个接口,要用到上一个接口返回的部分数据)

这里有个很好的工具:Apipost

下载中心-Apipost-中文版接口调试与文档管理工具

1、下面使用Apipost做接口测试:

 

 

 

2、用Apipost一个更简单的方法:

注意点:

(1)在第二个接口里面直接把鉴权的token放在专门放鉴权的地方,不用放在请求头里面。

(2)请求头里面不放Content_Type

(3)body里面不用指明内容类型

 

 

三、使用 Template 模块进行字符串的替换

string的Template模块用法:


1、from string import Template


2、tempTemplate = Template(含有要替换的变量) 要替换的变量前面加$
   {"file": ("$img_name", open("$img_path", "rb"), "image/png")}

3、tempTemplate.substitute(要替换的变量名=替换值,要替换的变量名=替换值)  
   new_str =tempTemplate.substitute(img_name=img_name,img_path=img_path)

注意:

举例:

使用了字典的取值方式进行值的替换

四、使用 Template 模块进行字符串的替换(针对于Excel表格中的数据)

对与这种复杂的数据我们先一步一步的实现。我们之前已经讲解了Template的用法。那么要替换Excel表格里面的数据,首先我们得拿到表格中的要替换的数据(字符串)。

我们先从最简单的替换入手:

1、使用py文件里面的数据,后面我们再使用Excel表格中的数据。

 

 

2、使用Excel表格中的数据

(首先我们先要从表格中拿到数据)

3、把单个的代码装到函数中

这里也就是把零散的步骤,装到函数中

4、现在使用类来实现这个功能

5、现在使用unitetest框架来实现

6、使用ddt和unitetest框架结合

 

补充点额外的知识:

我们平时使用Excel表格中的数据,其实拿出来后就是一个列表中装了一个字典。

对一个列表进行for循环,那么拿出来的数据就是一个字典。

举例:


总结

这里面设计到很多细节的点,需要逐步一个一个知识点的突破,从最简单的框架入手,再依次复杂的进入多个知识点的融合。

有点繁琐,也容易昏。我整理这个知识点,耗费了我很多时间。到后期会花费更多的时间。但是对于自己建立自己的框架体系有很大的作用。

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

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

相关文章

怎么用Elai智能数字人来直播带货?

随着直播带货的火爆,越来越多的商家和品牌想要借助这一新兴的营销方式来提升销量和品牌影响力。但是,直播带货也面临着一些挑战,比如真人主播的成本高、稳定性差、风险大等。那么,有没有一种更好的解决方案呢?Elai智能…

leetcode重点题目分类别记录(三)动态规划深入

文章目录 动态规划背包问题01背包抽象出求解目标尝试进程子问题拆分基本情况根据拆分过程定义dp数组与转移方程遍历顺序与状态压缩模板归纳题目应用变种提升组合问题多维01背包有特殊限制的01背包 完全背包尝试进行子问题拆分转移方程题目应用变种提升-求组合/排列数 打家劫舍变…

【案例教程】CMIP6数据处理方法与典型案例分析实践技术

气候变化关系到农业、生态系统、社会经济和人类生存与发展,是当今世界关注的重点问题之一。IPCC(Intergovernmental Panel on Climate Change)第6次评估报告指出,自 20 世纪 50 年代以来,从全球平均气温和海温升高、大…

LightGBM^v^

LightGBM LightGBM(Light Gradient Boosting Machine)是一个基于梯度提升决策树(GBDT)的高效机器学习框架。它是由微软公司开发的,旨在提供更快、更高效的训练和预测性能。LightGBM在许多数据科学竞赛中都表现出色&am…

什么品牌的蓝牙耳机通话音质最好?通话音质好的蓝牙耳机

使用蓝牙耳机,无需取下耳机即可接听电话,来电时只需按一个按钮即可开始讲话,可以说是十分方便,为了帮助您找到可以帮助您拨打和接听电话的耳机,我们收集了适合通话的蓝牙耳机。 一、南卡小音舱Lite2蓝牙耳机 动圈单元…

亚马逊巴西站对中国商家正式开放试运营,如何快速提升销量

近日,亚马逊全球开店宣布,亚马逊巴西站对中国商家正式开放试运营,在亚马逊巴西站试运营期间,亚马逊卖家是能获得很多扶持的,比如说大量额外引流资源支持,营销方面,巴西卖家是可以使用优惠券&…

Three.js教程:透视投影相机

推荐:将NSDT场景编辑器加入你的3D工具链。 其他系列工具:NSDT简石数字孪生 Threejs如果想把三维场景Scene渲染到web网页上,还需要定义一个虚拟相机Camera,就像你生活中想获得一张照片,需要一台用来拍照的相机。 透视…

恶意软件及反病毒的一些知识

目录标题 什么是恶意软件?恶意软件的特征恶意软件可以分为几类?按照传播方式分类按照功能分类 恶意软件的免杀技术有哪些?文件免杀内存免杀行为免杀 反病毒技术有哪些?单击反病毒网关反病毒 反病毒网关的工作原理反病毒网关的工作…

OpenText Exceed TurboX (ETX) 安全功能介绍

OpenText Exceed TurboX (ETX) 安全功能介绍 将所有重要的知识产权(IP )相关数据保存在受良好保护的中央数据中心是保护 IP 的最佳做法。安全的远程访问是保护知识产权的关键。 所有数据流量均采用最新标准加密技术进行加密ETX 整合多种身份验证系统ET…

【代码随想录】刷题Day3

1.链表删除 203. 移除链表元素 循环删除 class Solution { public:ListNode* removeElements(ListNode* head, int val) {if(headnullptr)return head;ListNode* prevnullptr;ListNode* curhead;while(cur){if(prevnullptr&&cur->valval){ListNode* tmp cur;curcu…

对项目总体把控不足,项目经理应该怎么办?

公司现状:项目人员紧缺,只有两人了解此项目技术细节,其中一个不常驻现场,另一个是执行项目经理李伟。 项目经理王博是公司元老,同时负责多个项目,工作比较忙,不常驻现场,没有参加过…

【Web服务】HTTP和DNS重要知识

304状态码 HTTP状态码中的304状态码表示"未修改",通常在客户端发起了一个带有If-Modified-Since头部的GET请求时会得到这个响应。服务器通过比较If-Modified-Since头部指定的时间戳和资源的最后修改时间来判断资源是否被修改过,如果没有修改则…

Vue(十七):利用 html2canvas、JsPDF 依赖实现打印功能

效果 主程序 <!-- 打印区域 --> <el-container ref"PdfPage"><!-- 过滤打印按钮 --><el-button type"primary" data-html2canvas-ignoretrue click"printPage">打印</el-button><el-main><!-- 滚动区域…

AI绘画——Three Delicacy Wonton (三餡馄饨Mix)模型

目录 怎么做三鲜馄饨Mix&#xff1a; 描述&#xff1a; 版本&#xff1a; 使用说明&#xff1a; 实操演示&#xff08;多图预警&#xff09; Picture One Picture Two Picture Three 怎么做三鲜馄饨Mix&#xff1a; 切一点金弘道 &#xff08;https://civitai.com/mo…

无人机遥感影像应用

目录 一、无人机遥感技术 二、无人机遥感影像数据生产 三、无人机遥感影像应用 一、无人机遥感技术 1.无人机遥感系统组成 1.1无人机遥感系统组成—无人机平台 1.2无人机遥感系统组成—传感器 2.无人机遥感技术的特点 高时效性&#xff1a;准确并快速获取地表数据 高分辨率…

加密算法在链接防抓取和数据防篡改应用

写在前 对工作中遇到的加密算法算法进行总结和思考&#xff0c;分析不同加密算法优缺点和对应解决问题场景&#xff0c;思考进一步可改进点。 场景1、加密算法在链接防止抓取中应用 客户端和服务器端对(appverisionurl盐offset)使用加密规则进行加密&#xff0c;对传输数据进…

bing搜索技巧

“” 双引号表示完全匹配&#xff0c;结果中必须出现与搜索文本完全相同的内容。 2 A -B 搜索包含A但不包含B的结果&#xff08;请注意A后面的空格不能省略&#xff09; 3 filetype 搜索对应类型的文件。例如&#xff1a;中国防火墙 filetype:ppt&#xff0c;即为搜索包含主题…

Hive概论、架构和基本操作

Hive是一个构建在Hadoop上的数据仓库框架&#xff0c;最初&#xff0c;Hive是由Facebook开发&#xff0c;后台移交由Apache软件基金会开发&#xff0c;并做为一个Apache开源项目。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&a…

【Maven 入门】第三章、Maven POM

一、什么是 Maven POM&#xff1f; POM 是 Maven 中最重要的概念之一&#xff0c;它描述了一个 Maven 项目的基本信息和依赖关系。简单来说&#xff0c;POM 就是一个 XML 文件&#xff0c;其中包含了以下内容&#xff1a; 项目的基本信息&#xff0c;如名称、版本号、描述等。…

超详细Redis入门教程——Redis 的安装与配置

前言 本文小新为大家带来 超详细Redis入门教程——Redis 的安装与配置 相关知识&#xff0c;具体内容包括Redis 的安装&#xff0c;连接前的配置&#xff0c;Redis 客户端分类&#xff08;包括&#xff1a;命令行客户端&#xff0c;图形界面客户端&#xff0c;Java 代码客户端&…