首页 > 其他分享 >PostMan动态设置全局变量

PostMan动态设置全局变量

时间:2024-06-23 13:56:37浏览次数:26  
标签:动态 PostMan thread -- text 接口 全局变量 id

1. 前言

在开发过程中调试接口,一般都会使用PostMan。
其中有几个变量可能是好几个接口共用的,就会出现频繁手动复制(ctrl+c)、粘贴(ctrl+v)的情况。
这个过程得非常留意,生怕复制错了,或删减了某些东西,导致接口报错。
总是这样复制就显得非常繁琐和麻烦了。
那有没有办法可以让PostMan自动设置变量呢 ?
这就是本文要介绍的,PostMan动态设置变量。

1.1 本文环境

本文内容中,使用的环境如下

  • PostMan版本 : PostMan v11.1.14
  • 系统 : windows10/windows11

在这里插入图片描述

2. 接口

首先来介绍下文本演示的接口 。
这里用到的是阿里的百炼大模型assistant API的接口,这是用来调用阿里大模型的接口。
附上文档链接 : https://help.aliyun.com/document_detail/2741924.html?spm=a2c4g.2741923.0.0.15f64739xkEcIG

注意这里需要先申请一个dashscope-api-key,才可以调用下面的这些接口。

2.1 创建线程

代码示例

curl --location 'https://dashscope.aliyuncs.com/api/v1/threads' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your-dashscope-api-key>' \
--data '""'

返回的结果

{
    "id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
    "object": "thread",
    "created_at": 1711448377850,
    "metadata": {},
    "request_id": "dd9489ec-dbdb-95d4-9ff8-cfe29b61db27"
}

2.2 创建消息

代码示例

curl --location 'https://dashscope.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your-dashscope-api-key>' \
--data '{
    "role": "user",
    "content": "你是谁",
    "metadata": {}
}'

返回结果

{
    "id": "message_f1933671-19e1-4162-ad25-7326165123e1",
    "object": "thread.message",
    "created_at": 1711508433283,
    "thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
    "assistant_id": "",
    "run_id": "",
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "你是谁",
                "annotations": []
            }
        }
    ],
    "file_ids": [],
    "metadata": {},
    "from": "",
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "status": {},
    "request_id": "b3ad40b9-f052-9665-a064-dab11c34625f"
}

3. 使用PostMan调试接口

3.1 创建thread

在这里插入图片描述
在这里插入图片描述
点击send,看下返回的结果

{
    "id": "thread_9e70b593-3e47-4d61-9adb-4253a937d09c",
    "object": "thread",
    "created_at": 1717823196058,
    "metadata": {},
    "request_id": "44cc2792-d063-9578-bd6a-183698123456"
}

注意这里的id,也就是thread_id,在下一个接口中会用到。

3.2 创建message

这里的url中,有一个thread_9e70b593-3e47-4d61-9adb-4253a937d09c,也就是thread_id,是从上一个接口里取的,这里我们直接将其复制过来。
在这里插入图片描述

{
    "role": "user",
    "content":"87787 加 788988737. 结果是多少?",
    "metadata": {}
}

在这里插入图片描述
点击send,看下返回的结果

{
    "id": "message_9d4e6396-863e-4219-83ff-ab0fe5144b61",
    "object": "thread.message",
    "created_at": 1717823800660,
    "thread_id": "thread_9e70b593-3e47-4d61-9adb-4253a937d09c",
    "incomplete_details": {},
    "completed_at": null,
    "incomplete_at": null,
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": {
                "value": "87787 加 788988737. 结果是多少?",
                "annotations": []
            }
        }
    ],
    "assistant_id": "",
    "run_id": "",
    "file_ids": [],
    "metadata": {},
    "status": "",
    "name": "",
    "plugin_call": {},
    "tool_calls": [],
    "request_id": "2511defb-1ead-9bd7-8080-fed150123456"
}

4. PostMan动态设置变量

上文中,我们通过ctrl+cctrl+v的方式,来赋值thread_id
那么如何让PostMan动态设置thread_id,从而不用每次去手动复制了。

4.1 打印日志

首先,我们要知道PostMan中,有一个Scripts,可以写JavaScript的代码。
Pre-request表示在这个Http请求执行前,会先调用。
Post-response表示在这个Http请求执行后,会调用。
在这里插入图片描述

这里,我们在Pre-request中,打印准备创建thread

console.log("准备创建thread")

Post-response中,打印创建thread完毕

console.log("创建thread完毕")

具体显示日志的地方在PostMan左下角的Console
在这里插入图片描述
现在我们执行这个Http请求,会发现打印如下日志了
在这里插入图片描述

4.2 设置全局变量

我们再来看下接口返回的数据

{
    "id": "thread_9e70b593-3e47-4d61-9adb-4253a937d09c",
    "object": "thread",
    "created_at": 1717823196058,
    "metadata": {},
    "request_id": "44cc2792-d063-9578-bd6a-183698123456"
}

这里我们需要取到id,并动态设置成全局变量,那需要怎么做呢 ?

responseBody已被弃用 ,在新版PostMan中,通过pm.response.text(),我们可以获取到response中的文本内容。

pm.response.text()

然后通过JSON.parse()可以将json字符串解析为一个Json对象

var jsonObj = JSON.parse(pm.response.text())

然后就可以通过jsonObj.id获取到id字段了

var thread_id = jsonObj.id
console.log("thread_id:"+thread_id)

最后,调用pm.globals.set()将其设置到全局变量里就好

pm.globals.set("thread_id",thread_id)

4.3 使用全局变量

使用{{}}可以获取到对应的全局动态变量
比如,我们这里就可以用{{thread_id}}来替代Url中的thread_9e70b593-3e47-4d61-9adb-4253a937d09c
运行结果如下所示
在这里插入图片描述
到此,就完成了PostMan动态配置变量的操作,不用再每次复制粘贴变量值了。

5. 其他

参考文章

Use scripts to add logic and tests to Postman requests
2024最新版postman接口测试教程

标签:动态,PostMan,thread,--,text,接口,全局变量,id
From: https://blog.csdn.net/EthanCo/article/details/139505268

相关文章

  • Java学习 - 网络静态路由与动态路由 讲解
    网络畅通的条件数据报包有去有回网络中的路由器必须知道且只需要知道下一跳的地址【路由器只要知道下一跳地址就行,不必知道如何到达任意的路由器,因为如果要实现,路由表将非常非常巨大,这是不可能的】静态路由静态路由是指网络管理员手动构建路由器的路由表,告诉路由器下一跳......
  • 纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网
    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白。说不出口的话就用短视频告诉TA吧~制作一个表......
  • 如何使用postman进行测试
    下载和安装:访问Postman的官方网站下载并安装Postman。启动Postman:打开Postman应用程序。创建一个新的请求:在Postman主界面,点击左下角的 + 号来创建一个新的请求标签。配置请求:在请求标签中,输入你的请求URL。选择请求方法(GET,POST,PUT,DELETE等)。设置请......
  • leaflet动态更改wms瓦片请求参数
    需求https://leafletjs.cn/reference.html#tilelayer-wms官方文档这里说了可以添加自定义参数,但是这里的写法,值是固定的如果我们需要添加的参数的值是动态变化的,那么,直接写在options的方式固然是行不通的解决办法重写getTileUrl方法,可以选择继承TilelayerWMS重写一个类,也可......
  • 动态内存分配(C++)
    什么叫动态分配?动态分配的优点动态分配的语法解释动态分配的变量动态分配的数组动态分配的结构体参考什么叫动态分配?形象来说,动态分配就像是在一个大型购物广场中,你根据需要随时租用或归还一个店铺。程序运行时,如果需要更多空间来存储数据,就会向操作系统“租用”内......
  • 静态库与动态库
    参考链接:https://www.bilibili.com/video/BV1N84y1J7hC/?spm_id_from=333.337.search-card.all.click&vd_source=91219057315288b0881021e879825aa3静态库创建使用VS创建时,可以搜索静态库,实现了逻辑后,然后可以切换到release模式下点击生成解决方案后会生成lib文件使用使用时......
  • C语言---动态内存管理
    1.为什么要有动态内存分配指针+结构体+动态内存管理是学习数据结构的非常重要的知识intmain(){intn=0;//向内存申请一块空间---一个整型4个字节intarr[10]={0};//向内存中申请一块连续的空间--10个整型--40个字节return0;}这两种但是上述......
  • 动态对角渐变色背景
    动态对角渐变色背景前言:1.我并没有深入了解,难免出错一、效果图二、代码body{background:linear-gradient(-45deg,#ee7752,#e73c7e,#23a6d5,#23d5ab);background-size:400%400%;animation:gradient15seaseinfinite;}@keyframesgradient{......
  • 【C语言】16.动态内存管理
    文章目录1.为什么要有动态内存分配2.malloc和free2.1malloc2.2free3.calloc和realloc3.1calloc3.2realloc4.常见的动态内存的错误4.1对NULL指针的解引⽤操作4.2对动态开辟空间的越界访问4.3对⾮动态开辟内存使⽤free释放4.4使⽤free释放⼀块动态开辟内存的⼀部......
  • 【故障诊断】动态系统故障诊断的不断演进方法研究(Python代码实现)
     ......