首页 文章

使用jmeter进行GWT负载测试

提问于
浏览
15

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

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

提前致谢 .

10 回答

  • -1

    我想这取决于你想要测试的内容 . 如果你想测试客户端代码,像Selenium这样的东西可能会更好 .

    但是,如果您只是想测试后端,可以让JMeter通过HttpClient或类似的方式发送HTTP请求 . 您可以使用调试代理(例如Fiddler)确定请求中的内容 .

  • 0

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

    在我们的项目中,我们采取了另

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

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

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

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

  • 5

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

  • 3

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

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

    • 记录

    • 使用XML语法而不是不可读的gwtrpc格式进行变量化

    • 重放基于GWT和GWT RPC的应用程序

    • 调试得益于View Result Tree特定的渲染器

    有关教程,请参阅此博客:

    这适用于商业信息:

  • 2

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

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

  • 1

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

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

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

  • -1

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

  • 1

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

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

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

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

  • -1

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

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

    希望这可以帮助 . 干杯 .

  • 5

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

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

相关问题