使用 jmeter 和 azure 进行固定 IP 负载测试的最佳选择

使用 jmeter 和 azure 进行固定 IP 负载测试的最佳选择

Azure devops 提供了一项很棒的服务,允许您一键运行一个简单的 jmeter 脚本(虽然没有自定义采样器,并且仅支持 3.2)。但是,这对我们来说不起作用,因为我们想要加载测试的站点只能通过白名单 IP 看到。

Azure 确实支持设置“在特定 VNet 中加载测试装置以测试私有应用程序”,但这比我们能做到的要复杂得多。

我们可以采用的方案是创建 4 台大型 Linux 服务器,在每台服务器上手动安装 jmeter SW,为每个服务器分配一个固定 IP,然后完全手动运行测试。但是,我们每周只测试几个小时,因此让服务器全程运行的成本很高。如果我们关闭它们,它们就会丢失 IP,每次我们都必须手动重建它们。

我们尝试了子网路由。您可以轻松创建一个带有子网的 VLAN,并将虚拟机放入其中。但问题是如何让这个子网拥有一个外部 IP/网关来“看到”外部世界,并允许我通过 SSH 进入每个盒子来管理它们。我尝试在 VLAN 上设置防火墙,但防火墙要求您设置一个新的子网 - 您无法指定您的机器所在的子网,这对于非网络专家来说有点令人困惑。

也许另一种方法是将 4 台服务器放在子网上,设置一台具有公共静态 IP,将其设置为其他 3 台服务器的默认网关,那么至少如果我们保持网关服务器处于活动状态,我们将保留 IP 和网络,即使我们暂时关闭其他 3 台服务器。

我们习惯使用 linode。如果这是 linode,我们将创建一个 stackscript(类似于在创建虚拟机时运行的 bash 脚本,但带有参数等)来设置服务器、安全性、网络并安装 vmware 和用户证书。在 Azure 上执行此操作的最佳方法是什么?即从创建 jmeter 服务器中省去一些工作?如果这是 AWS,我会看看是否有一个不错的带有 jmeter 的 ubuntu 机器映像,但搜索 Azure 市场,只有一些 pnop 的服务,这些服务是除了虚拟机成本之外还要付费的。没有 jmeter 构建。

请注意,我们不能使用 Azure 之外的任何服务 - 我们的组织不会购买 Azure 提供的服务之外的任何服务 - 因此 blazemeter 等不适用。

答案1

你有没有考虑过Azure 公共静态 IP 功能,这样您就可以创建 4 个 IP 地址并将它们分配给新创建的机器,这样机器将只用于运行测试,不需要时可以终止。如果您需要重新运行测试 - 只需创建机器并为它们分配静态 IP 地址

也有可能,你可以“作弊”,在“源地址”字段中提供白名单 IP 地址HTTP 请求采样器:

在此处输入图片描述

根据应用程序 IP 过滤实现,它可能足以满足您的用例。请查看使用 IP 欺骗通过 JMeter 模拟来自不同 IP 地址的请求了解有关设置该功能的详细说明。

相关内容