使用jmeter进行GWT负载测试

时间:2010-05-10 14:59:03

标签: gwt jmeter load-balancing

我有一个GWT应用程序,想要使用像jmeter这样的工具来测试负载和功能。 我不确定jmeter是GWT的正确工具。任何人都可以指导我使用合适的工具或者告诉我如何使用jmeter进行操作吗?

我想测试登录功能:我在登录界面上有两个文本框'用户名'和'密码',想要测试有多少用户可以同时登录,需要多长时间才能到服务器。不知道jmeter如何获得'用户名'和'密码',并且可以提交它以针对GWT应用程序的DB进行验证?

提前致谢。

10 个答案:

答案 0 :(得分:5)

我想这取决于你想要测试的内容。如果您也想测试客户端代码,Selenium之类的内容可能会更好。

如果你只是想测试后端,你可以让JMeter通过HttpClient或类似的东西发送HTTP请求。您可以使用Fiddler等调试代理确定请求中的内容。

答案 1 :(得分:5)

使用基于HTTP表单(如JMeter或Selenium)的负载测试解决方案测试GWT可能会非常困难,因为用户界面不断发展。

在我们的项目中,我们采取了另一种方法。

使用gwtrpccommlayer项目,我们直接从JUnit调用RPC servlet。

http://code.google.com/p/gwtrpccommlayer/

这意味着我们可以在负载测试脚本中重用我们的服务器端外观API,并将这些脚本维护为服务器端代码的演变。

因此,在JUnit中,我们可以启动多个线程来模拟使用该应用程序的多个用户并收集统计信息。

答案 2 :(得分:3)

事实上,如果您的应用程序使用GWT RPC,则存在真正的复杂性,如果它是JSON,那么JMeter将完成这项工作。 我的登录页面不是第一页并且您的应用程序使用GWT RPC,那么您将需要一个JMeter插件来处理序列化或使用其他工具(我不知道这样做的真正免费工具)。

答案 3 :(得分:2)

有一个名为UbikLoadPack的商业解决方案,它为Apache JMeter提供了一个插件来加载测试GWT和GWT RPC应用程序。

您可以轻松掌握Apache JMeter的标准知识:

  • 记录
  • 使用XML语法而不是不可读的gwtrpc格式进行变量化
  • 重播GWT和基于GWT RPC的应用程序
  • 通过查看结果树特定渲染器进行调试

请参阅此博客以获取教程:

这适用于商业信息:

答案 4 :(得分:1)

我使用Groovy加Selenium 2编写的Gradle测试脚本进行并行执行,以便最近加载测试GWT应用程序。以下博客文章显示了一些结果。

http://blog.oio.de/2011/04/19/load-testing-gwt-applications-with-selenium-2-and-gradle

答案 5 :(得分:1)

在使用jMeter测试GWT应用程序时遇到了同样的问题,因此我编写了一段执行GWT有效负载反序列化的代码,因此允许您对jMeter(或任何其他)性能测试进行参数化:

http://code.google.com/p/gwt-payload-deserializer/

查看ReadMe.txt以获取所有GWT-RPC有效负载组件的说明。

答案 6 :(得分:0)

在处理基于gwt的应用程序时,可能会使用一些授权服务请求,您需要保留/使用用户名和密码仅以加密格式。使用此设置,您将能够通过jmeter脚本登录应用程序。此外,可能很少有Post请求在body中发送数据而不是Parameter。虽然jmeter请求获得通过但很难处理,但实际上是通过UI上没有看到的脚本所做的更改。

答案 7 :(得分:-1)

这取决于维护。我们有一个GXT应用程序,甚至JMeter HTTP代理记录器也能正常工作。

但由于RPC Requests使用的参数(“X-GWT-Permutation”)是.nocache.html文件的id,因此其维护会受到影响。由于每个构建都使用不同的id生成,因此您可能会重新录制它。

另一方面,硒运行良好。保持正确使用selenese中的选择器,并且可能确保DecugIds(在GWT中),并且您可能已经设置好了。编写一个包含JUnit(3.8)测试套件并将其包装在selenium周围的.jar是相当简单的。

作为推荐:如果您可能使用硒进行多次负载测试,我可以推荐Saucelabs的Sauce on Demand(saucelabs.com)。您使用其服务设置SSH代理,并且其EC2 selenium实例连接到您的Intranet应用程序。这就是我们采用的方法。

答案 8 :(得分:-1)

您需要的工具名为NeoLoad(www.neotys.com/)。但是不是免费的:(如果您想尝试使用试用许可证,请在开始时给您。

如果您不需要软化的东西,您可以使用Apache HTTPD-Test,它是免费的,但不能配置为Jmeter。

希望这有助于。 欢呼声。

答案 9 :(得分:-1)

您可以使用GWT-DFE(数据格式扩展名)在LoadRunner中测试GWT。这包含在工具中,不需要单独下载。可能如果你问的是免费软件,LoadRunner已超出预算,但我想提及它的完整性。

可以看到简短的视频演示here on Youtube,LoadRunner帮助文档包含更多详细信息。