java - Rally API,创建测试用例结果 - 连接关闭异常

标签 java rally

我正在使用 java/groovy 进行开发,并且是 Rally API 的新手,我上周开始使用它。我希望能够使用 REST API 创建新的测试用例结果。星期五(我写这篇文章的时候是星期一),我使用下面的示例让它工作,使用参数将我想要的数据放入方法中。我在另一个网站上找到了这个示例。

今天,当我运行代码时,我认为我没有更改任何内容,但我不断收到“ConnectionClosedException:内容长度分隔消息正文过早结束(预期:1390;收到:1389)。

我再次重写了代码,这次没有更改示例中的任何内容,只是为了尝试让它再次工作,但我得到了相同的异常。这是我正在使用的代码:

public static void createTestCaseResults(){
        // Create and configure a new instance of RallyRestApi
        RallyRestApi restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"),"username@company.com", "Password");
        restApi.setWsapiVersion("1.36");
        restApi.setApplicationName("Add Test Case Result");

        //Query User
        QueryRequest userRequest = new QueryRequest("User");
        userRequest.setFetch(new Fetch("UserName", "Subscription", "DisplayName"));
        userRequest.setQueryFilter(new QueryFilter("UserName", "=", "username@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").getAsString();

        // 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", "=", "TC7562"));
        QueryResponse testCaseQueryResponse = restApi.query(testCaseRequest);
        JsonObject testCaseJsonObject = testCaseQueryResponse.getResults().get(0).getAsJsonObject();
        String testCaseRef = testCaseQueryResponse.getResults().get(0).getAsJsonObject().get("_ref").getAsString();

        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()){
                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();
                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{
            restApi.close()
        }
    }

感谢对此的任何帮助。谢谢。 :)

最佳答案

今天您还遇到这种情况吗?我刚刚在 Rally1 和我们的演示系统上尝试了您的代码,并且每次都可靠地工作(仅更改了用户名和密码以及测试用例格式化 ID)。

下一步可能是,我在 RallyRestApi.doRequest 中设置一个断点,在其中检查服务器响应代码并查看有哪些附加信息可用 - 例如,响应代码以及响应的正文和 header 。

关于java - Rally API,创建测试用例结果 - 连接关闭异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249811/

相关文章:

rally - 如何在集会用户故事页面上设置默认 View

java - 在 Java 中缩放图像的最佳方法是什么?

用于提取 Twitter 消息中提到的姓名的 Java 正则表达式

java - 拉力赛休息API : Get User's Email Address from Defect

python - 如何使用 Rally API 获取测试用例名称

java - 如何使用 Java API 在 Rally 中检查文件夹之间的关系

javascript - 在 Rally js "query"api 中,无法对已阻止​​进行排序

java - JSESSIONID 在 cookie 中获取两次

java - 在 osgi 插件中引用本地文件夹

java - Spring MVC : correct exception handling