简体   繁体   English

如何检索与测试集关联的测试用例

[英]How to retrieve Test Cases associated with the Test Set

I tried to run provided code for jar 2.0.2 and now for 2.0.4 Both times received an error at line: int numberOfTestCases = testSetJsonObject.get("TestCases").getAsJsonArray().size(); 我尝试为jar 2.0.2和现在的2.0.4运行提供的代码,两次都在行中收到错误: int numberOfTestCases = testSetJsonObject.get("TestCases").getAsJsonArray().size();

Exception in thread "main" java.lang.IllegalStateException: This is not a JSON Array. at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:106) at GetTCofTS.main(GetTCofTS.java:50)

I can overcome this error (since it is really not an array that is coming back) , but it won't resolve my problem, that I am trying to get not only the number of TestCases associated with the current TestSet, but list of TestCases - at least their formatted ID. 我可以克服这个错误(因为它实际上不是返回的数组),但是它不能解决我的问题,我不仅要尝试获取与当前TestSet相关联的TestCases的数量,还要尝试获取TestCases的列表-至少是格式化的ID。 Is it a bag in Rally? 是拉力赛的包吗?

public class GetTCofTS {

public static void main(String[] args) throws Exception {

    String host = "https://rally1.rallydev.com";

    String username = "user@co.com";
    String password = "secret";

    String applicationName = "RESTExampleFindTestCasesOfTestSet";
    String workspaceRef = "/workspace/1111";
    String projectRef = "/project/2222";
    String wsapiVersion = "1.43";


    RallyRestApi restApi = null;
    try {
        restApi = new RallyRestApi(
                new URI(host),
                username,
                password);
        restApi.setApplicationName(applicationName); 

        QueryRequest testSetRequest = new QueryRequest("TestSet");
        testSetRequest.setWorkspace(workspaceRef);
        restApi.setWsapiVersion(wsapiVersion);
        testSetRequest.setFetch(new Fetch(new String[] {"Name", "TestCases", "FormattedID"}));

        testSetRequest.setQueryFilter(new QueryFilter("Name", "=", "someTS"));

        QueryResponse testSetQueryResponse = restApi.query(testSetRequest);
        System.out.println("Successful: " + testSetQueryResponse.wasSuccessful());
        System.out.println("Size: " + testSetQueryResponse.getTotalResultCount());
        for (int i=0; i<testSetQueryResponse.getResults().size();i++){
            JsonObject testSetJsonObject = testSetQueryResponse.getResults().get(i).getAsJsonObject();
            System.out.println("Name: " + testSetJsonObject.get("Name") + " ref: " + testSetJsonObject.get("_ref").getAsString() + " Test Cases: " + testSetJsonObject.get("TestCases"));
            int numberOfTestCases = testSetJsonObject.get("TestCases").getAsJsonArray().size();
            System.out.println(numberOfTestCases);
            if(numberOfTestCases>0){
                  for (int j=0;j<numberOfTestCases;j++){
                  System.out.println(testSetJsonObject.get("TestCases").getAsJsonArray().get(j).getAsJsonObject().get("FormattedID"));
                 }
            }

        }

    } finally {
        if (restApi != null) {
            restApi.close();
        }
    }
}
}

v2.0 is the preferred version going forward. v2.0是以后的首选版本。 The following small tweaks should get you up and going. 以下小调整可以使您起步。

Instead of this (which works in 1.43 because the collection is returned): 代替它(在1.43中有效,因为返回了集合):

int numberOfTestCases = testSetJsonObject.get("TestCases").getAsJsonArray().size();
if(numberOfTestCases>0) {
    for (int j=0;j<numberOfTestCases;j++) {
       System.out.println(testSetJsonObject.get("TestCases").getAsJsonArray().get(j).getAsJsonObject().get("FormattedID"));
    }
}

Do this: 做这个:

//TestCases is an object with a Count and a ref to load the collection
int numberOfTestCases = testSetJsonObject.getAsJsonObject("TestCases").get("Count").getAsInt();

if(numberOfTestCases > 0) {
    QueryRequest testCaseRequest = new QueryRequest(testSetJsonObject.getAsJsonObject("TestCases"));
    testCaseRequest.setFetch(new Fetch("FormattedID"));
    //load the collection
    JsonArray testCases = restApi.query(testCaseRequest).getResults();
    for (int j=0;j<numberOfTestCases;j++){
        System.out.println(testCases.get(j).getAsJsonObject().get("FormattedID").getAsString());
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM