全部 ApiPost使用 后端 前端 接口测试 IOS Android 数据库 2022 测试技术 工具
问答 / 问答详情

能否在请求前动态修改URL地址?

我尝试寻找类似 `apt.setRequestUrl()`的api时,出错了。

大概前情是这样,我这边的项目接口统一格式为 域名/rest/地址,一般情况下,一个项目有多个域名,比如,alpha,beta,dev,uat,prd环境等,每个环境的域名各不相同,我想的是在地址栏仅仅写入 /rest/地址来请求,前面的域名通过登陆接口设置一个全局变量,然后由全局预执行脚本在请求前拼接上域名,这样整个项目的接口都是在同一个环境下请求,只需要重新改动登陆接口即可。

| 0 收藏
  • witt
  • 2021-10-11 提问

2 个回答

这边有二个方案可以实现您的需求

1.把域名存到环境变量中,然后在url前面统一使用环境变量中的域名。修改环境变量中的域名即可达到所有接口域名修改的效果

2.给不同域名建立不同的环境。每个环境可以设置一个前置url,这个环境前置url在发送的时候会自动拼接到url前面。切换环境时即可达到效果

感谢,尝试了第二种方案,确实达到了目的,关于第一种方案,昨天刚开始,我也确实是在登陆接口响应成功后的  后执行脚本中

apt.globals.set("root", request.url.substring(0,request.url.lastIndexOf('/rest') + 6));

添加了一个变量root,然后使用 {{root}} 在其他接口的地址栏中引用,但是我点击发送时提示了一个error,是url地址不正确,内容是Error:getaddrinfo http:://,后面是变量的encode部分,我以为是书写错误,多次尝试,但在body中正常,从console中能够看到,我以为是暂不支持,今天早上按照您说的方法再次尝试,确实又正常了,应该是一个难出现的bug,但是我没有保留截图给你们参考。

  • witt
  • 2021-10-12 回答
Apipost 私有化火热进行中

撰写答案

只服务于

前后端、移动端、测试人员

提问题 发布您遇到的Bug和问题,上万名大牛和开发者来帮您解决!