0


接口自动化【五】(HandleRequests类的封装,及postman上下接口依赖的初步认识)

文章目录

  • 三、postman的全局变量机制

前言

所有的封装就是一种思想,这种思想能不能想到,其实跟写代码建立思维有很大的关系。

下面也是我学到的一种思想,其中对每个函数有解读。以及易错点的总结。

实际的运行我也成功了。


一、封装发送请求的操作

1、目的:我们封装一个类,以后发送请求就只调用这一个类就行了,不用再去写太多的重复的代码。

(1)关于http请求的日志,都只在当前文件中写一次。所有的接口用例调的时候,就不用再写日志了

(2)不同的接口,都可以调统一的http请求方法,请求参数一致,只不过有的传有的不传。

(3)其它处理

2、封装思想的讲解

(1)在tool文件夹中建立一个new_handlerequests.py的文件

(2)在这个HandleRequests类中主要处理几件事情

第一:发送正常的请求

第二:在内部处理token

第三:在内部处理files

第四:在内部处理请求头的添加

下面就一一讲解三个函数:

这里定义成私有方法的目的是拿给自己内部使用,不会对外开放这个函数。__pre_header函数主要是用来处理请求头,在这里是专门对token进行处理。

__pre_header函数:

如果函数接收了token字段值,接下来进入if判断语句,如果token有值(不为空),那么就会和bearer字段做拼接,拼接完了之后的值是"Authorization"字段的值。然后把这个新的请求头添加到

__init__函数下面固定的headers中去。

在这里面使用了logger.info这个打印日志的函数,其实做的目的就是不管我的请求头是否添加到self.headers这个字典里面,我都想打印出来看看这个字典里面的东西。

__pre_files函数:

这个函数的作用就是为了处理上传文件。

首先是判断这个传进来的files字段值是否有值和是否是字符串。

这里的 image_name, image_path两个变量分别由后面的函数返回对应的值。一个返回图片名称,一个返回图片路径。

其中使用了随机函数random.randint(),目的是从装图片的文件夹里面随机拿一张图片。

其中的Template是个类,下面使用了这个类里面的substitute()函数,目的是替换从Excel表格中读取的files字段中的一些要替换的值。

这里插入了一条open()函数,因为图片的上传是以二进制形式,所以必须做这一步操作。

这个地方使用eval的原因是因为从Excel中读取的files字段是字符串,但是在request请求中,发送的是字典,所以转换。

return files:因为写在了if判断语句的外面,所以这一步的作用是无论files是不是符合if条件,都有返回值

** __pre_json函数:**

这个函数是处理json字符串的,如果是字符串就要转化成字典的格式。

因为从Excel表格中读取出来的数据,都是字符串类型,实际上request请求中所要的参数类型是字典。因此这里需要用eval()函数进行转一下。

eval()函数的作用就是脱去外层(简称:脱衣服函数)。

下面是代码展示****

目录结构层级

(1)Excel表格中的数据(上传图片的Excel)

(2)Excel表格中的数据(登录的Excel)

sitting文件中的代码

new_handlerequests.py文件中的代码

(注意这里面的一些其他模块的函数引用需要结合另一个文件),这里的代码是提供一种思想。

test_new_upload_image.py文件中的代码

(这里面就是直接使用自己封装好HandleRequests类中的函数)

test_new_login.py文件中的代码

** test_login_success1函数中加入断言后的效果:**

二、迷惑的知识点

关于if条件的

1、当使用if和else时:

2、只使用if不使用else时:

这两种写法,对于代码运行的结果是一样的。含义其实也是一样的。第二种方式相当于第一种的简写,但是第二种更容易迷惑人。

之前在**__per_files函数 里面出错了:**

这个地方 return new_files 的意思是当满足了if条件时候,if语句执行完了之后,会把new_files返回出来。

那么就有个问题,如果不执行if条件语句,那么这返回就会报错,因为并没有这个new_files字段。

因此最好就用if....else语句保险点。

三、postman的全局变量机制

这里所说的全局变量机制,也是由下一个接口依赖上一个接口的数据,需要提取出上一个接口中的某些值,所以引入了全局变量的机制,之前我在做这种依赖的接口,虽然不是用的全局变量,但是用了普通的环境变量。

接口自动化【三】(接口依赖之上传图片;Template 模块用法)_撑着海浪游太空的博客-CSDN博客

那么这一章节的内容,需要到下一个章节去学习。jsonpath的使用。


总结

这章讲解了HandleRequests类的封装以及对封装函数的讲解,中间踩坑的总结,和对postman做上下接口的依赖进行点播。


本文转载自: https://blog.csdn.net/weixin_45272371/article/details/130730182
版权归原作者 宏基骑士 所有, 如有侵权,请联系我们删除。

“接口自动化【五】(HandleRequests类的封装,及postman上下接口依赖的初步认识)”的评论:

还没有评论