带有状态代码问题的 TestLink APIException

TestLink APIException with Status Code issue

在使用下面的 TestLink APIConst 值时,xml-rpc 调用产生了异常。没有为相应的测试用例打印报告

testlinkResult = TestLinkAPIResults.TEST_DEPARTED;
testlinkResult = TestLinkAPIResults.TEST_WRONG; 

使用这些状态代码之一调用 reportTCResult() 会产生以下异常

The xml-rpc call to TestLink API method tl.reportTCResult failed.
Result[0] = {message=The status code (d) provided is not valid!, code=6000}
The xml-rpc call to TestLink API method tl.reportTCResult failed.
Result[0] = {message=The status code (w) provided is not valid!, code=6000}

当我使用TEST_PASSEDTEST_FAILED时,结果打印成功。我的问题是为什么 TEST_DEPARTEDTEST_WRONG 会失败?


测试框架:TestNG with Selenum Webdriver & Java

如果需要任何更改或有关配置文件等的信息,请告诉我。

Testlink 服务器的文档 API 很难找到!但是,我做了一些搜索并在 someones blog here, which led me to this question 上找到了一些自动生成的文档(关于将 Testlink 与 Jenkins 集成)

结果是在你的testlink服务器上,你需要设置你想使用的状态码。查看 testlink 服务器 code here 似乎它们是在 const.inc.php 文件中设置的(那里发布的版本中的第 420 行)。默认值似乎是:

$tlCfg->results['status_code'] = array (
'failed' => 'f',
'blocked' => 'b',
'passed' => 'p',
'not_run' => 'n',
'not_available' => 'x',
'unknown' => 'u',
'all' => 'a'
); 

执行此操作的一种方法是将要使用的状态直接添加到该文件。如果您的安装中已经有名为 custom_config.inc.php 或类似的东西 - 您可能必须在那里添加数组 - 请参阅 this question in the testlink bug tracker.

您需要添加

'departed` => 'd'

'wrong' => 'w'

所以你的数组现在看起来像:

$tlCfg->results['status_code'] = array (
'failed' => 'f',
'blocked' => 'b',
'passed' => 'p',
'not_run' => 'n',
'not_available' => 'x',
'unknown' => 'u',
'all' => 'a',
'departed' => 'd',
'wrong' => 'w'
); 

不要忘记逗号,否则你可能会 运行 into this problem(在 Testlink 错误系统上报告)

在 Richard 的帮助下,需要更新 Testlink 中的以下文件

cfg/const.inc.php

在上面的文件中将更新以下内容

$tlCfg->results['status_label']
$tlCfg->results['status_label_for_exec_ui']
$tlCfg->results['charts']['status_colour'] 

添加所有新引入的状态应该添加

locale/en_gb /string.txt
 Status (used wide)