基于docker的JMeter弹性压测

本文主要是介绍JMeter的弹性压测,旨在通过docker可以做到动态扩容等,下面开始第一篇;

基于docker的JMeter弹性压测

先看下我的文件目录,可与预先下载好相应的包

基于docker的JMeter弹性压测1

看下我的DockerFile:

FROM java:8
# 基础镜像

MAINTAINER 448972995@qq.com
# 作者

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后进入容器查看相关信息:

基于docker的JMeter弹性压测2

启动JMeter进行压测

基于docker的JMeter弹性压测3

下面我们介绍如何制作并上传私有云

首先,下载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验证镜像仓库的内容:

基于docker的JMeter弹性压测4

源自公众号 软件测试架构师俱乐部



留言