当前位置: 首页 > article >正文

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

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

  • 在测试脚本中设置全局变量
  • 在测试脚本中设置环境变量
  • 请求前置脚本
  • 关联
    • 如何实现?

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

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

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

var age = 18
pm.globals.set("glb_age",age)

运行之后,我们可以用{{}},使用我们的全局变量:
在这里插入图片描述
也可以通过代码获取:

pm.globals.get("glb_age")

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

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

var lesson = "语文"
pm.environment.set("lesson_name",lesson)

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

请求前置脚本

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

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

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

关联

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

如何实现?

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

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

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

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

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

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

然后按照开发者工具上面的提示进行配置:
在这里插入图片描述

在这里插入图片描述
发送之后,将相应格式换为json:
在这里插入图片描述然后我们在Scripts中的post-request中保存city:

//获取响应的json数据
var jsonData = pm.response.json()

var city = jsonData.region.city

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

在这里插入图片描述然后我们用百度搜索一下:
在这里插入图片描述


http://www.kler.cn/a/513961.html

相关文章:

  • 多线程杂谈:惊群现象、CAS、安全的单例
  • Observability:最大化可观察性 AI 助手体验的 5 大提示(prompts)
  • maven 微服务项目多 包版本问题
  • Tcl教程
  • 迈向 “全能管家” 之路:机器人距离终极蜕变还需几步?
  • Agent AI: 强化学习,模仿学习,大型语言模型和VLMs在智能体中的应用
  • android studio 工具.gradle目录修改
  • 【Go语言圣经】第三节:基础数据类型
  • No. 34 笔记 | Python知识架构与数据类型相关内容 | 实操
  • postgresql清理wal日志
  • k8s的CICD实施项目
  • 基于微信小程序的民宿预订管理系统
  • map和set的使用(一)详解
  • K8s UI工具 Kuboard 安装
  • Mysql视图(学习自用)
  • 记一次 .NET某数字化协同管理系统 内存暴涨分析
  • Day 14 卡玛笔记
  • Java设计模式 十一 外观模式 (Facade Pattern)
  • django使用踩坑经历
  • springboot基于前后端分离的摄影知识网站
  • 新书速览|算法竞赛入门笔记
  • 吴恩达深度学习——建立逻辑回归分类器识别猫
  • html简单项目案例
  • 私有IP、VLAN和VPC,分别适合哪些场景你知道吗?
  • R语言的图形用户界面
  • Android 13 灭屏音乐播放问题解决与优化建议