我正在使用AjaxtermJ(Ajaxterm的java端口)。 Ajaxterm 客户端有一个 javascript 例程,每秒向服务器发送一次心跳(无论用户是否输入了任何内容)。
我想对其进行压力测试以微调服务器,但我还没有找到模拟这种行为的简单方法。
HtmlUnit 有一些 headless JavaScript 支持,但还不足以(据我尝试)来模拟这种事情。我想知道是否有现代且强大的工具可以使这变得更容易,因为现在有许多 javascript 丰富的客户端。
当然,我可以为JMeter编写自己的java代码并启动一个每秒发送一次心跳的线程,但在尝试这种方法之前,我想知道是否有一个更简单的方法。
ps。 我不是在这里要求软件推荐(我知道规则),尽管某些框架可能是答案。但我的问题具体是如何在压力测试中模拟这种行为。
最佳答案
看起来在您的应用程序中,每个客户端都会对 Web 服务器产生双重影响:用户键入操作 (A) 和心跳 (B)。 要对其进行压力测试,您需要模拟两个相应的异步执行的测试用例。任何支持多个测试用例、节奏和简单的测试用例记录/编辑的相当完整的负载测试工具都应该处理这种情况。以下是我如何在名为 StresStimulus 的工具中实现此测试:
- 记录用户操作以创建测试用例 A。
- 克隆测试用例 A 以创建测试用例 B。
- 从测试用例 A 中删除心跳请求。
- 从测试用例 B 中删除除单个心跳之外的所有请求。
- 对于测试用例 B,将“测试用例后延迟”属性设置为“Pacing”,并将测试用例重播的最短持续时间设置为 1 秒,如屏幕截图所示。
之后,您可以根据您的压力测试要求定制负载。只需确保测试用例 A 和 B 使用相同数量的虚拟用户执行即可。例如,要模拟从 1 到 100 个虚拟用户的分步负载,请创建从 2 到 200 个 VU 的分步负载,并将 50% 的 VU 分配给每个测试用例。测试用例 B 将正确模拟任意数量 VU 的心跳,执行用户在测试用例 A 中的输入。
关于javascript - 如何对ajaxterm(J) javascript心跳行为进行压力测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176326/