postman接口测试

来源:互联网 发布:单片机处理at指令 编辑:程序博客网 时间:2024/05/21 08:50

之前在工作中利用postman做了接口测试,发现这个东东其实还挺好用的,我个人喜欢总结于是乎有了下面的东西。方便以后查阅或修改。

1.首先postman的安装参及简单介绍考以下的链接:

           http://www.cnblogs.com/mafly/p/postman.html

 2.postman的基本使用:

          postman基本使用

          API自动化测试利器postman

          http://blog.csdn.net/liuchunming033/article/details/51438022

          http://blog.csdn.net/liuchunming033/article/details/51440223

         。。。。。。。资料网上一大堆!!!!

3.上张大图先:

   

到此为止,我也算熟悉了postman是个什么鬼?怎么用了。。。。

4.接口测试项目总结

什么是环境变量?

      在使用api时,您通常会需要不同的设置。例如,您的本地机器上,开发服务器,或生产API。环境使您能够定制请求使用变量。这样你可以很容易地切换不同的设置没有改变你的请求。你不需要担心记住所有这些值一旦邮差。环境可以下载并保存为JSON文件和上传。每个环境是一组键值对。这些可以使用编辑键-值编辑器。关键是变量名。
怎么使用设置好的变量呢?(环境变脸和全局变量)
变量可用于下列表格 {{variableName}}。字符串1 { { variableName } } 1将被替换为相应的值。
例如:
对于一个环境变量url的值“http://localhost”,你将不得不使用 {{url}}在请求URL字段中。 {{url}}将取而代之的是http://localhost当请求被发送。
变量选择:
这些变量都从当前选择的环境变量将提供给你。使用环境选择器选择一个环境:


你可以点击在“眼睛”那个图标(右边的环境选择器)来查看当前活动环境和全局变量的列表。

变量的作用:

环境也有助于你从收集像单独的敏感数据的钥匙和密码。作为一项最佳实践,应该保存所有敏感的值在一个环境和提供一个虚拟环境用户填写。如果你信任的用户,你可以给他你的环境。
变量可以用在以下地方:URL,URL参数,头(名称和值),格式,url-encoded-data,原始数据。
总是会警告——环境和全局变量存储为字符串。如果你对象/数组存储,确保JSON.stringify()他们在存储之前,和JSON.parse()时检索。

什么是全局变量?

全局变量是提供一组总在范围内的变量。你可以有多个环境,一次只能激活一个。但是你只有一个全局变量,他们永远是可用的。除此之外,你可以以同样的方式——使用它们 {{variableName}}.

环境变量和全局变量优先级
如果一个变量的当前活动环境与一个全局变量共享它的名字,环境变量将优先考虑。换句话说,全局变量由环境变量重载,重载的数据变量(只有中可用集合跑步).

动态变量
postman也有几个动态变量,您可以使用在你的请求。这主要是一个实验。更多的功能很快就会被添加。

注意,动态变量不能使用沙箱。你只能在使用它们 {{..}}格式在请求URL /头/身体。

{{$guid}}:添加一个guid v4风格{{$timestamp}}:添加当前时间戳{{$randomInt}}:添加一个随机整数0到1000之间

预设脚本作用是什么?(相当于前置条件吧)

在发起请求之前执行的脚本,例如request body里的那两个random变量,就是每次请求之前临时生成的。

Pre-request和Test用的语言都是JavaScript,Postman在一个沙盒里执行代码,提供给用户的库和函数可以在这里查看。而常用的功能都可以通过右边的Code Snippets实现,点击就可以插入到代码区域。

预设脚本常用功能

可以看到Pre-request里常用的功能就两种,设置环境变量和设置全局变量

这条请求的pre-request就是在注册之前生成一个字符串作为随机用户名。

postman.setEnvironmentVariable("random_username", ("0000" + (Math.random()*Math.pow(36,4) << 0).toString(36)).slice(-4));

其他用法:

还包括在发起请求之前获取当前的时间戳放在参数里:

postman.setEnvironmentVariable("unixtime_now", Math.round(new Date().getTime()/1000));

当然也可以用来生成校验串。总之,在发请求之前需要手动修改的东西,都可以考虑用脚本自动实现。

设置环境变量、全局变量。

环境变量只对于一个接口,另一个接口要自己设置,一般用于获取当前时间戳、生成token值、登录用户。放在发送报文的头部。
全局变量:又叫函数外变量,作用于整个脚本,也就是对于所有接口都有效 。

JSON.stringfy()函数

参考:JSON.parse()和JSON.stringfy()使用介绍

            JSON.stringfy()使用介绍

例子:JSON.stringfy() 简单来说就是把一个对象解析成一个字符串。

var a = {a:1,b:"adsfdsfdsfdsf",c:{ccc:34,d:['23232']}};   定义一个复杂的变量对象postman.setEnvironmentVariable("aaa", JSON.stringify(a));   把这个对象定义成一个环境变量,然后在环境变量设置内就有这个环境变量了。在body的raw下直接使用这个变量就行:"a":{{aaa}}

接口测试具体例子:

Pre-request Script脚本

var id = 2;//代理商账号idvar id_token = "3^O$$gVgGfIgA+iVJr)2SYJ@";...................................var cratives = [{    "id":2,                         "name": "熹妃传IOS创意02",   //创意名称及描述    "size":"848*480",            //意尺寸(格式:宽x高 或 宽*高 或 宽X高),必须与创意的尺寸匹配,否则会影响投放!    "type":"mp4",                //创意类型(目前支持以下类型:jpg、png、gif、swf、flv、mp4)    "path": "http://mp4.res.hunantv.com/pmp/39/1469087752216.mp4",      "code":"http://ad.haowanyou.com/rest/xfz/61/adin.do?ref={REFERRER}&imp={IMP_ID}&adu={adu}&did={DID}&chn={ADX_ID}&redirect=false",           "click":"https://itunes.apple.com/app/id966078986",  //点击跳转地址,落地页地址    "copy_to_bdx":true,              "status":0                      }];postman.setEnvironmentVariable("uid", uid);postman.setEnvironmentVariable("token", token);postman.setEnvironmentVariable("ts", timeStamp);postman.setEnvironmentVariable("a", JSON.stringify(cratives));
Body---raw 发送的参数:

{    "uid":{{uid}},    "token":"{{token}}",    "ts":{{ts}},        "creatives":{{a}}}

Tests检查点:可以添加多个

tests["Status code is 200"] = responseCode.code === 200;// 判断是否存在 'success' 值tests["Body matches success"] = responseBody.has("true");

下面就可以看响应报文




0 0