如何在 Java 的 Rally Rest 工具包中获取完整的 TestFolder 树?
How to get whole tree of TestFolders in Rally Rest toolkit for Java ?
在我的 Rally 项目中,我有这样的测试文件夹结构:
TestFolderGrandGrandParent1
TestFolderGrandParent1
TestFolderParent1
testcase1, testcase2..... testcase5
TestFolderChild1
testcase10, testcase11..... testcase15
TestFolderChild2
testcase20, testcase21..... testcase25
TestFolderChild3
TestFolderGrandChild1
testcase20, testcase21..... testcase25
我已经找到了如果我只有 2 级关系时如何获取测试用例的方法,例如 parent、child 。
目前,我正在寻找一种方法来获取整棵树,通过了解第一个文件夹,让所有底层文件夹遍历每个文件夹。
不幸的是,没有有效的方法来做到这一点。您必须查询顶级测试文件夹,然后递归遍历树,在每个级别获取子文件夹。
在项目中搜索测试文件夹。它将列出该项目中的所有测试文件夹。
RallyRestApi restApi = new RallyRestApi(new URI("https://rally.rallydev.com/"), "_apogjlfdkjglfjlksr23rfdlj");
String wsapiVersion = "v2.0";
String workspaceRef = "/workspace/01245";
String projectRef = "/project/6757552";
if(restApi!=null){
restApi.setWsapiVersion(wsapiVersion);
QueryRequest queryRequest = new QueryRequest("TestFolders");
queryRequest.setFetch(new Fetch(new String[] { "Name","FormattedID","TestFolder"}));
queryRequest.setWorkspace(workspaceRef);
queryRequest.setProject(projectRef);
queryRequest.setScopedDown(true);
queryRequest.setLimit(Integer.MAX_VALUE);
queryRequest.setPageSize(Integer.MAX_VALUE);
QueryResponse queryResponse = null;
JsonArray jsonarr = new JsonArray();
queryResponse = restApi.query(queryRequest);
int responseTotalResultsCount = queryResponse.getTotalResultCount();
jsonarr.addAll(queryResponse.getResults());
int jsonArrSize = jsonarr.size();
for (int i=0; i<queryResponse.getResults().size();i++){
JsonObject testCaseJsonObject = queryResponse.getResults().get(i).getAsJsonObject();
System.out.println(testCaseJsonObject.getAsJsonObject().get("FormattedID")+": "+testCaseJsonObject.getAsJsonObject().get("Name"));
}
}
考虑到如果没有重复的文件夹,那么您需要做的就是设置基础文件夹。
示例:
new QueryFilter("Name","=","base folder name").and(new QueryFilter("Parent","=","null"))
然后你可以获取父级的引用,并获取结果中的所有子级并遍历它以引用前一个父级的每个输出,直到你得到结果为 [],这表明你在基础文件夹中然后从中提取测试用例。
在我的 Rally 项目中,我有这样的测试文件夹结构:
TestFolderGrandGrandParent1 TestFolderGrandParent1 TestFolderParent1 testcase1, testcase2..... testcase5 TestFolderChild1 testcase10, testcase11..... testcase15 TestFolderChild2 testcase20, testcase21..... testcase25 TestFolderChild3 TestFolderGrandChild1 testcase20, testcase21..... testcase25
我已经找到了如果我只有 2 级关系时如何获取测试用例的方法,例如 parent、child
不幸的是,没有有效的方法来做到这一点。您必须查询顶级测试文件夹,然后递归遍历树,在每个级别获取子文件夹。
在项目中搜索测试文件夹。它将列出该项目中的所有测试文件夹。
RallyRestApi restApi = new RallyRestApi(new URI("https://rally.rallydev.com/"), "_apogjlfdkjglfjlksr23rfdlj");
String wsapiVersion = "v2.0";
String workspaceRef = "/workspace/01245";
String projectRef = "/project/6757552";
if(restApi!=null){
restApi.setWsapiVersion(wsapiVersion);
QueryRequest queryRequest = new QueryRequest("TestFolders");
queryRequest.setFetch(new Fetch(new String[] { "Name","FormattedID","TestFolder"}));
queryRequest.setWorkspace(workspaceRef);
queryRequest.setProject(projectRef);
queryRequest.setScopedDown(true);
queryRequest.setLimit(Integer.MAX_VALUE);
queryRequest.setPageSize(Integer.MAX_VALUE);
QueryResponse queryResponse = null;
JsonArray jsonarr = new JsonArray();
queryResponse = restApi.query(queryRequest);
int responseTotalResultsCount = queryResponse.getTotalResultCount();
jsonarr.addAll(queryResponse.getResults());
int jsonArrSize = jsonarr.size();
for (int i=0; i<queryResponse.getResults().size();i++){
JsonObject testCaseJsonObject = queryResponse.getResults().get(i).getAsJsonObject();
System.out.println(testCaseJsonObject.getAsJsonObject().get("FormattedID")+": "+testCaseJsonObject.getAsJsonObject().get("Name"));
}
}
考虑到如果没有重复的文件夹,那么您需要做的就是设置基础文件夹。
示例:
new QueryFilter("Name","=","base folder name").and(new QueryFilter("Parent","=","null"))
然后你可以获取父级的引用,并获取结果中的所有子级并遍历它以引用前一个父级的每个输出,直到你得到结果为 [],这表明你在基础文件夹中然后从中提取测试用例。