如何在 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"))

然后你可以获取父级的引用,并获取结果中的所有子级并遍历它以引用前一个父级的每个输出,直到你得到结果为 [],这表明你在基础文件夹中然后从中提取测试用例。