接口测试 求助 postman 自动获取登录的 token 和 user_id 作为 collection 里下一个请求 URL 的 request

Test44 · 2016年07月11日 · 最后由 VII 回复于 2017年04月11日 · 3625 次阅读

我是接口测试小白,从功能转的,选择用 postman 作为接口测试,我喜欢它的简洁和快速,但我对于 API 自动测试不懂。
请求业务逻辑如下:
1.collection 里有两 cases,cases1 是登录,cases2 是获取用户信息,
2.cases2 的 request 里(就是 cases2 的 request 里的 token 和 user_id),需要带 cases1 的 response Body 里的 token 和 uid,
3.这是 cases1 用户登录的设置和请求,我把 URL 请求的域名地址端口等设置在 Manage Environment

pre-request Script 里设置的请求 URL 需要带的网关验证如下:

4.cases1 的登录请求是成功的,Tests 里的设置如下:


这是登录请求成功


这是登录的 Tests 设置

5.cases2 获取用户信息请求提示参数错误(应该是 cases1 获取 token 和 uid 作为环境变量有问题,但是我不知道哪儿有问题)


这是 cases2 请求的,token 和 user_id 是获取 cases1 的 response Body 里的 token 和 uid,但是请求提示参数错,这两个有问题

求助,大神告知小弟我哪儿出现出错,我是真心在做接口测试,从功能转的,不容易。

共收到 13 条回复 时间 点赞

postman.setEnvironmentVariable("user_id", "data.uid");

修改为

postman.setEnvironmentVariable("user_id", data.uid);

补充下,data.token 也是同理。编程语言里加双引号表示字符串,没加表示变量。

#1 楼 @doctorq
我明白了谢谢您,这是错误之一,
其实我里面还有两个错误
错误 2,Tests 里应该是写成这样的:postman.setEnvironmentVariable("user_id", data.response.uid)
错误 3,Pre-request Script 里的与 token 和 user_id 相关的两项应该是写成是 postman.getEnvironmentVariable("token","data.response.uid");
postman.getEnvironmentVariable("user_id","data.response.token");
我原先都写成了 setEnvironmentVariable
非常感谢,不过我又出现另一个问题了:
如图绿色圈出来部分,我需要验证 responseBody 里返回的 result 下的 code 是否正确,在 Tests 里应该怎么写,我这总是报 fail

Test44 #11 · 2016年07月12日 Author

#2 楼 @chenhengjie123
嗯,我明白了,一步步在搞,谢谢您

#3 楼 @tangtest4 如果要比较 code==0,不是应该是 responseBody.result.code===0 么?

楼主,你在 Pre-request-script 中通过 postman.getEnvironmentVariable("token",data.response.token);能获取到你 case1 的 response 中的 token?
我这边类似的操作,直接提示我,参数未定义,,,

#6 楼 @cyy
cases2 的 Pre-request-script 中通过 postman.getEnvironmentVariable("token",“data.response.token”)
cases1 的 Test 需要先 postman.setEnvironmentVariable("token", data.response.token)

#5 楼 @doctorq
大哥,请教您另一个问题,cases1 得到的 responseBody 里的返回参数 A,如何在 postman 设置让它自动成为 cases2 的 requestBody 的请求参数 A,如图:
这是 cases1 得到的 responseBody

这是 cases2 的 requestBody

怎么把 cases1 的 login_token 自动同步到 cases2 里?
cases1 的 Tests 要怎么写?
cases2 的 Body 又要怎么写?

#8 楼 @tangtest4 不是有种写法叫全局变量,{{}}包裹的,自己啃文档吧

#9 楼 @doctorq
不是这个的好不。。。。

@tangtest4 仔细阅读官方文档https://www.getpostman.com/docs/sandbox希望对你有帮助

#11 楼 @softblank嗯最近一忙,这两天有时间了。我马上看看文档,回头不懂再咨询大家

我出现了同样的问题,求帮助。。。😰 😰 😰

Test44 关闭了讨论 05月18日 17:45
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册