Postman / Newman junit报告定制

时间:2017-07-03 15:00:44

标签: junit postman newman

我使用postman和newman执行自动化测试,我执行JUnit导出以便在TFS中利用它们。 但是,当我打开.xml报告时,失败如下所示:

-<failure type="AssertionFailure">
    -<![CDATA[Failed 1 times.]]>
</failure>

我想知道是否可以自定义&#34;失败1次。&#34;信息,以传递有关失败的更多相关数据(即.json身体错误和描述)

谢谢

亚历山大

1 个答案:

答案 0 :(得分:0)

好吧,最后我发现了如何继续(不是一个干净的方式,但到目前为止我的目的已经足够了):

我影响了文件C:\Users\<myself>\AppData\Roaming\npm\node_modules\newman\lib\reporters\junit\index.js

请求的数据和响应可以从'executions'对象中恢复:

stringExecutions = JSON.stringify(executions); //provide information about the arguments of the object "executions"

从这里我可以通过json解析这个元素并提取我想要的东西来获取一般信息:

jsonExecutions = JSON.parse(stringExecutions)
jsonExecutions[0].response._details.code // gives me the http return code,
jsonExecutions[0].response._details.name // gives me the status,
jsonExecutions[0].response._details.detail //gives a bit more details

错误数据(在测试用例/ testsuite级别)可以从'err.error'对象中恢复:

stringData = JSON.stringify(err.error); jsonData = JSON.parse(stringData);

从中我提取了我需要的数据,即

jsonData.name // the error type
jsonData.message // the error detail 
jsonData.stacktrace // the error stack

顺便说一下,在原始文件中,堆栈无法显示,因为error.err中没有'stack'参数(它被命名为'stacktrace')。

最后,可以从'failure'对象中恢复故障数据(在测试步骤/测试用例级别):

stringFailure = JSON.stringify(failures); jsonFailure = JSON.parse(stringFailure);

从中我提取:

jsonFailure[0].name // the failure type 
jsonFailure[0].stack // the failure stack

出于我的目的,我将jsonExecutions的响应详细信息添加到我的testsuite错误数据中,这在XML报告中比以前更加详细。

如果有更清洁/更聪明的方式来执行此操作,请不要犹豫告诉我,我将不胜感激

下一步:通过创建自定义报告器来清理它。 :)

亚历山大