POSTMAN是常用的接口测试工具

如果需要生成签名之类的动态变量,可以通过Pre-request Script脚本来实现

通俗说:它是js的语法,同时内置了postman的方法,可以轻松实现各种算法,截图如下:

MD5签名

先模拟一个简单的例子,从body中获取变量,然后手工拼接并生成MD5值

代码如下:

  1. /**
  2. * 通过request.data获取body的内容,这个是postman内置变量
  3. * 常用内置参数如下:
  4. * request 获取请求的参数,包括头和请求体
  5. * responseHeaders 返回值的header
  6. * responseBody 返回值的body
  7. * responseCode 返回值的http code
  8. */
  9. var params = request.data;
  10.  
  11. /**
  12. * MD5加签规则:
  13. * 1、根据key排序(这里就直接根据顺序拼接了)
  14. * 2、如果value不为空,就拼接如下:key1=value1&key2=value2 生成原串
  15. * 3、原串后+盐值,比如salt=shengpay,最终的摘要串=key1=value1&key2=value2shengpay
  16. * 4、消息摘要,并将结果转为大写
  17. *
  18. */
  19. //连接符
  20. var join = '&';
  21. //盐值
  22. var MD5_SALT_SUFFIX = "shengpay";
  23. var md5salt = params.subMerchantNo + MD5_SALT_SUFFIX;
  24.  
  25. var md5String = "orderId=" + params.orderId + join +
  26. "subMerchantNo=" + params.subMerchantNo + join +
  27. "terminalId=" + params.terminalId + md5salt;
  28. console.log("md5String---->" + md5String);
  29.  
  30. var md5 = CryptoJS.MD5(md5String).toString().toUpperCase(); //MD5摘要后并转换为大写
  31.  
  32. console.log("md5 digest---->" + md5);
  33.  
  34. //放入环境变量
  35. //pm.environment.set("sign_message",md5)
  36. postman.setGlobalVariable("md5msg", md5);

  

赋值:

运行时候,打开控制台,就可以看到console.log()在控制台打印的日志啦

代码很简单,直接看注释即可,唯一需要提一下,这里MD5签名使用到了CryptoJS类库,这是js的一个加解密的类库,支持AES、RSA等各种加解密算法;

SHA1签名

这里稍微复杂点,从body获取参数放入数组,然后排序,然后根据规则拼接字符串,最后生成SHA1签名串并使用十六进制编码;

直接看代码:

  1. /**
  2. * 通过request.data获取body的内容,这个是postman内置变量
  3. * 常用内置参数如下:
  4. * request 获取请求的参数,包括头和请求体
  5. * responseHeaders 返回值的header
  6. * responseBody 返回值的body
  7. * responseCode 返回值的http code
  8. */
  9. var params = request.data;
  10.  
  11. //body中参数放入数组
  12. var list = [params.subsystemId,params.clientId,params.account,params.timestamp];
  13. console.log("list---->" + list);
  14.  
  15. // 字段排序:这里建议使用默认的排序,优先比较字符的第一个,相同则比对第二个...
  16. //list.sort(function(a, b){
  17. //return b-a; //数字的排序
  18. // return b.localeCompare(a); //字符串排序
  19. //});
  20. list.sort();
  21. console.log("list ---->" + list);
  22.  
  23. //字段重新组装拼接
  24. var tmp='';
  25. for(var i=0;i<list.length;i++){
  26. tmp += list[i];
  27. }
  28. console.log("tmp ---->" + tmp);
  29.  
  30. //生成签名串:这里使用SHA1算法并使用十六进制编码
  31. //CryptoJS-为JavaScript提供了各种各样的加密算法
  32. //作者:CryptoJS<>(https://code.google.com/p/crypto-js/)
  33. var signHmacSHA1=CryptoJS.SHA1(tmp).toString(CryptoJS.enc.Hex).toUpperCase();
  34. console.log("sign ---->" + signHmacSHA1);
  35.  
  36. //放入环境变量
  37. //pm.environment.set("sha1msg",signHmacSHA1)
  38. postman.setGlobalVariable("sha1msg", signHmacSHA1);

postman发送HTTP请求自动生成MD5签名的更多相关文章

  1. postman发送json请求,使用案例

    介绍:  postman是一个很好的http模拟器,,可以发送get.post.put等各种请求,是测试服务接口相当好的工具. postman发送json请求,使用案例 发送json的具体步骤: 1. ...

  2. postman发送post请求,报405 Method Not Allowed

    postman发送post请求,报405 Method Not Allowed: 亲测有效的方案一: 检查请求header是否缺少必要信息.如果不清可以把所有的头部信息全部粘贴到header中,尝试是 ...

  3. Postman发送GET请求带中文

    当使用Postman进行GET请求,并且请求参数里携带中文得时候,会请求失败 这时,需要对GET请求参数携带的中文进行编码即可请求成功

  4. 解决postman环境切换,自动获取api签名时间及签名

    postman调试api接口时,常遇到两个问题: 1.环境分为开发环境,测试环境,正式环境,如何只写一个接口,通过切换postman环境来实现不同环境的接口调用? 2. api接口请求时往往会添加,来 ...

  5. 如何使用Postman发送get请求?

    一.接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性. 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保障 ...

  6. Postman 发送http请求工具

    http://donglegend.com/2016/10/28/Postman/ Postman 发现一款发送Web API & HTTP 请求的工具,没错,就是Postman.推荐给大家, ...

  7. postman发送json请求

    简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...

  8. postman --发送json请求

    转自: http://blog.csdn.net/wangjun5159/article/details/47781301 简介: postman是一个很好的http模拟器,在测试rest服务时是很好 ...

  9. postman发送get请求

    在地址栏里输入请求url(用到拼接方式):http://127.0.0.1:8081/getuser?userid=1 选择“GET”方式, 点击“send”得到json数据如图   分类: post ...

随机推荐

  1. 深入理解jQuery插件开发【转】

    如果你看到这篇文章,我确信你毫无疑问会认为jQuery是一个使用简便的库.jQuery可能使用起来很简单,但是它仍然有一些奇怪的地方,对它基本功能和概念不熟悉的人可能会难以掌握.但是不用担心,我下面已 ...

  2. 《腾讯游戏人生》微信小程序开发总结

    为打通游戏人生擂台赛与线下商家的O2O衔接,同时响应时下日臻火热的微信小程序,项目团队决定也开发一款针对性的微信小程序,以此方便商家在我们平台入驻并进行擂台赛事的创建和奖励的核销,进一步推广擂台赛的玩 ...

  3. 【Xshell】设置XShell最大的显示行数

    选择会话,依次点击“文件"->"属性”,打开“会话属性”窗体   在“会话属性”窗体中,选择“终端”,下图中红框标注的地方是“缓冲区大小”,修改其中的值,其范围在0~2,14 ...

  4. [转]NLog学习笔记二:深入学习

    本文转自:http://www.cnblogs.com/CCHUncle/p/5207735.html 配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. ...

  5. Mysql5.7的安装配置问题

    前些日子安装和配置mysql,遇到一些问题,在这里记录一下. 1.首先,把zip的mysql解压. 2.设置环境变量PATH中添加你的mysql解压目录. 3.在mysql根目录下新建my.ini文件 ...

  6. Python 显示调用栈

    Python调试不如强类型的语言方便,显示调用栈有时非常必要,inspect模块很好用 import inspect inspect.stack() inspect.stack()返回的是一个函数栈帧 ...

  7. Django的模型层

    一.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  8. 【Android】4.0 神一样的仪式感:Android第一个项目HelloWorld——eclipse

    进入Eclipse,在左侧栏右击: 新建 “Android Application Project”项目,如果new之后没有,选择“Project”中“Android”目录下的 “Android Ap ...

  9. apk接入google play邮箱登陆及充值注意事项

    unity3d 接入google play商店相关sdk,相关要求A.环境配置: 1.手机安装谷歌安装器 2.使用谷歌安装器安装Google 服务框架.Google Play服务.Google Pla ...

  10. FragmentActivity的简单使用

    如图是效果图 当  点击下面 不同 的按钮 进入 不同的界面 其中 要一个 主布局当做容器 , 和3个不同的 布局来对应下面的3个按钮界面 主程序的 代码和布局如下 import android.su ...