目录
-
Postman设置变量
设置变量是为了在多个接口之间形成关联,比如注册所使用的登录名或手机号在登陆时也会使用同一个参数值,以及后续还有更多与此参数相关联的操作,故需要使用postman设置变量形成多个关联。
-
Postman接口关联的几种方式
-
设置全局变量
1、确定哪些要设置变量,点击右上角【设置】按钮
2、在弹出的管理窗口中选择【Globals】全局变量
3、设置变量名和值,并保存
添加成功,可在此处查看
4、调用全局变量
Globals全局变量可以用在集合或者单接口中。
注意:变量名切不可重复!如集合中的【Varlables】变量与【Globales】变量重复,将会优先使用【Globales】变量值。
-
设置环境变量
1、添加环境变量
为了对比环境变量的使用效果,我们创建两个不同环境的变量,一个是测试环境的username,一个是生产环境的url
2、调用环境变量
情况一:
- 选用测试环境
- 调用生产环境的url变量
- 调用测试环境的username变量
- 点击【Send】
响应结果:失败
原因:在测试环境下只能调用此环境下的变量username,不能调用生产环境的url变量
情况二:
- 切换生产环境
- 调用生产环境的url变量
- 调用测试环境的username变量
- 点击【Send】
响应结果:成功,但获取到的username不是变量中设置的值,而是‘{{username}}’字符
原因:在生产环境下只能调用此环境下的变量url,不能调用测试环境的username变量,故将{{username}}作为普通字符参数处理
情况三:
- 切换生产环境
- 调用生产环境的url变量
- 调用全局变量{{name}}
- 点击【Send】
响应结果:成功,获取的变量值为全局变量中设置的name值
原因:全局变量在生产环境、测试环境以及No environment中都可以调用
-
Tests设置变量
通过tests先把接口的返回结果设置成环境变量,然后后续接口就可以通过环境变量的值进行关联
例:
在查询用户信息时需要获取登陆后的token、或cookie等信息
在tests下将获取到的token设置为环境变量:
- 获取响应数据json对象
使用var关键词,定义一个变量jsonData(这是一个自定义的变量名,可以修改的),用来接收接口的返回结果
var jsondata = pm.response.json();
- 从响应数据中获取token
再定义一个变量test(也可以是其他名字)
var test = Data.token;
- 设置token
把test设置成环境变量token(环境变量名,也可以改成其他名,比如“aaaa”)
pm.environment.set("token",test)
运行过后,可以看到:
在测试环境下环境变量token值已经被取出来了
这个时候我们就可以在查询用户信息时直接调用了
点击【Send】后,接口返回成功
问题探索
Token ,Cookie和Session的区别:
Cookie
cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
Session
session 从字面上讲,就是会话。这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征(长相等)表明他就是张三。
session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用 cookie 的方式。
服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。
Token
token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库
原文链接:https://blog.csdn.net/tobetheender/article/details/52485948