需求背景
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了湘西土家族免費建站歡迎大家使用!
團隊有集成測試的需求,集成測試需要依賴一些中間件,比如mysql,rabbitmq。每個研發(fā)人員有對自己開發(fā)的那部分代碼進行測試編寫和運行檢測的需求。
為了不互相影響,可以選擇在研發(fā)本地搭建自己的依賴環(huán)境,我們希望這些環(huán)境搭建要容易、快速,且方便清理。使用docker進行環(huán)境搭建
而docker,則能很好實現(xiàn)上述訴求。
本地環(huán)境搭建的繁瑣。每個研發(fā),都要在本地安裝docker環(huán)境,這會導致在使用上的一些門檻和不便,以我司為例,由于有嚴格的網(wǎng)絡管控,我們都是內網(wǎng)進行開發(fā),無法聯(lián)網(wǎng)。特別windows 在安裝docker時,需要聯(lián)網(wǎng)。雖然可以想辦法解決,但每個新來小伙伴都要經(jīng)歷一些本地環(huán)境安裝調試過程,實屬繁瑣 測試運行速度無法保證。當一個項目依賴中間件較多時,基于本地的docker也會占用大量的資源影響測試速度 多環(huán)境集成測試麻煩。由于集成測試依賴本地docker,那么這份代碼在不同的環(huán)境,比如在Jenkins上打包運行時,需要在對應的環(huán)境也安裝docker
總結來看,使用docker可以幫助我們快速的搭建項目依賴環(huán)境,但是本地化的docker依賴,依然讓我們的代碼在測試時,不夠純粹,對其各個運行環(huán)境,都有有本地docker安裝的要求。以中心化的docker server改進集成測試
而實際上,docker本身提供了遠程鏈接模式,則使得我們可以中心化的部署docker,然后集成測試代碼以tcp鏈接的方式,使用docker server,進行依賴中間件搭建,測試。Docker Server遠程鏈接配置
以centos 為例7.6為例,講解如何將一個docker配置成可以遠程鏈接。
在/etc/docker/daemon.json中開啟遠程鏈接端口{"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]}
添加文件/etc/systemd/system/docker.service.d/override.conf,注意上述路徑不存在則手動創(chuàng)建[Service] ExecStart= ExecStart=/usr/bin/dockerd 重載守護進程 systemctl daemon-reload 重啟docker容器systemctl restart docker.serviceTestcontainers 框架
在部署好遠程docker后,隨之而來的問題是如何在代碼中連接和使用遠程docker環(huán)境 兩個研發(fā)同時跑測試用例時,怎么保證他們各自啟動的container 在端口上不沖突 使用完后的container,怎么清理
幸運的是,框架,幫我們很好的解決了上述問題。它能于junit 4 ,junit 5集成,幫助我們啟停容器 每一次運行測試,都會啟動全新的容器,暴露不一樣的端口,使得兩個研發(fā)同時跑測試用例時,環(huán)境互不干擾 它使用testcontainers/ryuk在指定延遲后,清理不再使用的container 上述這一切對使用者都是透明的Testcontainers 同spring boot集成
更進一步的,游戲公司提供了Testcontainers 同spring boot整合的測試框架https://github.com/Playtika/testcontainers-spring-boot,使得Spring Boot或Spring cloud生態(tài)的應用在編寫集成測試時,更方便環(huán)境變量依賴
使用Testcontainers 或 playtika的testcontainers-spring-boot進行遠程docker鏈接時,都不需要在本地安裝docker客戶端。但需要進行相關環(huán)境變量配置,使得代碼可以知道遠程docker的地址。該地址的配置有如下幾種方式以command line遠程使用和管理docker
上述測試代碼不需要安裝docker 客戶端。但倘若我們需要以命令行的方式,管理docker,則可以安裝一些docker客戶端,來跟遠程docker通信。當然上述的Testcontainers 相當于客戶端的一種。
不同操作系統(tǒng)的客戶端程序安裝方式見:
參考資料
到此這篇關于使用遠程Docker進行集成測試的文章就介紹到這了,更多相關Docker集成測試內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
當前標題:使用遠程Docker進行集成測試的環(huán)境搭建過程
鏈接地址:http://jinyejixie.com/article20/epehco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、定制開發(fā)、動態(tài)網(wǎng)站、網(wǎng)站內鏈、虛擬主機、網(wǎng)站設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)