如何将JMeter与Mocha单元测试集成?可行性及实现方法
结论
JMeter没有原生内置的Mocha测试执行能力,但可以通过调用本地系统命令的方式实现Mocha用例的执行,不需要额外安装第三方插件。
前置准备
- 运行JMeter的机器提前安装好Node.js、Mocha依赖
- 将编写的Mocha测试代码保存为本地js文件,注意
describe的回调函数不需要加async,否则会导致Mocha无法正常收集用例,修正后的可运行代码参考:
const assert = require('assert'); describe("simple test", () =>{ it("first test" , async()=>{ assert.equal( 1 , 1); }) })
- 先在本地终端执行命令验证测试可正常跑通:
npx mocha 你的测试文件路径,确认本地执行无报错后再配置JMeter
JMeter配置步骤
- 在线程组下新建OS Process Sampler(OS进程取样器),该组件为JMeter内置组件,用于调用本地系统命令
- 按运行JMeter的操作系统配置取样器参数:
- Windows环境:
- 命令栏填写:
cmd - 命令参数栏依次添加:
/cnpx mocha 你的测试文件完整路径 --reporter json
- 命令栏填写:
- Linux/macOS环境:
- 命令栏填写:
/bin/bash - 命令参数栏依次添加:
-cnpx mocha 你的测试文件完整路径 --reporter json
- 命令栏填写:
- Windows环境:
追加
--reporter json参数是为了让Mocha输出结构化JSON格式的执行结果,方便后续在JMeter中做结果断言、统计通过率;如果只需要判断执行是否成功,可以不加该参数。
- (可选)添加执行结果断言:
- 未使用JSON报告格式时,给OS进程取样器添加响应断言,校验响应内容包含
passing、不包含failing关键词即可判断用例是否通过 - 使用JSON报告格式时,添加JSON提取器提取返回结果中的
stats.failures字段,断言该字段值为0即可判定所有用例执行通过
- 未使用JSON报告格式时,给OS进程取样器添加响应断言,校验响应内容包含
- 添加「查看结果树」监听器,运行JMeter脚本后即可查看Mocha用例的执行输出、执行状态,执行逻辑和JMeter其他内置取样器完全一致。
内容的提问来源于stack exchange,提问作者js developer
相关产品推荐
相关产品推荐

