news 2026/4/15 14:06:33

第三方CMA/CNAS双资质软件测试机构【Apifox中Mock.js集成指南】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第三方CMA/CNAS双资质软件测试机构【Apifox中Mock.js集成指南】

Apifox和Mock.js的集成为接口测试和数据模拟提供了强大支持,主要通过三种方式实现:在接口字段中直接使用 @ 占位符、在“高级 Mock”中结合Nunjucks模板生成复杂动态数据,以及通过JavaScript脚本实现完全思路控制。

Mock.js语法

在Apifox中应用Mock.js,是掌握其两大语法规范,用来定义数据的结构和内容。

数据模板定义规范

创建数据的规则,格式为 'name|rule': value。规则 (rule) 的含义根据属性值 (value) 的类型动态变化。

字符串:‘phone\|3-5‘: ‘*‘ 生成3到5个星号。

数字:

‘age\|18-60‘: 1 生成18-60的整数。

‘score\|60-100.1-2‘: 1 生成60-100、带1-2位小数的浮点数。

‘id\|+1‘: 100 生成自增ID(用于数组)。

布尔值:‘success\|1‘: true 表示true/false概率各50%。

对象:‘info\|1-2‘: {a:1, b:2} 随机选取1到2个属性。

数组:

‘status\|1‘: [1,2,3] 随机选取1个元素。

‘list\|3‘: [‘a‘, ‘b‘] 将数组重复3次。

函数和正则:‘email‘: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ 生成一致正则的字符串。

数据占位符定义规范

填充数据的快捷方式,格式为 @占位符(参数)。

基础类型:@integer(60, 100), @float(0, 100, 2, 2), @string(‘lower‘, 5), @boolean。

文本和名称:@ctitle(2,4) (中文标题), @cname (中文名), @name (英文名), @paragraph。

联系方式和网络:@email, @ip, @url。

地址和ID:@city (城市), @county(true) (省市区), @id (身份证), @guid。

时间:@datetime (日期时间), @date (日期), @time (时间)。

图像:@image(‘200x100‘, ‘#ccc‘, ‘#000‘, ‘png‘, ‘文本‘) 生成图片Base64。

扩展占位符:Apifox额外提供了如 @phone (中国手机号) 等更本土化的占位符。

生成动态分页数据

下面是一个在高级Mock使用Nunjucks模板结合Mock.js生成分页数据的示例:

{ "code": 0, "message": "success", "data": { "total": 150, "pageSize": {{fox.mockRequest.getParam('pageSize') or 10}}, "currentPage": {{fox.mockRequest.getParam('page') or 1}}, "list": [ {% for i in range(0, 20) %} { "id": "@integer(10000,99999)", "userName": "@cname", "userAvatar": "@image('64x64')", "email": "@email", "city": "@city", "lastLogin": "@datetime", "status|1": ["active", "inactive"] }{% if not loop.last %},{% endif %} {% endfor %} ] } }

文章来源:卓码软件测评

精彩推荐:点击蓝字即可
软件负载测试API自动化测试软件测试第三方软件测试软件性能测试软件测试机构

代码分析:

动态参数读取:{{fox.mockRequest.getParam(‘page‘)}} 直接获取请求参数,使模拟响应和请求联动。

Nunjucks循环:{% for i in range(0, 20) %} 生成包含20条记录的数组,轻松模拟大批量数据。

Mock.js占位符嵌套:在循环体内使用 @cname、@datetime 等生成每一条不重复的随机数据。

DTD规则混合使用:“status\|1“: [“active“, “inactive“] 在模板内使用Mock.js规则,随机选择状态。

技巧

条件响应和异常模拟:在“自定义脚本”中,可以用JavaScript根据请求头、Cookie等返回不同数据或模拟超时、403/500等状态。如,检查 fox.mockRequest.headers.get(‘token‘) 是不是存在来决定是不是返回403错误。

使用技巧:

准确过滤:高级Mock为“期望”设置具体的“参数条件”(如Query参数、JSON Path),让不同的请求命中不同的Mock响应。

延迟:在期望设置或脚本中,使用 fox.mockResponse.setDelay(3000) 模拟网络延迟,测试前端加载状态。

云端:利用Apifox的云端Mock功能,生成一个固定URL供整个团队访问,保证数据一致。

优先级和调试:记住Mock优先级为 高级Mock期望 > 自定义脚本 > 字段级Mock。如果未按预期返回数据,请先检查是不是被高优先级规则包括。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 6:37:30

手机上传文件到HeyGem?支持但大文件建议PC端

手机上传文件到 HeyGem?支持但大文件建议 PC 端 在短视频内容爆炸式增长的今天,越来越多的企业和个人开始借助 AI 数字人技术快速生成高质量播报视频。从在线课程讲解到企业宣传口播,只需一段音频和一个人像画面,就能让“数字分身…

作者头像 李华
网站建设 2026/4/11 15:20:33

输出文件保存在哪?HeyGem生成视频存储路径说明

输出文件保存在哪?HeyGem生成视频存储路径说明 在部署和使用本地化 AI 视频生成系统时,一个看似简单却高频被问的问题是:“我生成的视频到底存到哪里去了?” 尤其当团队开始批量制作数字人内容、需要对接自动化流程或做结果归档时…

作者头像 李华
网站建设 2026/4/13 7:35:22

为什么顶尖团队都在用C# Span?深入剖析其内存安全底层机制

第一章&#xff1a;C# Span内存安全的核心价值Span<T> 是 C# 中用于高效、安全地操作内存的核心类型&#xff0c;尤其适用于需要高性能数据处理的场景。它允许开发者在不复制数据的前提下&#xff0c;直接访问栈内存、堆内存或本机内存中的连续数据片段&#xff0c;同时保…

作者头像 李华
网站建设 2026/4/12 2:00:51

出口管制提醒:含有AI核心技术的产品需注意跨境限制

出口管制提醒&#xff1a;含有AI核心技术的产品需注意跨境限制 在当前全球科技竞争日益激烈的背景下&#xff0c;一款看似普通的AI视频生成工具&#xff0c;也可能成为国际贸易合规审查的焦点。比如“HeyGem 数字人视频生成系统批量版webui版”——它能让一段音频自动驱动多个数…

作者头像 李华
网站建设 2026/3/28 19:09:51

C#异步通信模型详解:大幅提升数据吞吐量的5个关键技术点

第一章&#xff1a;C#异步通信模型概述C# 异步通信模型是现代 .NET 应用程序中实现高效 I/O 操作和响应式编程的核心机制。它基于任务并行库&#xff08;TPL&#xff09;和 async/await 语法糖&#xff0c;使开发者能够编写非阻塞代码&#xff0c;从而提升应用程序的吞吐量与用…

作者头像 李华
网站建设 2026/4/15 1:45:52

使用HeyGem批量生成数字人教学视频的完整流程解析

使用HeyGem批量生成数字人教学视频的完整流程解析 在教育内容生产日益数字化的今天&#xff0c;一个常见的痛点浮出水面&#xff1a;如何以低成本、高效率的方式制作大量高质量的教学视频&#xff1f;传统真人出镜拍摄不仅耗时耗力&#xff0c;还受限于讲师时间安排与场地资源。…

作者头像 李华