【问题标题】:GWT load testing with jmeter使用 jmeter 进行 GWT 负载测试
【发布时间】:2010-05-10 14:59:03
【问题描述】:

我有一个 GWT 应用程序,想使用 jmeter 之类的工具来测试负载和功能。 我不确定 jmeter 是否适合 GWT。谁能指导我使用合适的工具或者可以告诉我如何使用 jmeter 来完成它?

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

提前致谢。

【问题讨论】:

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

标签: gwt jmeter load-balancing


【解决方案1】:

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

如果您只是想测试后端,您可以让 JMeter 通过HttpClient 或类似的方式向其发送 HTTP 请求。您可以使用诸如Fiddler 之类的调试代理来确定请求中需要包含哪些内容。

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        这是商业信息:

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

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

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

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

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

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

                另一方面,硒运行良好。正确使用 selenese 中的选择器,也许还有 ensureDebugIds(在 GWT 中),你可能会被设置。编写一个包含 JUnit (3.8) 测试套件的 .jar 并将其包装在 selenium 周围是相当简单的。

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

                【讨论】:

                  【解决方案9】:

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

                  如果你不需要复杂的东西,你可以使用 Apache HTTPD-Test,它是免费的,但不能像 Jmeter 那样配置。

                  希望这会有所帮助。 干杯。

                  【讨论】:

                    【解决方案10】:

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

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

                    【讨论】:

                      猜你喜欢
                      • 2019-03-10
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-01-27
                      • 1970-01-01
                      • 2011-08-04
                      • 2017-03-02
                      • 1970-01-01
                      相关资源
                      最近更新 更多