簡體   English   中英

使用 java 在 SOAP UI 中創建 Rest 項目

[英]Create Rest Project in SOAP UI using java

我能夠創建 SOAP 項目並執行相關的測試用例。

SOAP 代碼片段:

public String executeSoapTestcase(final SoapUIData soapUIData) throws Exception {
       SoapUI.getSettings().setBoolean(HttpSettings.RESPONSE_COMPRESSION, false);
        final WsdlProject project = new WsdlProject();
        String response = null;

        final WsdlInterface[] ifaceArray = WsdlInterfaceFactory.importWsdl(project, soapUIData.getWsdlPath(), true);
        if (ifaceArray == null) {
            throw new IllegalArgumentException(
                    "inside SoapUIService.executeTestcase Binding  not found in the specified WSDL");
        }
        final WsdlInterface wsdlInterface = ifaceArray[0];
        Operation[] wsdlOperations = wsdlInterface.getAllOperations();
        if (wsdlOperations == null) {
            throw new IllegalArgumentException(
                    "inside SoapUIService.executeTestcase Operations  not found in the specified WSDL");
        }
        wsdlInterface.changeEndpoint(wsdlInterface.getEndpoints()[0], soapUIData.getEndpoint());
        final WsdlOperation operation = (WsdlOperation) wsdlOperations[0];
        final WsdlRequest request = operation.addNewRequest("addRequest");
        request.setRequestContent(soapUIData.getXmlRequest());
        final WsdlSubmit<?> wsdlSubmit = (WsdlSubmit<?>) request.submit(new WsdlSubmitContext(request), false);
        final WsdlResponse wsdlResponse = (WsdlResponse) wsdlSubmit.getResponse();
        log.info("inside utm-soapui-service SoapUIService.executeTestcase Submit status : " + wsdlSubmit.getStatus());
        if (wsdlResponse != null) {
            response = wsdlResponse.getContentAsString();
        }

        return response;
    }

我想為 REST 項目做同樣的事情:我想使用 wadl 創建 Rest 項目並執行測試用例。

 public void executeRestTestcase() throws Exception {       

    final WsdlProject project = new WsdlProject();
    final RestServiceBuilder serviceBuilder = new RestServiceBuilder();
    serviceBuilder.createRestService(project,"Your Rest URL");
    final StringToStringMap headers = new StringToStringMap();
    headers.put("Authorization", "Basic **********");
    headers.put("Accept", "application/json");
    final RestRequest request =
            (RestRequest) project.getInterfaceList().get(0).getOperationList().get(0).getRequestList().get(0);
    request.setRequestHeaders(headers);
    final Submit submit = (Submit) request.submit(new WsdlSubmitContext(request), false);
    final Response response = submit.getResponse();
    String responseContent = response.getContentAsString();
    log.info(responseContent);


}

上面的解決方案工作正常,但默認情況下它使用 GET 並且無法找到任何從 GET 更改為 POST 的方法。 我正在嘗試使用 REST Body 發送 POST 請求並尋找相同的代碼

公共無效 executeRestTestcase() 拋出異常 {

    final WsdlProject project = new WsdlProject();
    final RestServiceBuilder serviceBuilder = new RestServiceBuilder();    
    serviceBuilder.createRestService(project,"http://restapi.adequateshop.com/api/authaccount/registration");
    final StringToStringMap headers = new StringToStringMap();
    headers.put("Authorization", "Basic a93e4973-11f8-4efe-9d22-6edc3d46c186");
    headers.put("Accept", "application/json");
    final RestRequest request = (RestRequest) project.getInterfaceList().get(0).getOperationList().get(0).getRequestList().get(0);
    request.setRequestHeaders(headers);     
   ReadJsonAsString redjson = new ReadJsonAsString();
    String testrf = redjson.readFileAsString("");
    request.setRequestContent(testrf);
    RestMethod HttpMethod = request.getRestMethod(); 
    WsdlSubmit submit = (WsdlSubmit) request.submit(new WsdlSubmitContext(request), false);
    final Response response = submit.getResponse();
    String responseContent = response.getContentAsString();
    System.out.println("RESPONSE: " + responseContent);   

     
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM