如何压力测试ajaxterm(J)javascript心跳行为?

时间:2015-01-27 17:25:16

标签: javascript ajax stress-testing

我正在使用 AjaxtermJ Ajaxterm 的java端口)。 Ajaxterm客户端有一个javascript例程,每秒向服务器发送心跳(无论用户输入了什么内容)。

我想强调测试它以微调服务器,但我还没有找到一种简单的方法来模拟这种行为。

HtmlUnit 有一些无头的javascript支持,但还不够(据我所知)模仿这种事情。我想知道是否有现代化和强大的工具来使这更容易,因为现在有很多富有javascript的客户端。

当然,我可以为 JMeter 编写自己的java代码并启动一个每秒发送一次心跳的线程,但在尝试这样的方法之前,我想知道是否有更方便。

PS。 我不是在这里要求软件推荐(我知道规则),虽然某些框架可能是答案。但我的问题是具体如何在压力测试中模拟这种行为。

1 个答案:

答案 0 :(得分:2)

在您的应用程序中,每个客户端都会对Web服务器产生双重影响:用户键入操作(A)和心跳(B)。 要对其进行压力测试,您需要模拟两个异步执行的相应测试用例。任何支持多个测试用例,调步和简单的测试用例记录/编辑的合理完整的负载测试工具都应该处理这种情况。以下是我在名为StresStimulus的工具中实现此测试的方法:

  1. 记录用户操作以创建测试用例A.
  2. 克隆测试用例A以创建测试用例B.
  3. 从测试用例中删除心跳请求。
  4. 从测试用例B中删除除单个心跳之外的所有请求。
  5. 对于测试用例B,将“测试用例后的延迟”属性设置为“起搏”并设置测试用例重放的最小持续时间= 1秒,如屏幕截图所示。
  6. set pacing to 1 second to emulate heartbeats

    之后,您可以根据压力测试要求定制负载。只需确保使用相同数量的虚拟用户执行测试用例A和B.例如,要模拟1到100个虚拟用户的步进负载,请创建2到200个VU的步进负载,并为每个测试用例分配50%的VU。测试用例B将为任意数量的VU正确模拟心跳,在测试用例A中执行用户输入。