基於docker的jmeter彈性壓測
- 2020 年 3 月 31 日
- 筆記
本文主要是介紹jmeter的彈性壓測,旨在通過docker可以做到動態擴容等,下面開始第一篇;
先看下我的文件目錄,可與預先下載好相應的包

看下我的DockerFile:
FROM java:8 # 基礎鏡像 MAINTAINER [email protected] # 作者 ENV http_proxy "" ENV https_proxy "" RUN mkdir /test && chmod -R 777 /test # 創建/test目錄,用於存放jmx腳本、jtl結果文件、html測試報告文件 ENV JMETER_VERSION=5.2.1 ENV JMETER_HOME=/usr/local/apache-jmeter-${JMETER_VERSION} ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH} ENV PATH=${JMETER_HOME}/bin:${PATH} # 設置JMeter環境變量 ADD apache-jmeter-${JMETER_VERSION}.tgz /usr/local # 添加JMeter RUN sed -i '$a sampleresult.default.encoding=UTF-8' /usr/local/apache-jmeter-${JMETER_VERSION}/bin/jmeter.properties && sed -i '159s/256/512/g' /usr/local/apache-jmeter-${JMETER_VERSION}/bin/jmeter # 修改JMeter配置文件 RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
docker build -t jmeter . # 打包JMeter鏡像,請不要忽略後面的一個. mkdir test # 在當前路徑創建test目錄,用戶存放jmeter文件 docker run -d -it --name jmeter5.2.1 -v $PWD/test:/test jmeter # 啟動
啟動後可以查看容器id後進入容器查看相關信息:

啟動jmeter進行壓測

下面我們介紹如何製作並上傳私有雲
首先,下載Registry鏡像並啟動
docker pull registry
啟動鏡像
docker run -d -v /edc/images/registry:/var/lib/registry -p 5000:5000 –restart=always –name xdp-registry registry
可以看下是否存在鏡像:
curl http://your-server-ip:5000/v2/_catalog
初始的狀態應該是空的:
一般出現如下信息:{"repositories":[""]}
上傳鏡像:
首先,為了讓客戶端服務器能夠快速地訪問剛剛在服務端搭建的鏡像倉庫(默認情況下是需要配置HTTPS證書的),這裡簡單在客戶端配置一下私有倉庫的可信任設置讓我們可以通過HTTP直接訪問:# vim /etc/docker/daemon.json
加上下面這一句,這裡的"your-server-ip"請換為你的服務器的外網IP地址:
{ "insecure-registries" : [ "your-server-ip:5000" ] }
PS:如果不設置可信任源,又沒有配置HTTPS證書,那麼會遇到這個錯誤:error: Get https://ip:port/v1/_ping: http: server gave HTTP response to HTTPS client.
為了使得配置生效,重新啟動docker服務:# systemctl restart docker,其次,為要上傳的鏡像打Tag
docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname
最後,開始正式上傳鏡像到服務端鏡像倉庫
docker push your-registry-server-ip:5000/your-image-name:tagname
這時我們可以再次通過訪問API驗證鏡像倉庫的內容:
