Skip to content

Commit 381cebd

Browse files
committed
JMeter 5.0, Pepper-Box for Kafka testing, misc fixes
Signed-off-by: Patrick Double <[email protected]>
1 parent 1eb83dd commit 381cebd

16 files changed

+52
-29
lines changed

Diff for: .gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.tenant_export
1+
tenant_export

Diff for: Docker files

+9-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ First of all the jmeter base image needs to be created from the opend-jdk image,
3232

3333
============Build, tag and push the base image============
3434

35-
docker build --tag="kubernautslabs/jmeter-base:latest"
35+
docker build --tag="kubernautslabs/jmeter-base:latest" -f Dockerfile-base .
3636
docker push kubernautslabs/jmeter-base:latest
3737

3838

@@ -45,7 +45,7 @@ First of all the jmeter base image needs to be created from the opend-jdk image,
4545

4646
============Build, tag and push the master image============
4747

48-
docker build --tag="kubernautslabs/jmeter-master:latest"
48+
docker build --tag="kubernautslabs/jmeter-master:latest" -f Dockerfile-master .
4949
docker push kubernautslabs/jmeter-master:latest
5050

5151
================JMETER-SLAVES DOCKER FILE=====================
@@ -60,7 +60,12 @@ First of all the jmeter base image needs to be created from the opend-jdk image,
6060
-Dserver_port=1099
6161

6262

63-
============Build, tag and push the salve image:================
63+
============Build, tag and push the slave image:================
6464

65-
docker build --tag="kubernautslabs/jmeter-slave:latest"
65+
docker build --tag="kubernautslabs/jmeter-slave:latest" -f Dockerfile-slave .
6666
docker push kubernautslabs/jmeter-slave:latest
67+
68+
================JMETER-REPORTER DOCKER FILE=====================
69+
70+
docker build --tag="kubernautslabs/jmeter-reporter" -f Dockerfile-reporter .
71+
docker push kubernautslabs/jmeter-reporter

Diff for: Dockerfile-base

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
FROM openjdk:8-jre-slim
1+
FROM openjdk:8-jdk-slim
22
MAINTAINER Kubernauts-lab
33

4-
ARG JMETER_VERSION=3.3
4+
ARG JMETER_VERSION=5.0
55

66
RUN apt-get clean && \
77
apt-get update && \
@@ -15,10 +15,14 @@ RUN mkdir /jmeter \
1515
&& wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz \
1616
&& tar -xzf apache-jmeter-$JMETER_VERSION.tgz \
1717
&& rm apache-jmeter-$JMETER_VERSION.tgz
18-
19-
20-
ADD jmeter-plugins/lib /jmeter/apache-jmeter-$JMETER_VERSION/lib
21-
18+
19+
ADD https://github.com/raladev/load/blob/master/JARs/pepper-box-1.0.jar?raw=true /jmeter/apache-jmeter-$JMETER_VERSION/lib/ext/pepper-box-1.0.jar
20+
21+
RUN cd /jmeter/apache-jmeter-$JMETER_VERSION/ && wget -q -O /tmp/bzm-parallel-0.7.zip https://jmeter-plugins.org/files/packages/bzm-parallel-0.7.zip && unzip -n /tmp/bzm-parallel-0.7.zip && rm /tmp/bzm-parallel-0.7.zip
22+
23+
COPY plugins/JMeterPlugins-Standard-1.4.0.zip /tmp/
24+
RUN cd /jmeter/apache-jmeter-$JMETER_VERSION/ && unzip -n /tmp/JMeterPlugins-Standard-1.4.0.zip && rm /tmp/JMeterPlugins-Standard-1.4.0.zip
25+
2226
ENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION/
2327

2428
ENV PATH $JMETER_HOME/bin:$PATH

Diff for: Dockerfile-reporter

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
# build
22
FROM golang:1.8-stretch AS build
33
WORKDIR /go/src/${owner:-github.com/IzakMarais}/reporter
4-
RUN apt-get update && apt-get install make git
5-
ADD . .
4+
RUN apt-get update && apt-get install -y make git
5+
RUN git clone https://${owner:-github.com/IzakMarais}/reporter .
66
RUN make build
77

88
# create image
99
FROM debian:stretch
10-
COPY util/texlive.profile /
1110
RUN PACKAGES="wget libswitch-perl" \
1211
&& apt-get update \
13-
&& apt-get install -qq $PACKAGES --no-install-recommends \
12+
&& apt-get install -y -qq $PACKAGES --no-install-recommends \
1413
&& wget -qO- http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz |tar xz \
1514
&& cd install-tl-* \
1615
&& ./install-tl -profile /texlive.profile \
1716
# Cleanup
1817
&& rm -rf install-tl-* \
19-
&& apt-get remove --purge -qq $PACKAGES \
20-
&& apt-get autoremove --purge -qq \
18+
&& apt-get remove --purge -y -qq $PACKAGES \
19+
&& apt-get autoremove --purge -y -qq \
2120
&& rm -rf /var/lib/apt/lists/* \
2221
&& mkdir /var/tex
2322

Diff for: Dockerfile-slave

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
FROM kubernautslabs/jmeter-base
1+
FROM kubernautslabs/jmeter-base:latest
22
MAINTAINER Kubernauts-lab
33

44
EXPOSE 1099 50000
55

66
ENTRYPOINT $JMETER_HOME/bin/jmeter-server \
77
-Dserver.rmi.localport=50000 \
8-
-Dserver_port=1099
8+
-Dserver_port=1099 \
9+
-Jserver.rmi.ssl.disable=true

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ N.B.: this implementation was tested on Kubernetes 1.9, 1.10, and 1.11 and OpenS
1111
## TL;DR
1212

1313
```bash
14+
./dockerimages.sh
1415
./jmeter_cluster_create.sh
1516
./dashboard.sh
1617
./start_test.sh

Diff for: dockerimages.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash -e
2+
3+
docker build --tag="kubernautslabs/jmeter-base:latest" -f Dockerfile-base .
4+
docker build --tag="kubernautslabs/jmeter-master:latest" -f Dockerfile-master .
5+
docker build --tag="kubernautslabs/jmeter-slave:latest" -f Dockerfile-slave .
6+
docker build --tag="kubernautslabs/jmeter-reporter" -f Dockerfile-reporter .

Diff for: jmeter_grafana_deploy.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ spec:
1717
containers:
1818
- name: grafana
1919
image: grafana/grafana:5.2.0
20+
imagePullPolicy: IfNotPresent
2021
ports:
2122
- containerPort: 3000
2223
protocol: TCP

Diff for: jmeter_grafana_reporter.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ spec:
1616
spec:
1717
containers:
1818
- name: jmreporter
19-
image: kubernautslabs/jmeter-reporter
19+
image: kubernautslabs/jmeter-reporter:latest
20+
imagePullPolicy: IfNotPresent
2021
ports:
2122
- containerPort: 8686
2223

Diff for: jmeter_influxdb_deploy.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ spec:
1616
spec:
1717
containers:
1818
- image: influxdb
19+
imagePullPolicy: IfNotPresent
1920
name: influxdb
2021
volumeMounts:
2122
- name: config-volume

Diff for: jmeter_master_configmap.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ data:
99
#!/bin/bash
1010
#Script created to invoke jmeter test script with the slave POD IP addresses
1111
#Script should be run like: ./load_test "path to the test script in jmx format"
12-
/jmeter/apache-jmeter-4.0/bin/jmeter -n -t $1 -Dserver.rmi.ssl.disable=true -R `getent ahostsv4 jmeter-slaves-svc | cut -d' ' -f1 | sort -u | awk -v ORS=, '{print $1}' | sed 's/,$//'`
12+
/jmeter/apache-jmeter-*/bin/jmeter -n -t $1 -Dserver.rmi.ssl.disable=true -R `getent ahostsv4 jmeter-slaves-svc | cut -d' ' -f1 | sort -u | awk -v ORS=, '{print $1}' | sed 's/,$//'`

Diff for: jmeter_master_deploy.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ spec:
1616
spec:
1717
containers:
1818
- name: jmmaster
19-
image: kubernautslabs/jmeter_master
19+
image: kubernautslabs/jmeter-master:latest
20+
imagePullPolicy: IfNotPresent
2021
command: [ "/bin/bash", "-c", "--" ]
2122
args: [ "while true; do sleep 30; done;" ]
2223
volumeMounts:

Diff for: jmeter_slaves_deploy.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ spec:
1616
spec:
1717
containers:
1818
- name: jmslave
19-
image: kubernautslabs/jmeter_slave
19+
image: kubernautslabs/jmeter-slave:latest
20+
imagePullPolicy: IfNotPresent
2021
ports:
2122
- containerPort: 1099
2223
- containerPort: 50000

Diff for: plugins/bzm-parallel-0.4.zip

-972 KB
Binary file not shown.

Diff for: start_test.sh

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
#It requires that you supply the path to the jmx file
44
#After execution, test script jmx file may be deleted from the pod itself but not locally.
55

6-
working_dir=`pwd`
6+
working_dir="`pwd`"
77

88
#Get namesapce variable
9-
tenant=`awk '{print $NF}' $working_dir/tenant_export`
9+
tenant=`awk '{print $NF}' "$working_dir/tenant_export"`
1010

11-
read -p 'Enter path to the jmx file ' jmx
11+
jmx="$1"
12+
[ -n "$jmx" ] || read -p 'Enter path to the jmx file ' jmx
1213

1314
if [ ! -f "$jmx" ];
1415
then
@@ -17,12 +18,14 @@ then
1718
exit
1819
fi
1920

21+
test_name="$(basename "$jmx")"
22+
2023
#Get Master pod details
2124

2225
master_pod=`kubectl get po -n $tenant | grep jmeter-master | awk '{print $1}'`
2326

24-
kubectl cp $jmx -n $tenant $master_pod:/$jmx
27+
kubectl cp "$jmx" -n $tenant "$master_pod:/$test_name"
2528

2629
## Echo Starting Jmeter load test
2730

28-
kubectl exec -ti -n $tenant $master_pod -- /jmeter/load_test $jmx
31+
kubectl exec -ti -n $tenant $master_pod -- /bin/bash /load_test "$test_name"

Diff for: tenant_export

-1
This file was deleted.

0 commit comments

Comments
 (0)