软件测试 —— Postman(全局变量和环境变量,请求前置脚本,关联)

软件测试 ------ Postman(全局变量和环境变量,请求前置脚本,关联)

在Postman中,全局变量(Globals)和环境变量(Environment Variables)允许你存储和重用值,如API密钥、URL端点或任何其他可能需要在多个请求之间共享的数据。这些变量可以在请求的各个部分使用,包括URL、Headers、Body以及测试脚本等。下面详细介绍如何设置和使用这两种类型的变量。

在测试脚本中设置全局变量

也是在Scripts中,我们可以设置我们的全局变量:

javascript 复制代码
var age = 18
pm.globals.set("glb_age",age)

运行之后,我们可以用{{}},使用我们的全局变量:

也可以通过代码获取:

javascript 复制代码
pm.globals.get("glb_age")

在测试脚本中设置环境变量

在设置环境变量之前,我们的先有一个环境,点击右上角的创建环境:
创建好了之后,我们可以在对应的选项卡中添加环境变量:
我们也可以在对应的脚本中书写:

javascript 复制代码
var lesson = "语文"
pm.environment.set("lesson_name",lesson)

使用环境变量跟全局变量的用法是一样的,也是用{{}},但是在使用环境变量之前,要先保证当前环境与环境变量是匹配的:
如果环境不匹配,是无法进行解析的:

请求前置脚本

我们可以用上面的全局变量做个小测试:获取当前时间戳并作为参数携带进url进行数据查询

这就有一个问题,如果我们先让时间戳作为参数携带进url中,那我们在发送url之前就要获得时间戳,这该咋办呢?

我们看到Scripts选项,左边有一个pre-request :
意思是在我们点击send之后,会最优先执行这段代码,执行完了之后才会发送。这个时候,我们已经获得了时间戳,我们就可以在Params中携带:

关联

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。

如何实现?

  • 要获取某个请求的响应结果数据,可以通过在"Tests"标签页中编写JavaScript脚本来实现:

    javascript 复制代码
    // 获取JSON格式的响应数据
    var jsonData = pm.response.json();
  • 多个请求之间可以使用全局变量或环境变量来传递数据:

    javascript 复制代码
    // 把数据保存到全局变量中
    pm.globals.set("city", city);
  • 获取某个全局变量的值 :{``{var_name}}

这里我们可以查询相应电话号码所在地区,然后将地区作为关键字让百度进行搜索:

我们以这个网站作为测试:

https://www.toolapi.cc/mobile/

然后按照开发者工具上面的提示进行配置:

发送之后,将相应格式换为json:
然后我们在Scripts中的post-request中保存city:

javascript 复制代码
//获取响应的json数据
var jsonData = pm.response.json()

var city = jsonData.region.city

//写入全局变量
pm.globals.set("city",city)

然后我们用百度搜索一下:

相关推荐
Meta Luo1 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~2 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖3 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
一条泥憨鱼3 天前
【Redis | 黑马点评】基于Redis的消息队列 | stream消息队列 源码解读
java·数据库·redis·缓存·lua
蒲公英内测分发3 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发3 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪3 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为3 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
一条泥憨鱼4 天前
【Redis | 黑马点评】分布式锁;Lua脚本;Redisson与看门狗 |源码万字详解
redis·分布式·lua