使用jmeter进行GWT负载测试

使用jmeter进行GWT负载测试,gwt,jmeter,load-balancing,Gwt,Jmeter,Load Balancing,我有一个GWT应用程序,希望使用jmeter之类的工具测试负载和功能。 我不确定jmeter是否是GWT的正确工具。有人能告诉我如何使用合适的工具,或者告诉我如何使用jmeter吗 我想测试登录功能:我在登录屏幕上有两个文本框“用户名”和“密码”,我想测试有多少用户可以同时登录,往返服务器需要多长时间。不知道jmeter如何获取“用户名”和“密码”,并将其提交给针对DB for GWT应用程序的验证 提前谢谢。我想这取决于你到底想测试什么。如果您还想测试客户端代码,那么像这样的测试可能会更好 不

我有一个GWT应用程序,希望使用jmeter之类的工具测试负载和功能。 我不确定jmeter是否是GWT的正确工具。有人能告诉我如何使用合适的工具,或者告诉我如何使用jmeter吗

我想测试登录功能:我在登录屏幕上有两个文本框“用户名”和“密码”,我想测试有多少用户可以同时登录,往返服务器需要多长时间。不知道jmeter如何获取“用户名”和“密码”,并将其提交给针对DB for GWT应用程序的验证


提前谢谢。

我想这取决于你到底想测试什么。如果您还想测试客户端代码,那么像这样的测试可能会更好


不过,如果您只想测试后端,可以让JMeter通过HTTP或类似的方式向其发送HTTP请求。您可以使用调试代理来确定请求中需要执行的操作,例如。

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

但是,由于RPC请求使用了一个参数(“X-GWT-Permutation”),即.nocache.html文件的id,因此它的维护受到了影响。因为它是用不同的id为每个构建生成的,所以您可能会重新记录它

另一方面,硒运行良好。在selenese中正确地使用选择器,或者在GWT中正确地使用BugID,您很可能会被设置好。编写一个包含JUnit(3.8)测试套件的.jar并将其封装在selenium中是相当简单的


建议:如果您可能要使用硒进行多个负载测试,我可以根据需要推荐Saucelabs的酱汁(Saucelabs.com)。您使用他们的服务设置了一个SSH代理,并且他们的EC2 selenium实例连接到您的intranet应用程序。这就是我们采用的方法。

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

如果您不需要什么软件,您可以使用ApacheHttpD测试,它是免费的,但不能配置为Jmeter

希望这有帮助。 干杯。

我最近使用了用Groovy plus编写的并行执行测试脚本来加载测试GWT应用程序。下面的博客文章展示了一些结果


由于用户界面不断变化,使用基于JMeter或Selenium等HTTP表单的负载测试解决方案测试GWT可能非常困难

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

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

这意味着我们可以在负载测试脚本中重用服务器端FacadesAPI,以便在服务器端代码发展时维护这些脚本


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

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


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

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

您可以轻松地使用Apache JMeter的标准知识:

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

对于商业信息:


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

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


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

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

您最终是如何进行负载测试的?