跳到主要内容

使用 Newman 自定义 reporters

自定义报告器可用于使用 Newman 生成满足特定用例的 collection run 报告,例如,在请求(或其测试)失败时注销响应主体。

建立自定义记者

自定义报告器是一个名称为 的 Node.js 模块newman-reporter-<name>

要创建自定义报告程序,请执行以下操作:

  1. 在你选择的目录中,创建一个带有npm init.

  2. 添加一个index.js文件,该文件导出以下形式的函数:

    function (emitter, reporterOptions, collectionRunOptions) {
    // emitter is is an event emitter that triggers the following events: https://github.com/postmanlabs/newman#newmanrunevents
    // reporterOptions is an object of the reporter specific options. The usage examples below have more details.
    // collectionRunOptions is an object of all the collection run options:
    // https://github.com/postmanlabs/newman#newmanrunoptions-object--callback-function--run-eventemitter
    };
  3. 使用 发布你的记者npm publish,或在本地使用你的记者。阅读使用说明以获取更多信息。

@myorg/newman-reporter-<name>还支持 Scoped reporter 包名称。

使用自定义记者

要使用自定义报告程序,必须先安装它。例如,要使用 Newman TeamCity 报告程序,请安装报告程序包:

npm install newman-reporter-teamcity

请注意,包裹名称的格式为newman-reporter-<name>,其中<name>是报告者的实际姓名。如果全局安装了 Newman,则安装是全局的,否则是本地的。npm install ...使用-g全局安装标志运行。

要使用本地(未发布的)记者,请改为运行命令npm install <path/to/local-reporter-directory>

通过命令行工具或以编程方式使用已安装的报告程序。此处,newman-reporter在选项中指定报告者名称时不需要前缀。

范围报告程序包必须使用范围前缀指定。例如,如果你的包名称是@myorg/newman-reporter-name,则必须使用 指定报告者@myorg/name

在命令行上:

newman run /path/to/collection.json -r myreporter --reporter-myreporter-<option-name> <option-value> # The option is optional

以编程方式:

var newman = require('newman');

newman.run({
collection: '/path/to/collection.json',
reporters: 'myreporter',
reporter: {
myreporter: {
'option-name': 'option-value' // this is optional
}
}
}, function (err, summary) {
if (err) { throw err; }
console.info('collection run complete!');
});

在上述两种情况下,记者选项都是可选的。