当前位置: 首页 > news >正文

比Nginx测试桩更方便,ShenYu网关的Mock插件

有时候为了方便测试,我们需要模拟 HTTP 外部接口的返回结果。通常情况下,我们可以使用 Nginx 测试桩来实现这个目的。然而,Nginx 的使用门槛较高,可能对一些初级开发和测试人员来说有一定的难度。相比之下,Apache ShenYu 网关的 Mock 插件可以更加便捷地从管理后台界面维护模拟返回报文。接下来,将介绍如何使用 ShenYu 网关的 Mock 插件。

目录

插件介绍

启用插件

配置插件

总结


插件介绍

Mock 插件为请求指定响应状态码和响应体,方便进行测试。支持用户使用 SpEL 表达式生 mock 数据。使用 SpEL 表达式可能会导致执行恶意脚本或应用破坏性程序的风险,因此应尽可能在安全的环境中使用。

启用插件

进入管理后台,界面右上角用户名左边可切换中英文。打开菜单 -> 基础配置 -> 插件管理,找到 mock 插件设置状态为开启。也可直接进入第3步,在配置插件​界面开启。

配置插件


进入管理后台菜单 -> 插件列表 -> Mock -> Mock,首先添加选择器。在添加选择器界面输入相关信息,名称可直接填需要 mock 的 uri 或者其它任意名称;类型默认1,匹配方式是后面多个条件之间的逻辑关系,条件默认为 uri 路径模式,填入要 mock 的 uri,也可下拉选择其它条件,执行顺序为多个选择器之间的顺序,可填1,其它选项使用默认值,点击按钮确认添加选择器:

然后为该选择器添加规则(注意:有多个选择器时,先点击选择器列表中待添加规则的选择器,避免将规则添加到其它选择器中):

本例中的选择器使用 uri 路径模式,因此为该选择器添加的规则不再需要指定 uri 条件,比如,根据 header 中某个字段的不同值设置不同的响应码 httpStatusCode 和响应体 responseContent:

响应体支持配置 ${} 占位符结合 SpEL 表达、内置的一些函数和参数生成数据,也可以获取请求体中的数据设置到响应体中​。比如请求体为 {"names":[{"name":"nginx"},{"name":"shenyu"}]},${expression|#req.json.names[1].name} 将返回 "shenyu"。。

总结
 

使用Apache ShenYu网关的Mock插件可以方便地从管理后台界面维护模拟返回报文。相比使用Nginx测试桩,ShenYu网关的Mock插件更加简单易用,适合初级开发和测试人员使用。希望以上介绍能够帮助大家更好地利用ShenYu网关的Mock插件进行接口测试。

http://www.lryc.cn/news/207128.html

相关文章:

  • IDEA: 自用主题及字体搭配推荐
  • Qt中的枚举变量,Q_ENUM,Q_FLAG以及Qt中自定义结构体、枚举型做信号参数传递
  • 【C++】priority_queue仿函数
  • 如何驾驭ChatGPT:掌控有效对话!
  • LeetCode 面试题 16.03. 交点
  • 【码银送书第九期】《ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践》
  • Hadoop3.0大数据处理学习4(案例:数据清洗、数据指标统计、任务脚本封装、Sqoop导出Mysql)
  • 华为机试题:HJ3 明明的随机数
  • Python OpenCV将n×n的小图拼接成m×m的大图
  • wkhtmltoimage/wkhtmltopdf 使用实践
  • Rclone连接Onedrive
  • RK356X/RK3588构建Ubuntu20.04根文件系统
  • 本地新建项目如何推到码云上去
  • RSAUtil 前端 JavaScript JSEncrypt 实现 RSA (长文本)加密解密
  • uniapp map polygons 区域填充色(fillColor)在ios显示正常,但在安卓手机显示是黑色的,怎么解决?
  • OSCAR数据库上锁问题如何排查
  • FPGA与人工智能泛谈-01
  • 【VASP】POTCAR文件
  • 棒球俱乐部青少年成长体系·棒球1号位
  • 折叠式菜单怎么做编程,初学编程系统化教程初级1上线
  • 与AI对话,如何写好prompt?
  • 基于YOLOv8模型和UA-DETRAC数据集的车辆目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 0037【Edabit ★☆☆☆☆☆】【修改Bug 2】Buggy Code (Part 2)
  • 【算法中的Java】— 判断语句
  • 【单例模式】饿汉式,懒汉式?JAVA如何实现单例?线程安全吗?
  • Spark_SQL-DataFrame数据写出以及读写数据库(以MySQl为例)
  • Linux进程终止
  • 0036【Edabit ★☆☆☆☆☆】【让我加油】Let‘s Fuel Up!
  • React 中常用的几种路由跳转方式
  • C++内存管理:其七、标准库中的allocator