我正在尝试使用 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 的建议都会很有用。
在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)
和C26603和C10047只是测试我分配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地图:
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 ×2
annotations ×1
arrays ×1
character ×1
jenkins ×1
list ×1
listobject ×1
string ×1
testcase ×1
testrail ×1
whitespace ×1