Postman和Apifox针对不同环境、全局变量的使用与比较

文章目录

一、Postman

1、配置环境和全局变量

在Postman的界面中,点击"Environment",添加我们需要的环境,如下图,添加了forlan1、forlan2两个环境,并设置了ip变量,分别对应localhost:8881和localhost:8882

前面定义的ip变量,使用的话,格式为:{{变量名}},在我们的请求路径中写上{{ip}},就会根据我们选择不同环境,自动替换为对应的值

除此之外,我们还可以定义全局变量,通过点击"Add"或"Edit",设置我们的全局变量token

在请求头的Authorization设置上我们的全局变量,如下:

到此,就定义完成了,接下来进行测试

2、验证

选择环境forlan1,请求接口

选择环境forlan2,请求接口

可以看到,两个环境都设置成功,请求成功了

3、存在问题分析

前面我们针对Ip+端口号定义了2个不同的环境,但在实际开发中,如果我们有很多项目,那是不是要定义很多环境,这样就很麻烦。

一般来说,我们环境是分为本地、测试、灰度、线上环境,对于测试、灰度、线上环境是可以设置为对应的域名,请求会根据Nginx配置规则自动帮我们找到对应的服务,但对于我们本地来说,不同项目,对应不同端口号,在本地测的话,我们要配很多环境,就很麻烦。

总的来说,就是对于同个ip不同端口,我们需要配置很多环境,而且,我们还得分清楚那个环境对应那个请求路径,很麻烦!

二、Apifox

1、配置环境和全局参数

在Apifox的界面中,点击"管理环境",进入设置页

新建环境"forlan",设置保存

在这个界面中,还可以设置全局变量和全局参数,我们设置全局的请求头信息,设置Authorization参数,如下

2、创建公共脚本

在我们接口保存的目录下,添加一个前置操作-公共脚本

说明:之所以要这么定义,这个目录下新建的接口,会自动继承了父类的脚本

一开始脚本都是空的,如下:

点击管理公共脚本,进入界面,新建脚本,保存

回到我们这个页面,选择我们刚刚创建的脚本,设置上即可

3、测试

切换到我们的"forlan"环境,点击"发送"

切换到我们的"forlan"环境,点击"发送"

可以,看到两个都请求成功了

总结

对于同个ip不同端口,Postman需要定义很多套环境,并且比较混乱,我们还需要知道那个环境对应那个请求;而对于Apifox,直接针对某个ip定义一个环境即可,通过脚本去匹配请求路径,找到对应的端口号填充就行了,麻烦在于这个脚本的编写而已,除了脚本这种方式,还可以通过全局变量设置动态值实现,如下,后续再和大家交流下实现,也可以参考下Apifox 帮助文档自己实现下。还有一点就是,Apifox比较细粒度区分了全局参数,我们可以直接设置对应的参数,不需要再去接口中填充{{变量名}},默认帮我们追加了

写脚本遇到的问题:Cannot read properties of undefined (reading 'startsWith')

主要原因是path的值为空,没取到,所以报错了

powershell 复制代码
const path = request.path;
const port = 80; 
if (path.startsWith('/api/v1')) {
    port = 8888;
}

可以增加如下判断,就不会报上面的错误了,但出现了新错误:`Assignment to constant variable.

powershell 复制代码
const path = request && request.path;  
const port = 80;  
if (path && path.startsWith('/api/v1')) {  
    port = 8888;  
} 

port的定义从const改为let即可,但这里还是获取不到请求路径

powershell 复制代码
const path = request && request.path;  
let port = 80;  
if (path && path.startsWith('/api/v1')) {  
    port = 8888;  
} 

原因是request.path拿不到请求路径的,要改为request.url,最终代码如下:

powershell 复制代码
const path = request && request.url;  
let port = 80;  
if (path && path.startsWith('/api/v1')) {  
    port = 8888;  
} 

注:可以通过console.log('request URL:', request.url);打印看看值对不对

相关推荐
2501_9240641116 小时前
2025年跨端云真机测试平台深度测评:XR与折叠屏时代的兼容性之战
测试工具·移动端自动化测试·自动化测试脚本
Small black human1 天前
HTTP-Postman的安装及其使用
测试工具·postman
AIZHINAN1 天前
Appium 简介
自动化测试·测试工具·appium
吴free1 天前
mac电脑wireshark快速实现http接口抓包
网络·测试工具·http·wireshark
DeamoTech2 天前
ESCADA
物联网·测试工具
旷世奇才李先生2 天前
Selenium 安装使用教程
selenium·测试工具
巴里巴气3 天前
对selenium进行浏览器和驱动进行配置Windows | Linux
selenium·测试工具
有趣的我3 天前
wireshark介绍和使用
网络·测试工具·wireshark
草履虫建模3 天前
Postman - API 调试与开发工具 - 标准使用流程
java·测试工具·spring·json·测试用例·postman·集成学习
AIZHINAN4 天前
如何评价 selenium 自动化测试框架搭建?
selenium·测试工具