簡體   English   中英

來自 Jenkins 的 Web 服務調用

[英]Webservice call from Jenkins

我需要編寫一個 webservice 客戶端並從 Jenkins 調用它。 以下是我的問題:

  • 從 Jenkins 調用 Web 服務的最佳方式是什么? 有可用的默認插件嗎? 我需要將 XML 數據作為輸入傳遞給 Web 服務。
  • 如果插件不是選項,您能否告訴我我們可以通過哪些其他方式實現這一點(ANT + JAVA 等)?
  • 如果您有任何示例代碼,那就太好了。

謝謝阿拉文

很高興知道您只需要在某些復雜流程中調用您的客戶端,作為 Jenkins 作業實現,或者您想專注於 Web 服務測試。

WillieT 向您指出了幾個可用於解決一些基本任務的簡單方法。 如果您需要更多功能、更好的報告、一些附加功能,請考慮以下內容:

Apache JMeter詳細信息

JMeter 可以使用Performance 插件集成到 Jenkins 中。 報告示例:

在此處輸入圖片說明

研磨機詳情

我更喜歡使用這個工具,但它可能對你來說復雜/繁重。

Grinder 可以使用Grinder 插件集成到 Jenkins 中。 報告示例:

在此處輸入圖片說明

如果您開發插件,例如擴展 hudson.tasks.Builder,請在 JAX-RS 客戶端的 pom.xml 中包含以下內容:

    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.25.1</version>
    </dependency>

示例 JAX-RS 客戶端:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import org.glassfish.jersey.client.ClientConfig;

public class RestClient {

    private static String BASE_URL = "http://localhost:8090/rest";
    private static String ACCESS_TOKEN = "8900***bc1";

    public static String query(String path) {

        ClientConfig config = new ClientConfig();
        Client client = ClientBuilder.newClient(config);
        WebTarget target = client.target(getBaseURI());

        // token authentication
        String result = target.path(path).request().header("Authorization", "Token " + ACCESS_TOKEN)
            .accept(MediaType.APPLICATION_JSON).get(String.class);
        return result;
    }

    private static URI getBaseURI() {
        return UriBuilder.fromUri(BASE_URL).build();
    }
}

其中http://localhost:8090/rest是 Jenkins 環境之外的基本休息 url。 在你的插件代碼的任何地方,你都可以根據需要簡單地調用它:

String rsData = RestClient.query("/project_type");

假設完整的休息網絡服務網址是

http://localhost:8090/rest/project_type    

您也可以使用Apache HttpClientOkHttp

在此處輸入圖片說明 我使用了“HTTP 請求”插件。 這個插件適用於 REST 和 SOAP api。 在此處輸入圖像描述插件圖像在此處輸入圖片說明

暫無
暫無

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

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