如何自动化实现将Get请求的response body作为后续Post请求的request body
如何自动化实现将Get请求的response body作为后续Post请求的request body
嘿,这个手动复制粘贴的活儿确实挺折腾人的,我来教你怎么用Postman(看你提到了collection,应该是用这个工具吧)自动化搞定:
第一步:把Get请求的响应体存到环境变量里
打开你的Get请求,切换到「Tests」标签页,在里面写一段简单的脚本,把整个响应体存到环境变量中:// 如果响应是JSON格式,用这个 pm.environment.set("getResponseBody", pm.response.json()); // 如果响应是纯文本/HTML这类非JSON格式,换成下面这句 // pm.environment.set("getResponseBody", pm.response.text());这样每次运行Get请求后,它的响应体就会被自动存在环境变量里啦。
第二步:在Post请求里引用这个变量
打开你的Post请求,切换到「Body」标签页,不管你选的是raw(JSON/文本)还是其他格式,直接把{{getResponseBody}}这个变量放进去就行。比如JSON格式的话,整个Body就填这个变量就好,Postman运行的时候会自动把它替换成Get请求的响应体内容。第三步:确保请求顺序正确
把Get请求放在Post请求前面,运行整个collection的时候,Postman就会按顺序执行,自动完成数据传递,不用你手动干预啦。
要是你不用Postman,用Python脚本的话也很简单,给你个示例:
import requests # 先发送Get请求获取响应体 get_url = "你的Get接口地址" get_res = requests.get(get_url) # 根据响应格式选json()或者text() request_body = get_res.json() # 再发送Post请求,把Get的响应体作为请求体 post_url = "你的Post接口地址" post_res = requests.post(post_url, json=request_body) # 可以看看Post请求的结果 print(post_res.status_code)
备注:内容来源于stack exchange,提问作者Noha
相关产品推荐
相关产品推荐

