<p>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?</p>
<p>This is what I've been thinking:</p>
<p>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(<a href="https://octoperf.com/blog/2018/03/29/jmeter-tutorial/" rel="nofollow noreferrer">https://octoperf.com/blog/2018/03/29/jmeter-tutorial/</a>), not sure how we can host this?</p>
<p>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 <a href="https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/" rel="nofollow noreferrer">https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/</a> but will this include the network time in my perf test response times?</p>
<p>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.</p>

<p>In order to let someone to access the pods in your k8s cluster you need to expose the IP addresses and <a href="https://jmeter.apache.org/usermanual/properties_reference.html#remote" rel="nofollow noreferrer">RMI ports</a> to the outside world</p>
<p><a href="https://i.stack.imgur.com/HTp35.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/HTp35.png" alt="enter image description here" /></a></p>
<p>It will not &quot;include the network time in my perf test response times&quot; because the slaves which are running on pods are doing the real job, the master only collects, aggregates and visualises the test results.</p>
<p>More information on JMeter Properties and ways of setting and overriding them: <a href="https://www.blazemeter.com/blog/apache-jmeter-properties-customization" rel="nofollow noreferrer">Apache JMeter Properties Customization Guide</a></p>
