您好,登錄后才能下訂單哦!
這篇“Java為Liberty編寫功能測試的方法有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java為Liberty編寫功能測試的方法有哪些”文章吧。
使用 IBM WebSphere Liberty 和 Open Liberty 進行功能測試的方法有很多種。本文涵蓋了我認為最適合這些平臺的 3 種方法:
使用構建腳本/工具來啟動和停止 Liberty 服務器
使用 JUnit 規則啟動和停止 Liberty 服務器
使用 Arquillian 啟動和停止 Liberty 服務器
Liberty 支持最常見的構建工具,例如 Maven、Gradle 和 Ant。你可以使用這些工具中的任何一個來對你的應用程序運行測試,但本文重點介紹 Maven。
使用 Maven 等構建系統構建應用程序的一個好處是,你可以將其配置為運行一組自動化測試。war插件擴展了Java插件,提供了測試任務。你可以為正在運行的應用程序服務器之外的各個代碼單元編寫測試(單元測試),也可以編寫它們來調用在服務器上運行的應用程序(集成測試)。
使用 Maven、Ant 或 Gradle 等構建工具的一些好處包括:
它使 Java 代碼保持簡單;JUnit 測試類中不需要特殊的設置代碼。
你正在測試的工件是包含配置和構建生成的應用程序 WAR 的用戶目錄,因此它正在密切測試生產工件。
遠程部署工件(例如,在云中)并針對該部署運行測試非常簡單,而無需更改測試代碼。
使用常見構建工具的一些可能的缺點包括:
對 Maven 插件(或其他構建工具插件)有額外的依賴性。
你只能從構建工具自動運行測試。如果不先手動啟動服務器,就不能從 Eclipse(或其他 IDE)中執行此操作。
使用 JUnit ClassRule 允許您使用 Liberty 系統編程接口 (SPI) 從你的代碼中控制你的 Liberty 服務器。從這里,你可以配置服務器,同時還可以啟動和停止服務器。
下面的示例是我們從測試類中以編程方式啟動和停止 Liberty 服務器的示例:
public class RuleFunctionalTest {
@ClassRule
public static ExternalResource serverResource = new ServerResource();
public static class ServerResource extends ExternalResource {
private final Server server;
public ServerResource() {
String usrDir = System.getProperty("liberty.usr.dir");
String serverName = System.getProperty("liberty.server.name");
ServerBuilder sb = new ServerBuilder();
server = sb.setName(serverName).setUserDir(new File(usrDir)).build();
}
@Override
protected void before() throws Throwable {
Future<Result> startReturnCode = server.start();
Result result = startReturnCode.get();
assertEquals(true, result.successful());
}
@Override
protected void after() {
Future<Result> stopReturnCode = server.stop();
try {
Result result = stopReturnCode.get();
assertEquals(true, result.successful());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
fail("Caught exception stopping server" + e.getMessage());
}
}
}
}
使用 JUnit 規則的一些好處包括:
使用 JUnit 規則可以使構建代碼保持簡單。您只需創建一個新的測試任務和源集的標準 Maven 設置。
你可以使用 IDE 以及通過構建來運行它。
沒有外部依賴。
使用 JUnit 規則的一些缺點包括:
使用此規則會使 Java 代碼復雜化,因為它負責啟動和停止 Liberty 服務器以及運行測試。
部署到不同的位置比較困難,因為這都是通過 Java API 完成的。
你需要構建一個功能齊全的 Liberty 用戶目錄結構,包括你的服務器配置和應用程序。在此示例中,這非常適合這種情況,因為這已經是構建的輸出,但情況并非總是如此。
在 Libery 中進行功能測試的最后一種技術是使用Arquillian,這是一個測試框架,可為你的 Java 應用程序開發自動化的功能、集成和驗收測試。Arquillian 為您設置測試環境并處理應用程序服務器生命周期,以便你可以專注于編寫測試。
使用 Arquillian 的一些好處包括:
它允許您使用 ShrinkWrap 通過測試創建和部署測試存檔。在運行測試之前,無需構建功能齊全的 Liberty 服務器。
你可以使用 IDE 以及通過構建運行 Arquillian。
Arquillian 是功能最豐富的選項。例如,你可以針對多個容器(應用程序服務器)和遠程服務器運行測試。
將應用程序的正確 URL 傳遞給測試,因此可以更靈活地控制測試環境的端口號等。
Arquillian 仍然需要定義一個骨架服務器,它必須進入主服務器運行時安裝位置(不支持單獨的用戶目錄)。
你正在測試的應用程序是由 Arquillian 通過 ShrinkWrap 工具創建的。你不會部署此實際應用程序或擁有此服務器配置。
以上就是關于“Java為Liberty編寫功能測試的方法有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。