使用 apache jmeter 测试 DWR 调用

Testing DWR calls using apache jmeter

我有一个 Web 项目有像这样的 dwr 调用:

来自javascript的电话是

DataController.executeValidate(captureData, changeCurrentStatus);

dwr.xml 文件的代码如下:

<create creator="spring" javascript="DataController">
        <param name="beanName" value="baseAjaxTarget" />
</create>

这个 bean 在 dao-context.xml 文件中定义如下:

<bean id="baseAjaxTarget"  class="com.dwr.controller.BaseAjaxController">
    //properties
</bean>

我必须使用 jmeter 对此进行测试。现在 BaseAjaxController 中的这个 executeValidate 方法使用 jmsTemplate 在活动的 mq 上触发消息。所以我必须通过 jmeter 运行 这样做,以便在活动的 mq 上触发数千条消息,以便我可以测试它们。

根据JMeter Project Main Page

JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).

因此 JMeter 不会像浏览器那样评估任何 JavaScript。如果有与 AJAX 调用关联的相关 HTTP 请求(很可能有)- 您可以使用额外的 HTTP Request to mimic this call. You can put the request(s) under Transaction Controller 来测量主请求和 AJAX 请求的累积时间。

另一种选择是使用 JMeter JMS Publisher, check out Building a JMS Testing Plan - Apache JMeter 直接向 ActiveMQ 发送消息,以获取有关如何使用 JMeter 进行 MQ 测试的更多详细信息。