1

私は Java / groovy で開発を行っており、Rally API は初めてで、先週使い始めました。REST API を使用して新しいテスト ケース結果を作成できるようにしたいと考えています。金曜日 (これを書いたときの月曜日) に、以下の例を使用して動作させ、引数を使用して必要なデータをメソッドに入れました。この例は、別の Web サイトで見つけました。

今日、コードを実行したとき、何も変更していないと思いますが、「ConnectionClosedException: Content-Length で区切られたメッセージ本文の途中終了 (予想: 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()
        }
    }

これについての助けに感謝します。ありがとう。:)

4

2 に答える 2

1

これは、基盤となる Apache HttpComponents ライブラリのバグである可能性があります。最新の 4.2.1 コンポーネントにアップグレードしました。新しい 1.0.2 jar を試してみませんか?

https://github.com/RallyTools/RallyRestToolkitForJava

更新: これは、今日のツールキットの 1.0.4 リリースで修正されました: https://github.com/downloads/RallyTools/RallyRestToolkitForJava/rally-rest-api-1.0.4.jar

于 2012-09-13T19:32:19.577 に答える
1

これは今日でもあなたに起こっていますか?rally1 とデモ システムの両方でコードを試してみましたが、毎回確実に動作します (変更されたユーザー名とパスワード、およびテスト ケースの書式設定された ID のみ)。

考えられる次のステップとして、RallyRestApi.doRequest にブレークポイントを設定して、サーバーの応答コードをチェックし、利用可能な追加情報 (応答コード、応答の本文とヘッダーなど) を確認します。

于 2012-09-04T19:59:13.853 に答える