首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XRAY和WebdriverIO集成问题-导入XRAY的部分结果

XRAY和WebdriverIO集成问题-导入XRAY的部分结果
EN

Stack Overflow用户
提问于 2022-08-24 13:15:03
回答 2查看 87关注 0票数 1

我已经使用下面的指南将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:

代码语言:javascript
运行
复制
reporters: ['spec',
        ['junit', {
            outputDir: './',
            outputFileFormat: function(options) { 
                return `results.xml`
            }
        }],

Curl将results.xml导入到XRAY中:

代码语言:javascript
运行
复制
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}"

运行测试套件的命令:

代码语言:javascript
运行
复制
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。

如果需要更多的信息,请告诉我。

提前谢谢你,马希马。

EN

回答 2

Stack Overflow用户

发布于 2022-08-24 15:53:40

我们在您所提到的页面中提供的示例实际上是一个简单的用例,只有一个测试,如果您希望有多个结果,请在名称中包含一个动态id,以便它将创建多个文件(我们将在以后的教程中包含此建议):

代码语言:javascript
运行
复制
[
    'junit',
    {
        outputDir: './',
        outputFileFormat(options) {
            return `results-${options.cid}.xml`;
        },
    },
], 

然后你可以把这些结果推到X光上。

票数 0
EN

Stack Overflow用户

发布于 2022-08-30 09:54:44

Junit为每个运行程序创建一个JUnit XML文件,与文档相同。您可以做的是配置WDIO (wdio.conf.js),根据可用的id生成一个不同的文件。

代码语言:javascript
运行
复制
reporters: ['spec',
        ['junit', {
            outputDir: './',
            outputFileFormat: function(options) { 
                return `results-${options.cid}.xml`
            }
        }],

如果您有2个员工,那么您将有2个类似于results-0-0.xml, results-0-1.xml的文件。然后,您可以一个一个地上传它们,或者使用一个实用工具(如junit-合并 )合并它们。

要一个一个地上传,使用一些shell脚本,您可以这样做:

代码语言:javascript
运行
复制
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

如果您希望合并这些文件并一次性上传它们(我喜欢的方法),您可以这样做:

代码语言:javascript
运行
复制
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只有一个运行程序;然而,似乎每个规范都创建了一个运行程序,至少从我所能评估的角度来看是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73473879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档