A Newman Custom Xray reporter is designed to easily import your result of end to end test into XRAY. It display the result of the test on xray for 1 test for a complete collection, with all errors related to a collection.
It's a fork of newman Junit XRAY reporter.
The generation of the xml look like :
<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="1">
<testsuite name="COLLECTION-NAME" tests="11" timestamp="2022-09-06T10:14:11.848" failures="1">
<testcase classname="CollectionName" name="COLLECTION-NAME">
<failure type="AssertionFailure" message="expected response to have status code 302 but got 200">
<![CDATA[Error message: expected response to have status code 302 but got 200.]]>
<![CDATA[Stacktrace: AssertionError: expected response to have status code 302 but got 200
at Object.eval sandbox-script.js:1:11).]]>
</failure>
</testcase>
</testsuite>
</testsuites>
The result of xray of multiples generation look like :
To upload on xray, you can use this curl command :
content=$(cat result/xray/result.xml)"
curl -X POST -H 'Authorization: Bearer ${token}' -H 'Content-Type: application/xml' --data-raw '$content' '${baseUrl}/api/v2/import/execution/junit?testExecKey=${testExecutionKey}'\"
The installation should be global if newman is installed globally, local otherwise. (Replace -g from the command below with -S for a local installation)
$ npm install -g newman-reporter-customxray
In order to enable this reporter, specify customxray
in Newman's -r
or --reporters
option.
In order to enable this reporter, specify customxray
in Newman's -r
or --reporters
option.
newman run https://www.getpostman.com/collections/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65-JsLv -r customxray --reporter-customxray-export './examples/xray/result.xml' -n 2
CLI Option | Description |
---|---|
--reporter-customxray-export <path> |
Specify a path where the output XML file will be written to disk. If not specified, the file will be written to newman/ in the current working directory. |
The CLI functionality is available for programmatic use as well.
const newman = require('newman');
newman.run({
collection: require('https://www.getpostman.com/collections/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65-JsLv'), // can also provide a URL or path to a local JSON file.
reporters: 'customxray',
reporter: {
junitxray: {
export: './examples/xray/result.xml', // If not specified, the file will be written to `newman/` in the current working directory.
}
},
iterationCount: 2
}, function (err) {
if (err) { throw err; }
console.log('collection run complete!');
});
newman-reporter-customxray | newman | node |
---|---|---|
v1.0.0 | >= v4.0.0 | >= v6.x |
The reporter and newman must be installed at the same level, the installation should be global if newman is installed globally, local otherwise.
This software is licensed under Apache-2.0. Copyright Postdot Technologies, Inc. See the LICENSE file for more information.