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

标签 javascript ajax stress-testing

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

我想对其进行压力测试以微调服务器,但我还没有找到模拟这种行为的简单方法。

HtmlUnit 有一些 headless JavaScript 支持,但还不足以(据我尝试)来模拟这种事情。我想知道是否有现代且强大的工具可以使这变得更容易,因为现在有许多 javascript 丰富的客户端。

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

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

最佳答案

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

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

set pacing to 1 second to emulate heartbeats

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

关于javascript - 如何对ajaxterm(J) javascript心跳行为进行压力测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176326/

相关文章:

javascript - CSS3动画改变背景图片不滑动

javascript - 如何在不重定向的情况下提交 HTML 表单?

linux - 在将服务器安装到数据中心之前如何验证服务器的硬件?

stress-testing - 通过提供用户列表来使用locust.io的方法

javascript - 带有 div 标签的 TinyMCE?

javascript - 如何在浏览器中手动输入 POST 数据

javascript - jQuery Mobile 页面丢失 JavaScript 文件

ajax - Grails <g:remoteLink>多次渲染内容

python - 在文件对象上频繁调用 write() 并添加少量内容是否不好?

javascript - 动画运行时获取矩形的坐标