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

  • 前言

  • 一、后台上传图片接口

  • 二、用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

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

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

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

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

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

 注意点1:

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

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

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

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

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

注意点2:

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

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

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

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

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

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

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

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

这里有个很好的工具:Apipost

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

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

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

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

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

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

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

注意点:

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

(2)请求头里面不放Content_Type

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

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

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

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

三、使用 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 模块用法)_第15张图片

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

举例:

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

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

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

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

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

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

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

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

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

 

2、使用Excel表格中的数据

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

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

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

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

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

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

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

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

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

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

6、使用ddt和unitetest框架结合

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

 

补充点额外的知识:

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

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

举例:

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


总结

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

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

你可能感兴趣的:(python接口测试,python,pandas,开发语言)