使用遠端Docker進行整合測試的環境搭建過程

2022-09-21 11:03:13 字數 1116 閱讀 7782

團隊有整合測試的需求,整合測試需要依賴一些中介軟體,比如mysql,rabbitmq。每個研發人員有對自己開發的那部分**進行測試編寫和執行檢測的需求。

為了不互相影響,可以選擇在研發本地搭建自己的依賴環境,我們希望這些環境搭建要容易、快速,且方便清理。

而docker,則能很好實現上述訴求。

但僅僅這樣還不夠,我們還面臨著以下一些問題

總結來看,使用docker可以幫助我們快速的搭建專案依賴環境,但是本地化的docker依賴,依然讓我們的**在測試時,不夠純粹,對其各個執行環境,都有有本地docker安裝的要求。

而實際上,docker本身提供了遠端鏈結模式,則使得我們可以中心化的部署docker,然後整合測試**以tcp鏈結的方式,使用docker server,進行依賴中介軟體搭建,測試。

以centos 為例7.6為例,講解如何將乙個docker配置成可以遠端鏈結。

在/etc/docker/daemon.json中開啟遠端鏈結埠

新增檔案/etc/systewww.cppcns.commd/system/docker.service.d/override.conf,注意上述路徑不存在則手動建立

[service]

execstart=

execstart=/usr/bin/dockerd

在部署好遠端docker後,隨之而來的問題是

幸運的是,testcontainers框架,幫我們很好的解決了上述問題。

更進一步的,遊戲公司playtika提供了testcontainers 同spring boot整合的測試框架,使得spring boot或spring cloud生態的應用在編寫整合測試時,更方便

使用testcontainers 或 playtika的testcontainers-spring-boot進行遠端docker鏈結時,都不需要在本地安裝docker客戶端。但需要進行相關環境變數配置,使得**可以知道遠端docker的位址。該位址的配置有如下幾種方式

上述測試**不需要安裝docker 客戶端。但倘若我們需要以命令列的方式,管理docker,則可以安裝一些docker客戶端,來跟遠端docker通訊。當然上述的testcontainers 相當於客戶端的一種。

不同作業系統的客戶端程式安裝方式見:

參考資料

Docker 遠端倉庫使用

自由註冊,郵件啟用即可使用 images posts 2019 06 06 108 bdcf5241.png 命令使用 bash docker pull search login push tag 命令登陸dockerhub 再使用tag命令標記乙個映象,指定自己的倉庫 使用push命令推送此映象到...

Kafka 使用spring進行整合

生產者 消費者 生產者傳送訊息 首先注入 autowired private kafkatemplatekafkatemplate 之後進行傳送 listenablefuture result kafkatemplate.send topic,key,valuestring 消費端 kafka消費 ...

使用Locust進行效能壓測

以前的效能測試工作中,都是jmeter,近期接觸了python開源的效能測試框架locust,邊查資料邊學習的過程中也出現一些環境的狀況,這裡簡單介紹下locust的使用方法,以及我搭環境時踩過的那些坑。官方文件 需要編寫指令碼,不過指令碼比較簡單 支援分布式測試,跨平台 易擴充套件 1 支援的py...