需要为面向服务器的 WinApi 应用程序加载 6000++ 个用户的负载测试。用 Delphi 编写,与 Oracle DB 有连接。
我尝试通过 Load Runner 完成所有操作,但据我了解,您无法在 Vugen 中编写脚本,因为没有可以编写 WinApi 的协议。之后,我使用 UFT Function Testing 编写脚本。
我想知道制作这种负载的最佳方法是什么?
需要为面向服务器的 WinApi 应用程序加载 6000++ 个用户的负载测试。用 Delphi 编写,与 Oracle DB 有连接。
我尝试通过 Load Runner 完成所有操作,但据我了解,您无法在 Vugen 中编写脚本,因为没有可以编写 WinApi 的协议。之后,我使用 UFT Function Testing 编写脚本。
我想知道制作这种负载的最佳方法是什么?
如果应用程序的服务器部分是 Delphi 中的 DCOM 服务,那么您可以通过在编写脚本时选择 COM/DCOM 协议来使用 HP LoadRunner。
如果我们谈论的是测试一个两层应用程序,即 Delphi 上的胖客户端和 Oracle 数据库,那么负载测试就是数据库服务器的负载测试。在这种情况下,该协议是用于连接到 Oracle 服务器的协议。也许使用了 ODBC、Oracle ThinClient 等一些其他方法。在任何情况下,LoadRunner 也支持这些协议来记录流量和生成加载脚本代码。
如果应用是三层的,毕竟服务端是用Delphi写的,而且客户端和服务端通信使用了一些未知的协议,那么流量分析就必须从WireShark开始。连接 Delphi 反编译器(DeDe,适用于早期版本的 Delphi)。然后编写自己的加载客户端,重用客户端应用程序使用的库代码。
我总结一下,我认为现在注销 LoadRunner 还为时过早。
要编写脚本,HP LoadRunner VuGen 会派上用场。但是要应用 6000 多个用户的负载,您可能必须使用其他东西。看你说的6000+是什么意思。
如果加载步骤超过 30 秒,则需要超过 50 个用户。而在 HP LoadRunner 中,50 岁以上的用户如果不买就必须买。然后有必要能够证明预算的合理性,或者,也许,使用不同的工具重写测试。
如果需求要求在负载测试期间有 6000+ 到服务器的连接。那么你肯定需要 6000 多个虚拟用户。在这里你肯定要买,买6000+就是好钱。我会使用 Apache.JMeter 在这里运行测试。是的,该脚本将写入 LoadRunner,利用其拦截调用和生成代码的能力,并从 JMeter 运行它。这是向 JMeter 过渡的示例:https ://github.com/pflb/wcfLoadTest 。WCF协议的一个例子,一个训练例子,还没有完成。本质是一样的,首先你需要从C#.NET中用想要的协议(DCOM/COM+/WCF/WinAPI)实现工作,然后使用jni4net从JMeter调用.NET客户端。
如果您需要每台服务器有 6000 多个连接,并且正在测试两层系统 - 负载仅在 Oracle 上。然后,您还可以将 JMeter 与 JDBC 交互方法一起使用——这是一项基本功能。
总而言之,所需的虚拟用户数量也会影响负载工具的选择。由于演示模式下的 HP LoadRunner 提供 50 个用户,而不是 6000+。如果 6000+ 是用户,而不是强度,那么您将需要购买这么多并为此做好准备。或者使用免费工具来提供负载。