I have a Jmeter server (using jmeter-maven-plugin) running in a pod in my Kubernetes cluster, which is used to perf test Microservices running in other pods in the same cluster. I usually run perf tests by invoking the server using CLI commands in my terminal (exec into the k8 pod and run tests). This works only if I have Kubernetes authentication. I now have a requirement to allow users without k8 access to invoke the Jmeter server using GUI client instead if CLI. I do not want them to write any test scripts. How can I do that?
This is what I've been thinking:
Option 1: The client must also run in k8 and the user must be able to access the client using a browser. I think this is not possible because the Jmeter GUI client is run using a sh script in bin folder(https://octoperf.com/blog/2018/03/29/jmeter-tutorial/), not sure how we can host this?
Option 2: Expose the Jmeter server to outside world, so that users without k8 access can invoke it using this external IP. Tried to follow something like this https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/ but will this include the network time in my perf test response times?
What is the best way to do this and what other possible solutions can I explore? Are there any other perf testing tools that can achieve this easily? Any help is appreciated.
In order to let someone to access the pods in your k8s cluster you need to expose the IP addresses and RMI ports to the outside world
It will not "include the network time in my perf test response times" because the slaves which are running on pods are doing the real job, the master only collects, aggregates and visualises the test results.
More information on JMeter Properties and ways of setting and overriding them: Apache JMeter Properties Customization Guide