Rally toolKit for Java如何创建然后将TestCaseResult附加到TestCase

时间:2012-06-11 20:27:06

标签: java rally testcase

testCaseJsonObject的一般代码:

JsonObject result = new JsonObject();
result.addProperty("Verdict", "True");
result.addProperty("TestCase", Ref.getRelativeRef(testCase.get("_ref").getAsString()));

CreateRequest createRequest = new CreateRequest("TestCaseResult", result);
CreateResponse createResponse = restApi.create(createRequest);

我想我的两个主要问题是:

  1. 我是否正确创建了testCaseResult?(testCase属性是对testCase的引用)
  2. 我是否需要将testCaseResult附加到testCase? (testCase.addProperty("Results", "testCaseResults reference"

2 个答案:

答案 0 :(得分:2)

谢谢凯尔!举例来说,这是一个快速片段,说明查询测试用例,然后向其添加新的测试用例结果:

    // Create and configure a new instance of RallyRestApi
    RallyRestApi restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"), 
            "user@company.com", "password");
    restApi.setWsapiVersion("1.34");
    restApi.setApplicationName("RestExample_AddTagsToTestCase");        

    //Query User
    QueryRequest userRequest = new QueryRequest("User");
    userRequest.setFetch(new Fetch("UserName", "Subscription", "DisplayName"));
    userRequest.setQueryFilter(new QueryFilter("UserName", "=", "user@company.com"));
    QueryResponse userQueryResponse = restApi.query(userRequest);
    JsonArray userQueryResults = userQueryResponse.getResults();
    JsonElement userQueryElement = userQueryResults.get(0);
    JsonObject userQueryObject = userQueryElement.getAsJsonObject();
    String userRef = userQueryObject.get("_ref").toString();

    // Query for Test Case to which we want to add results
    QueryRequest testCaseRequest = new QueryRequest("TestCase");
    testCaseRequest.setFetch(new Fetch("FormattedID","Name"));
    testCaseRequest.setQueryFilter(new QueryFilter("FormattedID", "=", "TC4"));
    QueryResponse testCaseQueryResponse = restApi.query(testCaseRequest);
    JsonObject testCaseJsonObject = testCaseQueryResponse.getResults().get(0).getAsJsonObject();
    String testCaseRef = testCaseQueryResponse.getResults().get(0).getAsJsonObject().get("_ref").toString();

    try {

        //Add a Test Case Result                
        System.out.println("Creating Test Case Result...");
        JsonObject newTestCaseResult = new JsonObject();
        newTestCaseResult.addProperty("Verdict", "Pass");
        newTestCaseResult.addProperty("Date", "2012-06-12T18:00:00.000Z");
        newTestCaseResult.addProperty("Notes", "Automated Selenium Test Runs");
        newTestCaseResult.addProperty("Build", "2012.05.31.0020101");
        newTestCaseResult.addProperty("Tester", userRef);
        newTestCaseResult.addProperty("TestCase", testCaseRef);

        CreateRequest createRequest = new CreateRequest("testcaseresult", newTestCaseResult);
        CreateResponse createResponse = restApi.create(createRequest);            

        if (createResponse.wasSuccessful()) {

            System.out.println(String.format("Created %s", createResponse.getObject().get("_ref").getAsString()));          

            //Read Test Case
            String ref = Ref.getRelativeRef(createResponse.getObject().get("_ref").getAsString());
            System.out.println(String.format("\nReading Test Case Result %s...", ref));
            GetRequest getRequest = new GetRequest(ref);
            getRequest.setFetch(new Fetch("Date", "Verdict"));
            GetResponse getResponse = restApi.get(getRequest);
            JsonObject obj = getResponse.getObject();
            System.out.println(String.format("Read Test Case Result. Date = %s, Verdict = %s",
                    obj.get("Date").getAsString(), obj.get("Verdict").getAsString()));                 
        } else {
            String[] createErrors;
            createErrors = createResponse.getErrors();
            System.out.println("Error occurred creating Test Case: ");
            for (int i=0; i<createErrors.length;i++) {
                System.out.println(createErrors[i]);
            }
        }

    } finally {
        //Release all resources
        restApi.close();
    }

答案 1 :(得分:0)

指定与新测试用例结果相关联的测试用例的ref是执行此操作的正确方法。一旦创建操作成功再次查询测试用例,就应该在结果集合中包含新创建的测试用例结果。