做API测试时,登录是最重要也是最难实现的部分。现代Web程序的登录越来越复杂,这也增加了测试的难度。本文介绍了我如何使用Postman实现公司网站的登录功能。
首先,使用Chrome抓取整个登录过程中发送的请求。
因为我们使用了单点登录认证,登录过程页面跳转了很多次。为了捕获所有请求,我们需要选择“保留日志”按钮。
从截图中我们可以看到,我们需要调用三个API进行登录。
展开第一个API:
您可以看到,当我们需要重新发送请求时,我们可以同时发送请求头和请求体(请求有效负载),打开Postman,并创建一个请求:
请求头是网页中的请求头,正文是请求负载。我们尝试单击“发送”按钮,可以看到请求已成功发送:
接下来,看看第二个API:
第二个API的Request Header是一个标准的HTTP头,但是它的Body需要传递一个令牌,这是第一个API返回的Json中的令牌。
完整的邮政编码:
发送请求:
让我们看看最后一个API:
这个API的请求头需要一个参数Authorization,这个头的值是第二个参数返回值的accessToken。
相应地填写邮政编码:
发送请求:
此时,我已经将所有与登录相关的API转换为Postman请求,但是这里有一个问题。如果我想连续执行这三个请求,我不能执行,因为我刚才从最后一个请求复制了这些参数,如果我连续执行,参数值会不正确。此时,需要邮差的参数传递函数。
Postman中参数的格式如下:{ {参数名}}。修改第二个应用编程接口:
该参数需要在第一个应用编程接口请求结束时分配,因此修改第一个应用编程接口并在测试中编写以下代码:
其中varjsondata=json.parse(响应体);是的,获取当前响应结果。接下来,创建一个名为token的全局变量:postman . setglobal variable(' token ',JSON data . data . token);
同样,修改第二个应用编程接口的测试,创建一个名为授权:的全局变量。
最后,修改第三个API,使其可以接收全局变量authorization:
最后,尝试在Postman中连续执行以上三个请求: