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.