newman中.on('request')事件未触发,运行newman需要额外安装依赖吗
Newman
request事件未触发解决方案 运行newman不需要安装额外配套组件即可正常绑定监听事件,你遇到的问题是代码写法及流程校验缺失导致的,具体问题和修正方案如下:
核心问题说明
- 缺少运行异常捕获逻辑:你当前没有监听
error事件,如果集合文件加载失败、集合配置无效、运行启动失败,都会直接抛出异常中断执行,自然无法触发request事件 - 未做运行启动校验:无法确认newman是否已经正常启动运行,若集合内无有效请求、所有请求被前置脚本中止,也不会触发
request事件
修正后参考代码
const newman = require('newman'); const fs = require('fs'); newman.run({ collection: require('./Collection.json'), reporters: 'cli' }) // 捕获全局运行错误 .on('error', (error) => { console.error('运行异常:', error); }) // 确认运行正常启动 .on('start', () => { console.log('Newman 运行已启动'); }) // 请求完成后触发的request事件 .on('request', (error, data) => { console.log("request事件触发"); if(error) { console.log('请求异常:', error); return; } console.log('请求数据:', data); }); fs.writeFile(`foo.txt`, 'bar', function (error) { if (error) { console.error('文件写入异常:', error); } });
额外排查点
如果修改后还是无法触发事件,可按以下顺序排查:
- 确认
Collection.json文件路径正确,且集合内配置了可正常执行的有效请求 - 检查集合内的前置脚本、集合变量是否配置了跳过请求的逻辑
- 本地先通过
newman run Collection.json命令直接运行集合,确认请求可以正常执行完毕
内容的提问来源于stack exchange,提问作者SOUPERNIKA A S
相关产品推荐
相关产品推荐

