使用postman做简单接口测试

 目录:

一、认识postman

1.总体结构

2.请求和响应

3.查看请求的params,查看请求头、请求体

4.body的几种参数上传

二、常用操作

1.如何保存请求

2.如何导入请求数据

三、进阶

1.如何使用环境变量

2.断言

3.设置全局变量:设置环境变量/全局变量

四、runner批量运行

-------------------------------------

一、认识postman

1.总体结构

左边栏:sidebar :history 历史请求;collections:保存下来的请求。

右侧:builder :显示请求具体内容。可添加新请求。

 

2.请求和响应

 3.查看请求的params,查看请求头、请求体

 

4.body的几种参数上传

(1)form-data

即multipart/form-data,它将表单的数据组织成Key-Value形式,用分隔符(可任意设置)处理成一条消息。

既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;

由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

2)x-www-form-urlencoded

即application/x-www-from-urlencoded,将表单内的数据转换为Key-Value。如,name=Lily&age = 23

(3)raw

可以上传任意格式的【文本】,可以上传text、json、xml、html等

(4)binary

即Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件。由于没有键值,所以一次只能上传一个文件。

 

注:

multipart/form-data与x-www-form-urlencoded区别

multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;当设置multipart/form-data,http会忽略 contentType 属性。

x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。不能用于文件上传。不同的field是用&区分开的。

 

二、常用操作

1.如何保存请求。Request Name 是保存的请求名字。All collections 显示所有已经创建好的收藏夹。Create collection可以新建一个收藏夹。

2.如何导入请求数据。

有四种方式。常用的是Import File 、Paste Raw Text

 

 

三、进阶

1.如何使用环境变量。设置--Manage Environment,可以新增一个环境变量,点击其中一个环境,可以编辑添加字段,来设置该环境中的变量。

 

 

使用环境变量中的参数,格式是{{}},如{{host}} ,这样可以只切换不同的环境变量,来达到不同环境测试同一个接口的目的。

2.断言

1).检查response的body中是否包含字符串

tests["测试点"] = responseBody.has("需要查找的字符串");

注:当json中value为integer时,需要查找的值可以不带双引号,

tests["xxx"]xxx代表的是你测试点的名字,可以是中文

tests["xxx"]xxx在一个脚本中如果出现多次,那么只执行第一个,所以尽量不要重复

 

2).检查Response Body是否等于字符串

tests["测试点"] = responseBody === "Response Body返回的内容";

这个可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性,

接口返回:"hello"

tests["返回为hello"] = responseBody === "hello";

tests["返回为hello"] = responseBody === "he";

第二个会返回False,必须完全匹配

 

3检查response body中是否包含某个string

tests["Body matches string"] = responseBody.has("string_you_want_to_search");

 

4).检查应时间

tests["Response time 小于200毫秒"] = responseTime > 200;

tests["Response time 大于200毫秒"] = responseTime < 200;

5).检查状态码

这个是检查http请求状态码

tests["Status code is 200"] = responseCode.code === 200;

注:

这里的状态码,跟上面我们用的json里边的"status"不是一回事

 

6).检查json的值

var jsonData = JSON.parse(responseBody);

tests["Your test name"] = jsonData.value === 100;

如:

tests["状态码为301"] = jsonData["status"] == "301";

tests["message"] = jsonData["message"] == "购买商品库存不足";

tests["list"] = jsonData["lists"][0] == "11";

 

7转换XML body为JSON对象

var jsonObject = xml2Json(responseBody);

tests["Body is correct"] = responseBody === "response_body_string";

 

8.测试response Headers中的某个元素是否存在(如:Content-Type)

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 

//getResponseHeader()方法会返回header的值,如果该值存在

或者: 

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");

上面的方法,不区分大小写。下面的方法,要区分大小写。 

 

 

3.设置全局变量:设置环境变量/全局变量

postman.setEnvironmentVariable("key", "value");

postman.setGlobalVariable("key", "value");

 

body中获取

var jsonData =JSON.parse(responseBody);//获取body中返回的所有参数
postman.setEnvironmentVariable("appKey",jsonData.data.appKey);//把返回参数中的keys设置为环境变量

 

从header中获取

var data =postman.getResponsHeader("Access-Token")

postman.setEnvironmentVariable("accessToken",data)

 

 

执行上图请求后,如果环境变量中原来有此字段,则会更新,如果没有此字段,则会新增一条记录。

 在请求中使用{{}}的格式来使用该参数。如{{sessionToken}}

 

 

四、runner 批量运行

可以选择需要测试的集合Collection,Environment可以选择相应的环境变量,iteration处还可以设置迭代次数,Delay设置请求的延迟时间。

 

点击Run按钮后,出现测试结果。

 

 

 

posted @ 2018-01-30 14:39  午后茶香  阅读(365)  评论(0编辑  收藏  举报