如何在java中获取SoapUI请求和响应XML

时间:2014-08-22 12:24:30

标签: java xml api testing soapui

我正在使用SoapUI API作为现有java项目的一部分。 应用程序应将请求和响应XML保存在特定的报告文件中。 我想知道是否可以通过API获取这些请求和响应。 调用TestCaseRunner的方法如下所示

protected void checkTestCase(TestCase testCase) {
    TestCaseRunner tr = testCase.run(null, false);
    for (TestStepResult tcr : tr.getResults()) {
         String status = tcr.getStatus();
         String time = tcr.getTimeTaken() + "ms";
        /* How to get XML messages?
         * String request = 
         * String response = 
         */
    }
}

3 个答案:

答案 0 :(得分:2)

具体取决于您具有哪种测试步骤,它们可能是MessageExchange的一个实例。将TestStepResult强制转换为MessageExchange并调用getRequestContent / getResponseContent可能会有所帮助。

String request = ((MessageExchange)tcr).getRequestContent();
String response = ((MessageExchange)tcr).getResponseContent();

答案 1 :(得分:0)

我使用以下方法从API CAll执行响应:

runner = testRunner.runTestStepByName("Your Test Case name");
// Here we take the response in ms of the API call
timeTaken = runner.response.timeTaken;
// here we get the HTTP response code.
responseCode = runner.getResponseHeaders()."#status#";
// here we get the response content
String response = runner.getResponseContent();
// here we get the API call endpoint -> in case you need to print it out.
String endPoint = runner.getEndpoint();

答案 2 :(得分:0)

使用getRunContext()

testCaseRunner.getRunContext().expand("${testStep#Request}")
testCaseRunner.getRunContext().expand("${testStep#Response}")