基於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驗證鏡像倉庫的內容: