我已经使用下面的指南将XRAY与webdriver,mocha集成在一起。
https://docs.getxray.app/display/XRAYCLOUD/Testing+web+applications+using+Mocha+and+WebdriverIO#tab-API https://docs.getxray.app/display/XRAY/Import+Execution+Results+-+REST#ImportExecutionResultsREST-JUnitXMLresults
JUnit记者的WDIO Config:
reporters: ['spec',
        ['junit', {
            outputDir: './',
            outputFileFormat: function(options) { 
                return `results.xml`
            }
        }],Curl将results.xml导入到XRAY中:
curl -H "Content-Type: multipart/form-data" -u "UserName":"PASSWORD" -F "file=@results.xml" "${URL}/rest/raven/1.0/import/execution/junit?projectKey=${projectKey}&testPlanKey=${testPlanKey}"运行测试套件的命令:
Run single suite:     npm run --suite mysuite1
Run multiple suites:  npm run --suite mysuite1 --suite mysuite2执行单个套件时,将创建result.xml并将其成功导入XRAY。但是,当执行上述多个套件时,result.xml只有最后一个套件的测试结果,因此只有最后一个套件的测试结果被导入到XRAY中。
由于XRAY导入API需要projectkey和testplankey,因此应该为每个套件创建一个结果文件,并为每个具有正确文件名、项目和计划的结果文件调用导入API。
可以帮助的是修改结果文件名的方法,它可以与测试计划相关联,例如result_mysuite1.xml。
如果需要更多的信息,请告诉我。
提前谢谢你,马希马。
发布于 2022-08-24 15:53:40
我们在您所提到的页面中提供的示例实际上是一个简单的用例,只有一个测试,如果您希望有多个结果,请在名称中包含一个动态id,以便它将创建多个文件(我们将在以后的教程中包含此建议):
[
    'junit',
    {
        outputDir: './',
        outputFileFormat(options) {
            return `results-${options.cid}.xml`;
        },
    },
], 然后你可以把这些结果推到X光上。
发布于 2022-08-30 09:54:44
Junit为每个运行程序创建一个JUnit XML文件,与文档相同。您可以做的是配置WDIO (wdio.conf.js),根据可用的id生成一个不同的文件。
reporters: ['spec',
        ['junit', {
            outputDir: './',
            outputFileFormat: function(options) { 
                return `results-${options.cid}.xml`
            }
        }],如果您有2个员工,那么您将有2个类似于results-0-0.xml, results-0-1.xml的文件。然后,您可以一个一个地上传它们,或者使用一个实用工具(如junit-合并 )合并它们。
要一个一个地上传,使用一些shell脚本,您可以这样做:
for n in `ls results-*.xml`; do curl -H "Content-Type: multipart/form-data" -u "UserName":"PASSWORD" -F "file=@$n" "$BASE_URL/rest/raven/2.0/import/execution/junit?projectKey=$projectKey&testPlanKey=$testPlanKey"; done如果您希望合并这些文件并一次性上传它们(我喜欢的方法),您可以这样做:
npm install junit-merge
node_modules/junit-merge/bin/junit-merge  -o junit.xml results-0-0.xml  results-0-1.xml
# or if you have them in a directory, junit-merge  -o junit.xml -d output_dir
curl -H "Content-Type: multipart/form-data" -u "UserName":"PASSWORD" -F "file=@junit.xml" "$BASE_URL/rest/raven/2.0/import/execution/junit?projectKey=$projectKey&testPlanKey=$testPlanKey"注意:另一种选择可能是强迫WDIO只有一个运行程序;然而,似乎每个规范都创建了一个运行程序,至少从我所能评估的角度来看是这样的。
https://stackoverflow.com/questions/73473879
复制相似问题