代码之家  ›  专栏  ›  技术社区  ›  jaxb

用JMeter进行GWT负载测试

  •  15
  • jaxb  · 技术社区  · 14 年前

    我有一个GWT应用程序,想使用类似JMeter的工具测试负载和功能。 我不确定JMeter是否适合GWT。有人能指导我使用合适的工具吗,或者告诉我如何使用JMeter?

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

    事先谢谢。

    10 回复  |  直到 6 年前
        1
  •  5
  •   Aliaksandr Belik Kanglai    12 年前

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

    但是,如果您只想测试后端,可以让JMeter通过 HttpClient 或者类似的东西。您可以使用调试代理(如 Fiddler .

        2
  •  5
  •   Frederic Conrotte    13 年前

    使用基于HTTP形式(如JMeter或Selenium)的负载测试解决方案来测试GWT可能非常困难,因为用户界面不断变化。

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

    使用gwtrpcommlayer项目,我们直接从JUnit调用rpc servlets。

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

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

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

        3
  •  3
  •   UBIK LOAD PACK    11 年前

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

        4
  •  2
  •   UBIK LOAD PACK    6 年前

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

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

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

    有关教程,请参阅此日志:

    对于商业信息:

        5
  •  1
  •   Sven    13 年前

    我用过 Selenium 2 用groovy plus编写的测试脚本 Gradle 用于最近并行执行加载测试GWT应用程序。下面的博客文章显示了一些结果。

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

        6
  •  1
  •   UBIK LOAD PACK    10 年前

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

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

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

        7
  •  0
  •   Avinash Khule    10 年前

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

        8
  •  -1
  •   aldrinleal    14 年前

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

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

    另一方面,硒运行良好。在Selenese中适当地使用选择器,并可能确保使用redebugids(在GWT中),您可能会被设置。编写一个包含JUnit(3.8)测试套件的.jar并将其包装在Selenium上是非常简单的。

    作为一个建议:如果你想用硒进行多重负荷测试,我可以推荐需要的酱汁(sautlabs.com)。您在他们的服务中设置了一个ssh代理,并且他们的ec2 Selenium实例连接到您的内部网应用程序。这就是我们所追求的方法。

        9
  •  -1
  •   Ron    14 年前

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

    如果您不需要现有的东西,您可以使用ApacheHTTPD测试wich,它是免费的,但不能配置为jmeter。

    希望这有帮助。 干杯。

        10
  •  -1
  •   KisnardOnline    10 年前

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

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