前言
做接口加密的测试也是上次遇到的,在这之前,都是在浏览器登录后,从请求头中复制 token 过来测试....
说真的,一瞬间我都有点诧异,这样也太麻烦了吧~,因而也就产生了这篇文章。
还有一些问题:
- postman 有内置加密Api,但不支持RSA加解密码。 (引入其他的js文件至环境变量,利用eval 函数进行解析,还可以利用request获取,将其保存至全局变量中)
- postman 中 request对象属性皆为只读,如何把提交时的明文变为密文? (前置脚本)
我先说说本次文章最终要实现的效果,以给大家一个阅读的参考。
目标:在测试登录接口时,针对登录接口需要用到的 username、password
进行加密(加密方式分别为 rsa、aes
),再将加密后的数据传输给后端。
方法都是相似的,知道如何加密,其他的接口和字段都是差不多的实现方式。
一、Postman
对于Postman,对于这个工具,我认为是大都数小伙伴都要会的一个工具~,只是学习的程度的不同罢了
大致就是分为:
1、刚学的我们,就是用来测试一些基本接口
2、用了一段时间的我们,知道了有环境变量、集合操作等
3、了解到 postman 中可以结合Js文件对请求做一些参数,断言等等
4、集合接口测试、编写测试用例、利用内置变量随机生成数据测试接口等
5、.......
今天用到的就是 Postman 中的前置脚本Pre-request Script
二、Pre-request Script 编写前置脚本
2.1、脚本执行顺序
说之前,先说说postman中脚本的执行顺序,这里贴一张官方的图 postman 官方文档
在 Postman 中,单个请求的脚本执行顺序如下所示:
- 与请求关联的预请求脚本将在发送请求之前执行
- 与请求关联的测试脚本将在请求发送后执行
在发起request
请求前,会先执行前置脚本,收到接口返回结果后,再执行 test script
2.2、准备测试接口信息
准备一个后端请求接口,能接收请求参数即可,我采取的是将加密的信息打印
测试接口信息
http://localhost:8080/login
json
复制代码
{ "username":"{
{rsa:username}}", "password":"{
{esc:password}}" }
补充
:用双层大括号包裹的参数,是引用postman的环境变量,做到动态可变
参数名前的:rsa,aes
是为了测试多种加密方式给加的判断依据。
(图片说明:增加一个接口,填入基本信息)
2.3、Postman设置环境变量
这两处我们都需要用到~
接口用到的数据,一般是存放在某一个环境变量中,
如果很多处用到,一般可以考虑放到全局变量中了~
我们将rsa:username、aes:password
放到一个环境变量中,这个环境变量的名称的就叫login
点击上图中的add
即可