개시하기 위해 컨테이너 내부에서 고정 표시기 JMeter를 + + + InfluxDB Grafana 측정 압력

1, 자유는 JMeter가 거울을 사용자 정의 :

Dockerfile 파일 :

자바 사람 : 8 
# 기본 이미지

유지 관리자 yangjianliang < [email protected] >
# 저자

ENV HTTP_PROXY ""
ENV https_proxy를 ","

RUN에서 mkdir / 테스트 && \
chmod를 -R 777 / 테스트
# 생성 / 테스트 디렉토리 JMX 스크립트를 저장, JTL 결과 파일, HTML은 시험 보고서 파일

ENV JMETER_VERSION = 5.1.1
ENV JMETER_HOME = 는 / usr / 지역 $ {- / 아파치 JMeter를 JMETER_VERSION}
ENV JMETER_PATH = $ { JMETER_HOME} $ {: / 빈 는 PATH}
ENV 는 PATH = $ { JMETER_HOME은 } / 빈 : $ {} 경로
#의 JMeter를 설정 환경 변수가

복사 아파치 JMeter를 - $ { JMETER_VERSION가} .TGZ 는 / usr / 지방
압축 #의 JMeter를 복사

런 CD 는 / usr / 지역 && \
타르 아파치 JMeter를 -xzvf - $ { JMETER_VERSION} .TGZ
# 압축 해제 하여 JMeter
압축 해제 필요성이 단계 COPY 수 없습니다 후에는, 우분투 또는 CentOS는 거울에있는 경우 #

런 Sed의 -i '$ . sampleresult.default.encoding 8 UTF =' 는 / usr / 지방 / 아파치 JMeter를 - $ { JMETER_VERSION} / 빈 /jmeter.properties && \ Sed의 -i '159S / 512분의 256 / G' 는 / usr / 지방 / 아파치 JMeter를 - $ { JMETER_VERSION}
/ 빈 / JMeter를
# JMeter를 수정 구성 파일

RUN LN -snf 는 / usr /보고이 내용 공유 /은 zoneinfo / 아시아 / 상하이 / 등 /의 현지 && \
에코 "아시아 / 상하이의" >은 / etc / 시간대
# 설정 시간대

 

고정 표시기 빌드 -t JMeter를.

# JMeter를 거울 패키지

MKDIR 테스트

# 현재 디렉토리 경로에 테스트 만들기

고정 표시기 실행 -d - 그것은 --name jmeter5.1.1 -v $ PWD / 테스트 / 테스트 JMeter를

# 시작

고정 표시기 간부 - 그것은 jmeter5.1.1 / 빈 / bash는

# 용기의 내부로

자바 -version

#보기 자바 버전

JMeter를 -v

#보기 JMeter를 버전

출구

# 종료

2, InfluxDB

고정 표시기의 풀 influxdb

# 풀 influxdb 공식 이미지

에서 mkdir influxdb

# 현재 디렉토리 호스트 국에서 influxdb 디렉토리를 생성

고정 표시기 실행 -d --name influxdb1.7.9 -p 8086 : 8086 -v $ PWD / influxdb 경우 : / var / lib 디렉토리 / influxdb influxdb

# 시작

暴露的端口:
8086 HTTP API端口
2003 Graphite支持
从1.1.0版开始不推荐使用管理员界面,并且将从1.3.0版中删除。

docker run --rm influxdb influxd config > influxdb.conf

# 生成默认配置文件

docker runn --rm表示在容器退出时自动清理内部的文件系统

会在宿主机当前目录下同步生成influxdb.conf配置文件

vim influxdb.conf

# 修改配置文件

把第96行enabled = false改为

enabled = true

把第98行database = "graphite"改为

database = "jmeter"

docker kill influxdb1.7.9

# 杀掉容器进程

docker rm influxdb1.7.9

# 删除容器

docker run -d --name influxdb1.7.9 -p 8086:8086 -p 2003:2003 -v $PWD/influxdb:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb

# 重启容器

docker exec -it influxdb1.7.9 /bin/bash

# 进入容器内部

influx

# 进入influx命令行

create database jmeter

# 创建jmeter数据库

show databases

# 查看所有数据库

use jmeter

# 切换到jmeter库

select * from jmeter

# 查看jmeter库里面所有的数据

exit

# 退出influx命令行

exit

# 退出容器

docker restart influxdb1.7.9

# 重启容器

docker inspect influxdb1.7.9

# 查看容器IP地址

3、发起压测

 

JMeter Backend Listener后端监听器:

influxdbMetricsSender:org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
influxdbUrl:http://host_to_change:8086/write?db=jmeter,例如:http://172.17.0.5:8086/write?db=jmeter
application:application name,被测试的应用名称,例如:测试应用,此值也作为名为“application”的标记存储在“events”中
measurement:jmeter,使用默认的”jmeter“就行
summaryOnly:false,为true的情况下,只输出所有请求的集合数据报告,为flase的情况下,输出每条数据的详情报告
samplersRegex:.*,正则表达式将与样本名称匹配并发送到后端,默认匹配所有
percentiles:90;95;99,要发送到后端的百分位数,多个值已;分割
testTitle:Test name,测试名称,默认的设置为Test name,该值作为名为“text”的字段存储在“transaction”度量中
eventTags:自定义标签,可以根据需要添加任意数量的自定义标签,对于它们中的每一个,只需创建一个新行并在其名称前加“TAG_”

 

docker restart jmeter5.1.1

# 先把baidu.jmx脚本放到宿主机的$PWD/test目录下,然后重启容器,这样容器的/test目录也会同步

docker exec -it jmeter5.1.1 /bin/bash

# 再次进入容器内部

jmeter -JN=20 -JT=60 -n -t /test/baidu.jmx -l /test/baidu.jtl -e -o /test/html

# 发起压测

cat jmeter.log

# 查看日志,理论上没报错的话数据应该已经写入了InfluxDB

exit

# 退出容器

压测停止后,宿主机$PWD/test目录下也会同步生成baidu.jtl结果文件与html测试报告目录

4、Grafana

docker pull grafana/grafana

# 拉取grafana官方镜像

docker run -d -p 3000:3000 --name=grafana6.5.3 grafana/grafana

# 启动

docker exec -it grafana6.5.3 /bin/bash

进入容器内部

cat VERSION

# 查看版本

exit

# 退出容器

访问:

http://127.0.0.1:3000/

账号:admin

密码:admin

首次登录会要求修改密码并二次确认

 

添加数据源,使用InfluxDB:

 

 

 

添加仪表盘:

 

去官网选择一个模板:

https://grafana.com/grafana/dashboards?dataSource=influxdb

例如JMeter模板:

https://grafana.com/grafana/dashboards/5496

填入5496:

等待一会儿:

 

추천

출처www.cnblogs.com/yjlch1016/p/12232722.html