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

news2024/11/24 18:35:42

文章目录

  • 一、Postman
    • 1、配置环境和全局变量
    • 2、验证
    • 3、存在问题分析
  • 二、Apifox
    • 1、配置环境和全局参数
    • 2、创建公共脚本
    • 3、测试
  • 总结

一、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的值为空,没取到,所以报错了

const path = request.path;
const port = 80; 
if (path.startsWith('/api/v1')) {
    port = 8888;
}

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1297089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(二)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理1)数据介绍2)数据测试3)数据处理 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客,在读者…

10 大 Android 手机系统修复软件深度评测

您的新 Android 手机可能因其令人兴奋的性能而印象深刻。然而,随着时间的推移,您可能会发现系统有些地方与以前不太一样。您可能会遇到屏幕无响应、 Android应用程序崩溃、连接问题、电池耗尽等现象。 10 大 Android 手机系统修复软件 好吧,…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…

五、HotSpot细节实现

一、并发标记与三色标记 问题:三色标记到底发生在什么阶段,替代了什么。并发标记 1、并发标记( Concurrent Marking) 从 GC Root 开始对堆中对象进行可达性分析,递归扫描整个堆里的对象图,找出要回收的对象,这阶段耗…

Debian Linux安装配置ibus rime中文输入法

Linux安装配置Rime 安装 清除所有fcitx软件包 sudo apt purge fcitx*安装ibus和ibus-rime sudo apt install ibus ibus-rime启用输入法 找到输入法配置 启用ibus输入法 此时由于刚安装完毕ibus并没有启动 要么重启系统 要么输入下面的命令 ibus-daemon -drx找到ibus首选…

Python 模板引擎 Jinja2 的安装和使用

目录 一、概述 二、安装 Jinja2 三、使用 Jinja2 四、Jinja2的强大功能和优点 五、总结 一、概述 Jinja2 是 Python 中广泛使用的一种模板引擎,它具有灵活的语法、强大的控制结构、方便的 API,以及高效的渲染速度。通过使用 Jinja2,开发…

TQ2440开发板-按键驱动程序设计

目录 按键测试底板原理图核心板原理图使用轮询方式设计按键程序 按键测试底板原理图 TQ2440开发板有4个用户可编程按键,它们直接与CPU的GPIO相连,低电平触发中断,资源占用如下图所示: 核心板原理图 使用轮询方式设计按键程序 按…

web前端实现LED功能、液晶显示时间、数字

MENU 效果演示html部分JavaScript部分css部分 效果演示 html部分 <div id"app"><!-- 页面 --><div class"time-box"><!-- 时 --><div class"house-box"><bit-component :num"houseTem"></bit…

Mabatis处理异常屏蔽SQL返回前端全局异常捕获处理

文章目录 Mabatis处理异常屏蔽SQL返回前端全局异常捕获处理结论1 java异常体系2 Spring框架异常处理3 定位Spring框架转化为哪种unchecked异常3.1 捕获RuntimeException定位Spring框架转化抛出的异常类3.2 进一步查看包名判断3.3 识别MyBatisSystemException下级实现3.3 识别My…

2、关于使用ajax验证绕过(实例2)

ajax原理我上一篇有写过&#xff0c;参考&#xff1a;1、关于前端js-ajax绕过-CSDN博客 一、实例环境&#xff1a; 为手机上的某一割韭菜app 二、目的&#xff1a; 实现绕过手机验证码&#xff0c;找回密码 三、工具&#xff1a; bp代理 四、验证步骤如下&#xff1a; …

AI仿写软件大全,当然热门的仿写软件

在创作过程中&#xff0c;往往需要大量的灵感和原创性&#xff0c;而AI仿写软件便提供了一种高效、智能的解决方案。本文旨在专心分享AI仿写软件有哪些&#xff0c;并为大家解析哪几款好用的AI仿写软件。 AI仿写的使用 随着互联网的快速发展&#xff0c;内容创作需求不断增长&…

linux-man命令的使用及练习

目录 1. 命令概述 2. 使用 3. 练习 ?man services时报错&#xff1a;No manual entry for services的解决办法 4. man命令中常用按键以及用途 1. 命令概述 Linux提供了丰富的帮助手册&#xff0c;当你需要查看某个命令的参数时不必到处上网查找&#xff0c;只要man一下即…

基于JAVA+SpringBoot+Vue的前后端分离的旅游网站

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 近年来&#xff0c;随…

智能优化算法应用:基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.袋獾算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Git 请输入一个提交信息以解释此合并的必要性

操作方法&#xff1a;按住Ctrl加下面的某个字母

Realme GT5Pro ROOT 解锁BL教程

Realme GT5Pro 解锁ROOT教程 前言&#xff1a; 本文解锁BL教程及深度测试APP来自Realme官方社区。流程已进行简化&#xff0c;工具由本人制作并提供&#xff0c;降低上手难度&#xff0c;傻瓜式操作&#xff08;工具长期免费更新&#xff09;。 正文&#xff1a; 准备活动&am…

达梦数据库dm8守护集群部署手册

环境说明 操作系统&#xff1a;liunx-centos7.6 服务器&#xff1a;3台虚拟机&#xff08;主备数据库各一台&#xff0c;监视器一台(可选)&#xff09; 达梦数据库版本&#xff1a;达梦V8 一、安装前准备工作 参考达梦官方文档&#xff1a;https://eco.dameng.com/documen…

(2)(2.4) TerraRanger Tower/Tower EVO(360度)

文章目录 前言 1 安装传感器并连接 2 通过地面站进行配置 3 参数说明 前言 TeraRanger Tower 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用距离约为 4.5m。 TeraRanger Tower EVO 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用…

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.参考…

爱上 `grep`:小白也能用的命令行超能工具!

1. grep 简介 grep 是一款命令行工具&#xff0c;它的任务是在文件中搜索特定的文本模式。在 Windows 上&#xff0c;我们可以通过安装 Chocolatey 包管理器来安装 grep。 2. 在 Windows 上安装 grep 打开 Windows PowerShell 首先&#xff0c;我们需要确保你已经安装了 Cho…