小编Pra*_*wal的帖子

注释/获取/映射 Testrail 测试用例 ID 到本地 Java TestNG 测试(Jenkins Test Rail 集成)

我正在尝试使用 Testrail 作为测试用例管理系统,因此,将 testrail 与 Jenkins 集成会很有用。

这就是我想要实现的目标:

假设我在 testrail 中手动创建了三个测试用例,用例 ID 为 C1、C2 和 C3,这些测试用例将具有一些独特的自动化测试名称,例如 A1、A2 和 A3(在更多信息中,testrail 中将有一个字段如此独特的信息)

当我点击“开始自动化测试”按钮并从 testrail 运行 Jenkins 作业时(考虑到我已经为具有此按钮的 testrail 实现了 UI 脚本):

界面脚本输出

,我想运行一个脚本/东西,它采用所选测试用例的用例 ID,并将这些 ID 临时注释到实际的 Java 测试中,以便它可以运行那些特定的测试并将结果发布回 Testrail。

我能想到的方法:

当我点击 Testrail 上的“开始自动化测试”按钮时,我可以创建一个脚本来运行以创建一个 XML 文件,该文件将包含来自 Testrail 的所需的选定测试用例。然后,此 XML 将作为 Jenkins 作业的默认输入提供,它将运行 XML 文件中提到的测试用例。此 XML 将是临时的,每次从 Testrail 进行选择时都会被替换。但是,你怎么做呢?我是 Testrail 的新手并阅读了它的 API,看起来 API 将有助于将结果发布回 Testrail。但是,我们如何实现 ID 的映射?

此外,任何关于将结果发布回 Testrail 的建议都会很有用。

testcase jenkins jenkins-plugins testrail jenkins-workflow

5
推荐指数
1
解决办法
3703
查看次数

Java修剪字符和空格

在Java TestNG测试之上阅读注释,我的注释为:

@TestInfo(id={ " C26603", " C10047" }) 
Run Code Online (Sandbox Code Playgroud)

哪里TestInfo只是具有id() as String array以下内容的界面:

public String[] id() default {};
Run Code Online (Sandbox Code Playgroud)

C26603C10047只是测试我分配ID.

以下是测试结构的外观(例如):

案例1:

@TestInfo(id={ " C26603", " C10047" })
public void testDoSomething() {
     Assert.assertTrue(false);
}
Run Code Online (Sandbox Code Playgroud)

同样更清洁的情况是:

案例2:

@TestInfo(id={ "C26603", "C10047" })
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此案例2比案例1更清晰.此案例2在测试ID中没有空格.

我如何获取这些ID并确保它们在开始时没有那个C字符而只是一个纯数字?例如,我只想要26603我的第一个id和10047第二个id.id数组中有一些空格(引号内).我想修剪一切(如白色空格)并获得id.我目前正在申请for loop处理每个id,一旦我得到纯数字,我想进行第三方API调用(API期望纯数作为输入,因此删除C作为初始字符和其他空格很重要).

这是我尝试过的:

TestInfo annotation = method.getAnnotation(TestInfo.class);
if(annotation!=null) {
        for(String test_id: annotation.id()) {
            //check if id is null or empty
            if (test_id !=null && !test_id.isEmpty()) …
Run Code Online (Sandbox Code Playgroud)

java string whitespace annotations character

2
推荐指数
1
解决办法
845
查看次数

Java List Object而不是Array

我有这样的Java地图:

Map<String, Object> data = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)

我正在执行以下操作:

data.put("case_ids", new int[] { 31527 });
Run Code Online (Sandbox Code Playgroud)

其中case_ids是第三方API的属性之一.但是,该API抛出incorrect API request error并建议我使用List对象而不是Array:

data.put("case_ids", new int[] { 31527 });

不是List的专家,有什么建议吗?喜欢data.put("case_ids", new List[] { 31527 });

编辑:扩展我当前的问题(避免重新发布或类似的问题).如果我为上面放置操作设置了大量值并想要创建已知值列表,该怎么办?我不认为这是一个正确的方法来提及由逗号分隔的值列表,如31527,3152,31529,31530,31531,...等.我宁愿将它存储在某个地方,只需将其作为输入调用 -data.put("case_ids", new int[] { input });.另外,这可能没有文件吗?只是想避免依赖文件.

java arrays list file-handling listobject

0
推荐指数
1
解决办法
128
查看次数