requests接口测试网站_requests接口测试网站

requests接口测试网站_ci_02

requests接口测试网站_requests接口测试网站_03

上图:request(创建请求),collection(创建测试集),environment(创建环境变量),也可以在API看各种案例进行学习。也可以进入下图的postman学习官网,即在postman上点击learn more

requests接口测试网站_ci_04

如何发起一个请求,下面用一个简单的接口请求的例子

requests接口测试网站_json_05

requests接口测试网站_json_06


如下图,接口地址下面的四个线路就是url

requests接口测试网站_json_07


下图,根据自己所使用的http方法来进行选择

requests接口测试网站_requests接口测试网站_08

下图1,先将url粘贴到方框,然后看下图2必填参数

requests接口测试网站_requests接口测试网站_09

requests接口测试网站_ci_10

如下图,parent用来填写参数

requests接口测试网站_ci_11

requests接口测试网站_requests接口测试网站_12

requests接口测试网站_json_13

上图就是我们这个接口请求发送给服务器后,服务器返回给我们对应的响应的信息,参考返回如下图

requests接口测试网站_ci_14

通常进行接口测试的时候,要做的事情,就是基于接口的请求,填写如上图的一系列参数,验证一下返回数据是不是和我们接口预期的功能是一致的,是否得到了正确的响应。

如下图,可以看到有些是非必填的参数,下图2填上city-北京,可以选择性地组合填写

requests接口测试网站_json_15

requests接口测试网站_ci_16

可以看到上图的url为https://v0.yiketianqi.com/api?version=v61&appid=85764448&appsecret=d66C33LY&city=北京,用&连接新参数。

下图:上面的一部分是接口请求面板,Headers(添加接口请求过程中使用的头域),Body当中进行接口参数填写的时候有不同的方式完成参数的携带,body就是完成参数携带的各种各样的方式。pre-request Script(接口发起请求之前执行一些js脚本),Tests是接口请求完成之后可以去执行的脚本。

requests接口测试网站_ci_17

下图为接口返回内容:Body(返回体),cookies(网站返回的cookies),Headers(返回的头域), TestResults(接口请求面板的Tests执行脚本的结果在这儿查看)

requests接口测试网站_json_18

requests接口测试网站_环境变量_19

requests接口测试网站_环境变量_20

现在百度上查询ip,用开发者工具抓取4个数据包如下图

requests接口测试网站_环境变量_21

requests接口测试网站_requests接口测试网站_22

复制上面的URL,在postman创建一个request叫做百度ip接口保存在自己创建的collection Roy

requests接口测试网站_json_23

复制完URL然后发送如下图

requests接口测试网站_json_24

上图对应下图

requests接口测试网站_环境变量_25

下图为本机ip地址查询

requests接口测试网站_json_26

requests接口测试网站_环境变量_27

1. GET 请求
GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上,
所以,GET请求的请求头与请求参数如在接口文档中无特别声明时,可以不填。

requests接口测试网站_json_28

requests接口测试网站_环境变量_29

响应体示例: 响应的格式可以有多种,我这里由于请求的是 百度,so, 响应的是 html ,

一般情况下,我们自定义接口的话是 json格式的响应体

requests接口测试网站_ci_30

requests接口测试网站_环境变量_31

requests接口测试网站_json_32


下图,Raw是原始格式,preview是预览格式,

requests接口测试网站_requests接口测试网站_33

requests接口测试网站_环境变量_34

requests接口测试网站_requests接口测试网站_35

requests接口测试网站_json_36


下图,腾讯课堂,抓取全部评论

requests接口测试网站_requests接口测试网站_37


可以看到如下图1

requests接口测试网站_ci_38

上图按ctrl可以同时选多个(如xhr,js)

如下图四大要素只填写了三个(即选择方法GET,URL,参数信息,没有填写Header,所以会出现下图的错误,但是接口本身能正常工作如上图)

requests接口测试网站_环境变量_39

先定位在请求标头处,如下图

requests接口测试网站_ci_40

上图14个头域需要哪个一般来说测试的时候以接口文档为准。

如下图,成功添加头域referer后接口请求成功

requests接口测试网站_json_41

post接口实战—文件上传与json请求实战

一般来说抓包的时候,遇到最多的post接口就会是登录这样的功能

如下图在一个电商网站www.testing.com.cn:8000上登录时的抓取

requests接口测试网站_json_42

requests接口测试网站_requests接口测试网站_43

如下图,抓到登录信息

requests接口测试网站_ci_44

requests接口测试网站_requests接口测试网站_45


如下图1和2为成功添加以后的正确结果,2是添加头域

requests接口测试网站_json_46

requests接口测试网站_json_47


上图的unicode编码转换为中文为下图

requests接口测试网站_requests接口测试网站_48

下图是直接填写url选择post后的结果

requests接口测试网站_requests接口测试网站_49


PS:msg后面的就是unicode编码,可以转为中文,上图转为中文为下图

requests接口测试网站_json_50

如下图,这次抓包的过程中是看不到response的,因为在这一次的处理流程当中,浏览器会自动完成登录之后的跳转的操作,返回信息在浏览器这一端是被隐藏起来了的。想要更详细的信息用fiddler这些工具抓包。根据自己接口文档当中的描述进行获取。

requests接口测试网站_requests接口测试网站_51

下面是Post的form-data格式

下图为上传头像的抓包

requests接口测试网站_json_52

如下图,request headers内的content-typemultipart/form-data,根据PPT,所以post的body要选form-data,结果如下图2,3(只用一个文件就行如下图1)

requests接口测试网站_json_53

requests接口测试网站_环境变量_54

requests接口测试网站_环境变量_55

如下图,headers不用content-type一样可以得到正确结果

requests接口测试网站_json_56

requests接口测试网站_json_57

下图raw类型就是使用原始的格式进行操作

requests接口测试网站_requests接口测试网站_58

下面为用友云实战

requests接口测试网站_ci_59

requests接口测试网站_requests接口测试网站_60

用友云是一个非常好用的平台,上面提供了很多很多的通用接口,这些接口都有很长时间的适用版,比如下图,要查空气质量指数不可能重新写一个空气质量指数接口,而是用这些开放的云平台提供的接口进行操作,测试的时候就可以用这些接口进行练习。

requests接口测试网站_requests接口测试网站_61

选择一个Post接口,如下图选择购买

requests接口测试网站_ci_62

然后可以获得如下图的apicode

requests接口测试网站_requests接口测试网站_63

requests接口测试网站_ci_64

上图的参数设置相当于接口文档了

下面例子为抓取成都高校信息

requests接口测试网站_json_65


看下面接口文档,有headers要填上面和上面参数必填

requests接口测试网站_json_66

注意如下图1请求图(Post),要填充对应的body,如下图2

requests接口测试网站_环境变量_67

requests接口测试网站_requests接口测试网站_68

注意:上图的size=5实际上是在url后面增加了这一信息(虽然我们不可见),所以我们也可以不写这个参数,直接在url后面改信息。

下面的例子为json格式chuancan

requests接口测试网站_json_69

如果content-type为下图1:application/json,那么body就选择下图2

requests接口测试网站_环境变量_70

requests接口测试网站_json_71

如下面5张图用手机基础信息认证api,参数可以不填写,直接在body里面写

requests接口测试网站_ci_72


requests接口测试网站_requests接口测试网站_73

requests接口测试网站_json_74

requests接口测试网站_ci_75

requests接口测试网站_requests接口测试网站_76

环境变量与全局变量实战

postman进阶功能:变量与断言来完成接口测试过程中需要进行的参数设置以及最后对接口返回信息进行校验的流程。

requests接口测试网站_环境变量_77

正常来说是直接改参数的值进行测试,如下图

requests接口测试网站_requests接口测试网站_78

但是上图红圈参数(value)的值可以进行一个设置,将其保存起来,当我们需要使用的时候,再来调用它。只需要如下图告诉它使用的是一个变量就行,(必须用两个花括号进行前置后置),下图蓝色的G开头为全局变量,E开头为环境变量,下面为系统默认设置好的随机数

requests接口测试网站_json_79

如果想要自己配置,自己先取个变量名如下图,{{cityname}}红是因为这个变量还没有被创建。

requests接口测试网站_环境变量_80

在右上角添加环境变量/全局变量,环境变量在使用的时候,相当于把一系列的数据进行了一个分组,作为了一套使用过程中的环境进行操作。

全局变量是设置单个变量但是postman所有工程都能使用

requests接口测试网站_环境变量_81

requests接口测试网站_环境变量_82

下图添加环境变量

requests接口测试网站_requests接口测试网站_83


下图右上角选环境(自己创建的)

requests接口测试网站_requests接口测试网站_84

requests接口测试网站_环境变量_85

PS:环境变量使用的时候高于全局变量的优先级的。

断言(验证返回结果是否符合预期)

requests接口测试网站_环境变量_86


下图圈起来的为常用操作

requests接口测试网站_json_87

下图为控制台所在

requests接口测试网站_json_88


点击右方的常用操作获得环境变量会自动出现代码pm.environment.get('city'),将其赋给变量city,然后console.log('city')在控制台得到其信息,及下图红圈长沙预期返回信息。(pm代表postman)

requests接口测试网站_json_89


如下图,用set来设置变量,将城市名改为武汉(这个同时会将环境变量的current进行修改)

requests接口测试网站_requests接口测试网站_90

上面的pre-request script脚本用的不多,下面的Tests脚本用的多些

重点:怎么使用postman自动完成对接口返回信息的校验,达到断言的目的。

如下图Tests(接口得到返回信息以后才操作)比pre-requests script(接口请求发起之前进行操作)多出很多内置代码命令。

requests接口测试网站_requests接口测试网站_91


如下图,圈起来的部分是测试用例,即这次断言的名称(可更改),如下图2

requests接口测试网站_requests接口测试网站_92

requests接口测试网站_环境变量_93


上图pm.response.to.have.status(200),即期望获得的状态码是200,如果返回的状态码是200就通过。

除了返回状态码,返回信息当中三大要素,返回码,返回主体,返回头域当中信息。
大部分情况下进行接口测试断言操作时,更多时是校验返回主体(即body)

requests接口测试网站_环境变量_94

如上图,pm.response.text()获得的是下面Body里Raw格式的信息,所以填写的信息要跟raw里面的一样,比如下图城市信息武汉就只能填写raw里面的unicode编码(加双斜杠是为了转义,让斜杠仅仅代码斜杠的意思),这样可以看到下图红圈Test Results校验成功。

requests接口测试网站_json_95


如下图是校验json格式内的city必须是武汉

requests接口测试网站_环境变量_96

上图var jsonData = pm.response.json(),获取返回信息的json格式存储在变量jsonData中,第二行代码的value就是自己想要的字段,这次改成city,如下图

requests接口测试网站_json_97

最常用的是校验json中的某一个字段。

requests接口测试网站_json_98

requests接口测试网站_ci_99

requests接口测试网站_json_100

剩下的模板都是同理,下图为json中有多个中括号情况。

requests接口测试网站_环境变量_101


下面两张图为一个例子

requests接口测试网站_环境变量_102

requests接口测试网站_requests接口测试网站_103

下两张图为一个例子

requests接口测试网站_环境变量_104

requests接口测试网站_ci_105


下面两张图为用for循环获取所有评论

requests接口测试网站_requests接口测试网站_106

requests接口测试网站_ci_107

测试集与数据驱动

上述的测试用例一般来说工作中会有机制将它们合并在一起,一并执行的,批量地运行这五个测试用例,下面就是通过测试集和数据驱动完成对测试用例的管理。

requests接口测试网站_requests接口测试网站_108

下图iterations表示我们在执行测试集当中接口请求的时候需要执行几遍,即循环次数,Delay表示每次接口请求发起之后,下一个接口请求中间是否需要停顿一段时间,Data是数据驱动的实现方式,keep variable values(是否在执行过程中保留对环境变量的修改)

requests接口测试网站_requests接口测试网站_109


requests接口测试网站_环境变量_110

记得修改一下右上角的环境,如下图,run以后会统计所有断言。

requests接口测试网站_ci_111

requests接口测试网站_ci_112

如果想看运行结果的话点一下接口名称就行,如下图

requests接口测试网站_环境变量_113


上图红圈的export results(我们这一次执行之后的结果的json格式)

点击summary出现下图,给出运行的基本结果。

requests接口测试网站_requests接口测试网站_114

通常进行接口测试的时候,一个接口不可能只有一组数据进行测试,

数据驱动

看下图圈起来的data.cityname,就是从数据文件读取相应的数据,数据文件为下图2的Excel,即读出Excel中的北京,上海,成都

requests接口测试网站_ci_115

requests接口测试网站_json_116


下图中的cityname看起来跟以前没区别,实际上也是从上图中读取的

requests接口测试网站_requests接口测试网站_117

postman支持.csv和json这两种文件格式,所以要将Excel转成csv(推荐)或者json的格式,如下图

requests接口测试网站_ci_118

然后如下图,在runner的数据驱动里选择csv文件

requests接口测试网站_requests接口测试网站_119

PS:postman只支持utf-8的格式,Excel在保存的时候使用的是gtk编码,所以需要去调整一下,不然会呈乱码。

下图就是csv,用逗号分隔

requests接口测试网站_ci_120

run之前先预览,可以看到下图preview都正常了

requests接口测试网站_环境变量_121

测试运行结果如下图

requests接口测试网站_requests接口测试网站_122

requests接口测试网站_json_123

requests接口测试网站_json_124

requests接口测试网站_环境变量_125

电商网站cookie操作实战

requests接口测试网站_json_126

requests接口测试网站_requests接口测试网站_127

postman下图这个购物网站,出现下下图,

requests接口测试网站_ci_128

requests接口测试网站_json_129


点击上图红圈cookies,可以看到下图,可以看到红圈(信息来自于),并且自动记录了cookies(下图6个),也可以直接添加cookies。

requests接口测试网站_环境变量_130

如下图,将6个cookie清空以后重新请求,可以获得下图红圈的3个cookie,但是我需要的cookie它是没有的

requests接口测试网站_ci_131

第一种方法是如下图,直接在application中查看cookie,然后全部添加信息(最粗暴的一种方式)

requests接口测试网站_环境变量_132

另一种方法第一步是下图,给你默认的模板。

requests接口测试网站_环境变量_133


requests接口测试网站_ci_134

然后对应地填写上面第3图的name(即上图Cookie_2),value等值

这样加上以后save就如下图

requests接口测试网站_requests接口测试网站_135


然后如下图红圈,重新进行一次发包的操作,正确地请求到了下图篮圈,是我想要的信息,没有手动添加cookie,PHPSESSID之前的发包返回如下2图(cookie清空)

requests接口测试网站_requests接口测试网站_136

requests接口测试网站_ci_137

或者直接添加cookie参数,如下图,不过很长,很繁琐

requests接口测试网站_json_138

正常的接口测试流程当中,一般来说,根据开发接口文档当中的描述,确定哪一些cookie是需要的。

这个例子的PHPSESSID是需要的。

正常流程来说:我们应该先去调用一下登录拿到对应的cookie之后,再来进行后续的购物车的请求。

两种方法:一种直接在头域中加cookie,并且粘贴一长串的value。另一种方法使用postman自带的cookie值,先调用前置接口(即登录接口),拿到cookis之后,后续的接口可以直接在cookie池中使用它保存下来的这些cookie。用这样的方法完成测试。

token与参数传递

requests接口测试网站_requests接口测试网站_139

requests接口测试网站_ci_140

requests接口测试网站_json_141

requests接口测试网站_requests接口测试网站_142

requests接口测试网站_requests接口测试网站_143

requests接口测试网站_requests接口测试网站_144


可以看到上下二图,返回结果一样。

requests接口测试网站_环境变量_145


下图,获取token的值,并且把它存到一个名为testingToken的环境变量中去,然后如下2图,添加环境

requests接口测试网站_json_146

requests接口测试网站_requests接口测试网站_147

send以后查看TestingToken的值可以看到如下图

requests接口测试网站_环境变量_148

requests接口测试网站_环境变量_149

同理下面二图为登录接口

requests接口测试网站_requests接口测试网站_150

requests接口测试网站_requests接口测试网站_151

再往下是另一个接口(获取用户信息,具体查看接口文档,那个网站失效了),就可以直接用环境变量了来填写了,用上一步接口返回的信息传给下一个接口,如下2图

requests接口测试网站_环境变量_152

requests接口测试网站_json_153


断言就如下面接口文档所写。

requests接口测试网站_requests接口测试网站_154

postman持续集成(将postman执行测试集的过程加入到持续流程过程当中)

requests接口测试网站_环境变量_155

requests接口测试网站_requests接口测试网站_156

requests接口测试网站_requests接口测试网站_157

requests接口测试网站_环境变量_158

requests接口测试网站_requests接口测试网站_159

requests接口测试网站_json_160

requests接口测试网站_requests接口测试网站_161

可以用newman run -h来看到每一个参数的使用

requests接口测试网站_json_162

requests接口测试网站_json_163

接下来是定时地对测试脚本进行操作

第一步是生成一个.bat文件,先把cmd命令行里的命令放入自己新建 的txt文档,如下图1,然后将其后缀改为bat如下图2

requests接口测试网站_ci_164

requests接口测试网站_requests接口测试网站_165

点击上图这个bat文件,出现下图(执行完后会自动退出命令行)

requests接口测试网站_环境变量_166

接下来是要给这个脚本设置一个定时功能,首先打开计算机管理-任务计划程序-创建任务

requests接口测试网站_ci_167


如下图在常规里面随便取个名字,然后在触发器里创建一个管理时间的触发器,然后在操作里选择要执行的脚本就行了。

requests接口测试网站_requests接口测试网站_168

requests接口测试网站_requests接口测试网站_169

requests接口测试网站_ci_170

postman不常用功能

requests接口测试网站_requests接口测试网站_171

requests接口测试网站_requests接口测试网站_172