测试情景:

公司的项目接口越来越多,由于开发周期短,时间紧,缺乏接口文档,直接使用swagger记录所有接口信息。那么:

1. 我们如何更快的测试动辄300+数量的接口,如何分组管理和维护这些接口?

2. 接口中需要随机函数,传参,为了安全需要token, cookie,Authorization等认证,如何解决?

 

解决方案:

1、下载Postman 工具,自行百度。

1、在登陆接口访问后设置Postman的环境变量(Environment),例如设置环境变量名:token,值为登陆接口访问成功后,在responseBody中的token值,如何设置请看下面具体描述。
2、访问其他接口时token值直接读取变量即可。Postman里面获取变量的语法为:{{变量名}}
 

具体步骤:

1、登陆接口介绍

如图所示,login接口返回值JSON格式大体为:
 {
"code": 200,
"data": "eyJhbGciOiJIUzUxMiJ9.eyJhdXRoZW50aWNhdGlvbiI6Y2hlbm1lbmdxaSIsImV4cCI6MTUzNTY1oqCA",
"message": "SUCCESS"
}
 
返回值中有token值, 这个值怎么在访问login接口后自动设置为Postman环境变量呢?
 
2、在访问login接口后自动设置为Postman环境变量
在Postman软件的Tests中写以下代码,设置环境变量
 
 pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); // 把responseBody转为json字符串
var resp= JSON.parse(responseBody);
// 设置环境变量token,供后面的接口引用
pm.environment.set("token", resp.data);

如下图所示:

点击右上角的眼睛按钮,可以自己添加环境,运行了上面接口之后就会发现:

3、访问其他接口,环境变量token

如图红色标注的所示
1、Url填另一个接口
2、TYPE中选择token的类型,我这里用到的是 Bearer Token
3、右边红色标注的部分设置token值,格式为:{{token}},获取前面login接口访问时动态设置的token,
那么这个接口就可以用了
 
点击Send会访问成功。

问题解决二: 一键导入swagger

打开postman ,然后点击左上角的import,在Import from link中填入公司的swagger地址 (使用f12,选择下图的value,复制下来)

这样你就能在collections 里面看见整个项目的接口了。

扩展: postman自带的函数

PostMan 除了提供环境变量和全局变量外,还提供了三种随机数。
{{$guid}}
:添加一个V4风格GUID

{{$timestamp}}
:将当前的时间戳,精确到秒

{{$randomInt}}
:添加0和1000之间的随机整数

postman可以批量执行,不过从swagger导出来的api是没有参数的,需要自行为每一个接口填入合适的参数并点save保存,后续可以使用。

自动生成脚本: 脚本可以放在python编辑器然后正常输出

验证接口:(postman提供了很多的验证方法,点击即可使用,要验证的值代替蓝色的参数值)

缺点:Postman 作为工具在自定义函数(函数有限),参数传递(不是任意地方都可以调用)方面还是有限制。测试报告也不算好看。文件夹导出之后只有一个json文件,不方便二次操作。

所以接口自动化我在这边选择了python脚本,下次再介绍。

关于postman函数的高级用法可参考: https://blog.csdn.net/sd7o95o/article/details/78141023

Postman 测试swagger类接口技巧的更多相关文章

  1. postman测试express restful接口

    安装express及postman var express = require('express') var app = express(); var calculation = require('. ...

  2. postman测试wsdl类型接口

    1 IP地址来源搜索 WEB 服务 接口信息 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 2  设置接口调用地址 ...

  3. postman测试REST接口注意事项

    postman在测试第三方REST接口,当POST请求内容要求为application/json时,注意要在postman中设置POST请求体类型设置为raw,然后设置其内容为application/ ...

  4. 接口文档管理工具-Postman、Swagger、RAP(转载)

    接口文档管理工具-Postman.Swagger.RAP 转自:http://www.51testing.com/html/10/n-3715910.html 在项目开发测试中,接口文档是贯穿始终的. ...

  5. postman测试接口各种类型传值

    postman测试接口各种类型传值 标签: postman测试 json串 Map 2018年01月27日 02:32:00 145人阅读 评论(0) 收藏 举报 1.Map类型或实体类类型传值,即j ...

  6. 基于postman测试接口(整套接口测试)

    基于postman测试接口(整套接口测试) 可以解决的问题 几百个接口人工测试接口过于繁杂 大多测试无法使用请求结果当参数 可以使用随机参数 支持swagger信息导入 随账号持久化保存数据 对集合一 ...

  7. Postman Postman测试接口之POST提交本地文件数据

    Postman测试接口之POST提交本地文件数据   by:授客 QQ:1033553122 本文主要是针对用Postman POST提交本地文件数据的方法做个简单介绍 举例: 文件同步接口 接口地址 ...

  8. Postman Postman测试接口之JSON结构化数据提交

    Postman测试接口之JSON结构化数据提交   by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...

  9. 使用PostMan测试WebService接口

    使用PostMan测试WebService接口 参考资料: 通过XML请求WebServer  https://blog.csdn.net/qq_33933408/article/details/53 ...

随机推荐

  1. jqGrid 获取多级标题表头

    1.jgGrid没有提供此方法获取如下标题 2.实现代码 getHeaders:function(){ var headers=[],temptrs=[]; //select the group he ...

  2. leetcode1014

    这道题暴力算法,会超时: class Solution(object): def maxScoreSightseeingPair(self, A: 'List[int]') -> int: n ...

  3. PHPExcel在TP下使用

    第一:你要去PHPExcel官网下载,然后放到网站的Vendor文件夹下面.当然这是为了好管理和导入.你放在其他位置也没有关系. 第二:当然是在你需要的地方写代码.我只写样例,你看懂了就可以灵活的使用 ...

  4. antd-mobile使用报错

    在第一次使用时,按照官网的进行配置,完了报错找不到antd-mobile下面的css 解决方法来源于 :https://github.com/ant-design/ant-design-mobile/ ...

  5. 关于vector变量的size,是一个无符号数引发的bug。LeetCode 3 sum

    class Solution { public: vector<vector<int>> threeSum(vector<int>& a) { vector ...

  6. ORM对单表的增删改查

    表记录的增加: 1)b = Book(name='python', price=99) b.save() 2)Book.objects.create(name='python', price=99) ...

  7. Oracle 学习总结 - 物理结构

    参考了很多文章,学习自网络 数据库 = 实例(数据库启动时初始的进程和内存结构,进程会作用到对应的内存区域-数据写入器到写入内存缓冲区,日志写入器到日志缓冲区等) + 数据库(物理文件-控制文件,数据 ...

  8. Spark读取配置(转)

    转自:https://github.com/keepsimplefocus/spark-sourcecodes-analysis/blob/master/markdowns/Spark%E8%AF%B ...

  9. 两台计算机有相同的IP地址会发生什么情况?两台计算机有相同的MAC地址会发生什么情况?

    1 相同IP   a) 同一网段内   会发生IP地址冲突.两台主机在特定情况下是可以同时使用同一个IP地址的.但是如果这两台主机在同一个网络内,大多数情况下,二者或者其中之一的连通性将会被破坏.比方 ...

  10. Android DevArt3:SingleTask启动模式探究:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity, 再从C中又启动AActivity, 最后在A中启动B,现在按两次back键,然后回到的是哪个Activity? 答案是,回到MainActivity。

    SingleTask启动模式探究 GitHub如题:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity,再从C中又启动AActiv ...