我有一个 Jmeter 服务器(使用 jmeter-maven-plugin)在 Kubernetes 集群中的一个 pod 中运行,用于对同一集群中其他 pod 中运行的微服务进行性能测试。我通常通过在终端中使用 CLI 命令调用服务器来运行性能测试(执行到 k8 pod 并运行测试)。仅当我有 Kubernetes 身份验证时这才有效。我现在需要允许没有 k8 访问权限的用户使用 GUI 客户端(而不是 CLI)调用 Jmeter 服务器。我不希望他们编写任何测试脚本。我怎样才能做到这一点?
这是我一直在想的:
选项 1:客户端也必须在 k8 中运行,并且用户必须能够使用浏览器访问客户端。我认为这是不可能的,因为 Jmeter GUI 客户端是使用 bin 文件夹( https://octoperf.com/blog/2018/03/29/jmeter-tutorial/ )中的 sh 脚本运行的,不确定我们如何托管它?
选项 2:将 Jmeter 服务器暴露给外界,以便没有 k8 访问权限的用户可以使用此外部 IP 调用它。试图遵循这样的事情https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/但这会包括我的性能测试响应时间中的网络时间吗?
执行此操作的最佳方法是什么以及我可以探索哪些其他可能的解决方案?还有其他性能测试工具可以轻松实现这一点吗?如有任何帮助,我们将不胜感激。
最佳答案
为了让某人访问您的 k8s 集群中的 pod,您需要公开 IP 地址和 RMI ports对于外界来说
它不会“将网络时间包含在我的性能测试响应时间中”,因为在 pod 上运行的从属设备正在执行真正的工作,主设备仅收集、聚合和可视化测试结果。
有关 JMeter 属性以及设置和覆盖它们的方法的更多信息:Apache JMeter Properties Customization Guide
关于kubernetes - 在 Kubernetes 集群上使用 Jmeter GUI 运行性能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62626467/