日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aix pax_通过Pax考试对JBoss Fuse 6.x进行集成测试,第一部分

發布時間:2023/12/3 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aix pax_通过Pax考试对JBoss Fuse 6.x进行集成测试,第一部分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

aix pax

JBoss Fuse是一個功能強大的分布式集成平臺,具有內置功能,可用于針對集成的微服務部署進行集中式配置管理,服務發現,版本控制,API網關,負載平衡,故障轉移等。 JBoss Fuse 6.x構建在Fabric8 1.x開源項目之上。 當在JBoss Fuse之上構建集成微服務時,該博客是有關集成測試的兩部分系列的第一部分。

老實說,這些天,當人們問到他們正在編寫的軟件/服務的測試策略的細節時,我感到非常驚喜。 我認為每個人都同意測試很重要,但實際上沒有人這樣做。 我與使用JBoss Fuse編寫其集成服務的客戶進行了大量合作,經常被問到如何最好地測試這些服務。

JBoss Fuse使用Apache Camel作為其路由和中介引擎,您最終使用Camel編寫了大部分集成邏輯。 為了測試駱駝路線,我強烈建議使用駱駝隨附的內置測試框架 。 此外,我不僅建議您使用內置的測試套件,還強烈建議您使用它來構建大部分測試。 能夠在容器外部運行駱駝及其相關測試是與其他集成解決方案非常重要的區別,測試應該充分利用這一事實。

但是,如果您擁有良好的駱駝路線測試覆蓋率,而現在又想進一步采取行動,該怎么辦? 您想將路由/應用程序部署到JBoss Fuse容器中,并驗證一切是否正確接線,是否正確包含了OSGI導入/導出/元數據,附加到HTTP服務的服務等。這些都是要部署到的合法原因。一個容器,但是手動執行此操作容易出錯且速度很慢。 那么有什么選項可以自動執行此操作?

我已經遇到了幾種不同的方法來做到這一點:使用Arquillian ,它是最初為JBoss Application Server / Wilfly / EAP開發的與容器無關的集成測試框架。 有一些很好的模塊可以集成測試OSGI部署 。 但是,一旦您嘗試進行更多的“黑盒”集成測試,Arquillian目前還不夠強大,無法進行JBoss Fuse測試。 為此,我建議使用Pax Exam項目。 Pax Exam已經存在了很長一段時間,并且已經被用來測試ServiceMix / Karaf的各種派生類,這些派生類與JBoss Fuse足夠相似以進行測試。

因此,為了不僅幫助其他想要入門的人進行集成測試JBoss Fuse 6.x,我整理了入門入門書……而且更自私地……以便于記下這些筆記,以便我可以回到他們身邊; 因為我已經做了足夠多次了,卻忘記了是時候寫下來了。

Itests

我通常會在要稱為子項目itests的子模塊中構建自動集成測試以及要測試的項目。 您可以隨意進行相同的操作,也可以將集成測試放在單獨的項目中。 在本指南中,我將集成測試構建到Rider Auto OSGI示例項目中,該項目改編自Claus Ibsen和Jon Anstey的著作Camel in Action 。 隨意瀏覽該項目,以了解模塊的功能。

首先,我強烈建議您瀏覽Pax考試文檔,然后將頭戳到名為FuseTestSupport的文件中。 在其中,您將看到貢獻OSGI容器@Configuration的方法:

// note, for this to work, you must download and put fuse in the location// specified by the maven coordinates herepublic static final String GROUP_ID = "org.jboss.fuse";public static final String ARTIFACT_ID = "jboss-fuse-minimal";public static final String VERSION = "6.1.0.redhat-379"; public static Option[] container() {return new Option[]{karafDistributionConfiguration().frameworkUrl(maven().groupId(GROUP_ID).artifactId(ARTIFACT_ID).version(VERSION).type("zip")).karafVersion("2.3.0").useDeployFolder(false).name("JBoss Fuse").unpackDirectory(new File("target/paxexam/unpack")),configureConsole().ignoreLocalConsole(),editConfigurationFilePut("etc/config.properties", "karaf.startup.message", "Loading Fabric from: ${karaf.home}"),editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", HTTP_PORT),editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiRegistryPort", RMI_REG_PORT),editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", RMI_SERVER_PORT),editConfigurationFilePut("etc/users.properties", "admin", "admin,admin"),// this is the key... we can install features, bundles, etc. using these pax-exam optionsfeatures(maven().groupId("org.fusesource.examples").artifactId("rider-auto-common").versionAsInProject().classifier("features").type("xml"),"rider-auto-osgi"),logLevel(LogLevelOption.LogLevel.INFO),// enable this if you want to keep the exploded directories of fuse after the tests are run // keepRuntimeFolder(),};};

請注意,我們使用的是JBoss Fuse的實際發行版,而不是某些hacked-0together版本。 為此,您需要訪問JBoss.org 網站 ,下載Fuse,然后將其安裝到與上述代碼片段中指定的坐標相對應的maven存儲庫中,如下所示:

~/.m2/repository/org/jboss/fuse/jboss-fuse-minimal/6.1.0.redhat-379/<put distro here>

現在,當測試運行時,它將找到Fuse disto。

您還可以查看配置選項,包括編輯一些現成的配置選項,添加功能,更改日志級別等。您可以查看KarafDistributionOption文檔或CoreOptions ,其中詳細介紹了所有可用選項。

這部分相當簡單。 這是在該配置之上構建的簡單測試的示例:

@Inject@Filter("(camel.context.name=rider-auto-backend)")protected CamelContext camelContext;@Testpublic void testBootstrap() {assertNotNull(camelContext);ActiveMQComponent component = camelContext.getComponent("activemq", ActiveMQComponent.class);assertNotNull(component);String brokerUrl = ((ActiveMQConfiguration)component.getConfiguration()).getBrokerURL();// make sure configuration was set up correctlyassertEquals("tcp://localhost:61616", brokerUrl);// further validate that all of the camel contexts were installed correctlyString contextList = executeCommand("camel:context-list");assertTrue(contextList.contains("rider-auto-backend"));assertTrue(contextList.contains("rider-auto-file-poller"));assertTrue(contextList.contains("rider-auto-normalizer"));}

該測試實際上已注入到容器中(有關更多信息,請參見pax考試文檔),并且可以訪問容器的內部(例如,依賴項注入)并根據部署的內部運行一些斷言。

黑匣子測試

能夠以完全訪問您的部署和容器運行時的方式來運行自動化集成測試非常好。 您可以進行復雜的測試,以確保所有內容都正確部署,以您認為的方式應用了配置以及可以檢索到所有期望的服務。 但是另一種類型的測試非常有用:能夠部署集成服務并遠程(在容器外部)行使功能,而無需了解太多細節。 因此,例如,與集成服務公開的接口(例如JMS,文件系統,REST / SOAP端點等)進行交互。您可以使用標準庫來訪問這些接口。 但是,對于這種類型的測試,如何將保險絲容器暴露為黑匣子? 答案是Pax Exam允許您在“服務器”模式下運行容器 。 不幸的是,它作為API公開,可用于編排“服務器”模式容器。 但是,如果您是maven用戶,則更好的方法是附加到集成測試生命周期,并讓maven啟動和關閉服務器。

幸運的是,Pax Exam 項目還包括一個maven插件,可以插入到maven生命周期集成測試階段。

例如,將其包含在pom.xml中 :

<plugin><groupId>org.ops4j.pax.exam</groupId><artifactId>exam-maven-plugin</artifactId><version>${pax.exam.version}</version><configuration><configClass>org.jboss.fuse.example.server.ServerConfiguration</configClass></configuration><executions><execution><goals><goal>start-container</goal><goal>stop-container</goal></goals></execution></executions></plugin>

請查看整個pom.xml ,其中顯示了如何將它們分解為Maven配置文件并附加到Maven故障安全插件以進行集成測試。

配套服務

到目前為止,Pax Exam為使用JBoss Fuse運行我們的自動化集成測試做了大量工作。 但是,如果我們想將附加服務附加到容器的引導程序,該怎么辦? 也許我們想在容器啟動之前啟動ActiveMQ的實例(因為也許我們有需要附加到外部ActiveMQ的服務……然后我們可以使用隊列/ DLQ中的消息結果來斷言行為,等等) ,并確保在測試結束時將其拆除。 您可以[擴展不同的Pax ExamReact器之一]來做到這一點:

public class ActiveMQPerClass extends PerClass {protected BrokerService brokerService = null;@Overridepublic StagedExamReactor create(List<TestContainer> containers, List<TestProbeBuilder> mProbes) {return new EagerSingleStagedReactor(containers, mProbes){@Overridepublic void beforeClass() {bootStrapActiveMQ();super.beforeClass();}@Overridepublic void afterClass() {teardownActiveMQ();super.afterClass();}};}

然后在測試中,當您指定要使用的React堆策略時,請使用我們的自定義策略:

@RunWith(PaxExam.class) @ExamReactorStrategy(ActiveMQPerClass.class) public class BootstrapIT extends FuseTestSupport {@Inject@Filter("(camel.context.name=rider-auto-backend)")protected CamelContext camelContext;@Testpublic void testBootstrap() {.....

熔絲面料

這篇文章涵蓋了針對獨立版本的Fuse編寫集成測試。 許多相同的機制也將用于針對Fuse Fabric / Fabric8部署創建集成測試。 這將在本文的第二部分中介紹。 敬請關注! 也可以在Twitter @christianposta上關注我,了解有關Fuse / Fabric8 / Microservices / DevOps等的推文,以及有關新博客文章的更新!

翻譯自: https://www.javacodegeeks.com/2015/04/integration-testing-jboss-fuse-6-x-with-pax-exam-part-i.html

aix pax

總結

以上是生活随笔為你收集整理的aix pax_通过Pax考试对JBoss Fuse 6.x进行集成测试,第一部分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91污片| 亚洲av无码专区在线电影 | 国产高清在线免费 | 亚洲国产成人无码av在线 | 天天摸天天操天天爽 | 北条麻妃一区二区三区在线观看 | 无码精品一区二区免费 | 国产中出视频 | 综合色视频 | wwxx日本 | 18做爰免费视频网站 | 又黄又爽又色视频 | 国产第3页 | 吃奶av| 成人av电影在线播放 | 国产精品xxxx喷水欧美 | 欧美无砖区 | 一二区免费视频 | www.黄色大片| av在线浏览| 国产视频一区二区三区在线 | 亚洲视频在线观看免费视频 | jizz性欧美23| 69av国产| 国产日产精品一区 | 天天夜夜久久 | 日韩三级久久 | 国内激情视频 | 漂亮人妻被黑人久久精品 | av中出在线 | 牛牛av| 成人一级大片 | 日韩免费中文字幕 | 三级网站免费观看 | 特黄色一级片 | 久久久久人 | 视频在线一区 | 潮喷失禁大喷水aⅴ无码 | 日韩三级在线观看 | 黄色av大片 | 寡妇激情做爰呻吟 | 国产a级片 | 久久亚洲免费视频 | 亚洲高清在线视频 | 日韩视频一区 | 国产人妻久久精品一区二区三区 | 丁香色婷婷 | 亚洲一区小说 | 67194成人在线| 福利网址在线观看 | aa视频在线观看 | 中国肥胖女人真人毛片 | 色多多在线观看 | 欧美成人久久久免费播放 | 欧美激情视频一区二区三区在线播放 | yy6080久久 | 国产资源在线免费观看 | 亚洲国产美女视频 | 麻豆视频免费看 | 91福利在线观看视频 | 国产福利精品视频 | 国产精品区一区二 | 国产aaa毛片 | 特大黑人娇小亚洲女 | 成人羞羞在线观看网站 | 婷婷6月天| 国产在线看 | 成人亚洲综合 | 偷拍中国夫妇高潮视频 | 国产小视频在线免费观看 | 欧美日韩国产一区在线 | 中国美女囗交视频 | 国产一级网站 | 国产免费无码XXXXX视频 | 手机看片一区二区三区 | 五月综合激情网 | 在线看不卡av | 亚洲综合五月天 | 国产免费观看av | 乱h伦h女h在线视频 99999视频 | 欧美日韩在线观看一区 | 亚洲福利视频在线 | 天堂网av2018 | 亚洲色图小说 | 欧美精品网 | 91久久精 | 亚州一级 | 超碰福利在线观看 | 久久久久久久久久影视 | 毛片动漫| 中文字幕一区二区三区手机版 | 三级视频久久 | 日本a视频在线观看 | 91在线在线 | 国产精品你懂的 | 国产精品偷伦视频免费观看了 | 伊人射| 精品国偷自产国产一区 | 精品产国自在拍 |