我有一个 GWT 应用程序,想使用 jmeter 之类的工具测试负载和功能。我不确定 jmeter 是否适合 GWT。任何人都可以指导我使用适当的工具或者可以告诉我如何使用 jmeter 来做吗?
我想测试登录功能:我在登录屏幕上有两个文本框“用户名”和“密码”,想测试有多少用户可以同时登录,往返服务器需要多长时间。不知道 jmeter 如何获取“用户名”和“密码”并提交它以针对 GWT 应用程序的 DB 进行验证?
提前致谢。
我有一个 GWT 应用程序,想使用 jmeter 之类的工具测试负载和功能。我不确定 jmeter 是否适合 GWT。任何人都可以指导我使用适当的工具或者可以告诉我如何使用 jmeter 来做吗?
我想测试登录功能:我在登录屏幕上有两个文本框“用户名”和“密码”,想测试有多少用户可以同时登录,往返服务器需要多长时间。不知道 jmeter 如何获取“用户名”和“密码”并提交它以针对 GWT 应用程序的 DB 进行验证?
提前致谢。
我想这取决于你到底想测试什么。如果你也想测试客户端代码,像Selenium这样的东西可能会更好。
但是,如果您只想测试后端,您可以让 JMeter 通过HttpClient或类似的方式向其发送 HTTP 请求。您可以使用诸如Fiddler之类的调试代理来确定请求中需要包含的内容。
由于不断发展的用户界面,使用基于 HTTP 形式(如 JMeter 或 Selenium)的负载测试解决方案来测试 GWT 可能非常困难。
在我们的项目中,我们采用了另一种方法。
使用 gwtrpccommlayer 项目,我们直接从 JUnit 调用 RPC servlet。
http://code.google.com/p/gwtrpccommlayer/
这意味着我们可以在负载测试脚本中重用我们的服务器端外观 API,并随着服务器端代码的发展维护这些脚本。
因此,在 JUnit 中,我们可以启动多个线程来模拟多个用户使用应用程序并收集统计信息。
有一个名为 UbikLoadPack 的商业解决方案,它为 Apache JMeter 提供了一个插件来加载测试 GWT 和 GWT RPC 应用程序。
您可以轻松掌握 Apache JMeter 的标准知识:
请参阅此博客以获取教程:
这用于商业信息:
事实上,如果您的应用程序使用 GWT RPC,那么真正的复杂性就存在,如果它是 JSON,那么 JMeter 将完成这项工作。如果您的登录页面不是第一页并且您的应用程序使用 GWT RPC,那么您将需要一个 JMeter 插件来处理序列化或使用其他工具(我不知道真正的免费工具可以做到这一点)。
我最近使用了用 Groovy 和Gradle编写的Selenium 2测试脚本进行并行执行来负载测试 GWT 应用程序。以下博客文章显示了一些结果。
http://blog.oio.de/2011/04/19/load-testing-gwt-applications-with-selenium-2-and-gradle
我在使用 jMeter 测试 GWT 应用程序时遇到了同样的问题,因此我编写了一段代码来执行 GWT 有效负载反序列化,从而允许您对 jMeter(或任何其他)性能测试进行参数化:
http://code.google.com/p/gwt-payload-deserializer/
查看 ReadMe.txt 以了解所有 GWT-RPC 有效负载组件的说明。
在处理基于 gwt 的应用程序时,可能会使用一些授权服务请求,您只需要保留/使用加密格式的用户名和密码。使用此设置,您将能够通过 jmeter 脚本登录到应用程序。此外,可能很少有 Post 请求在正文中而不是在参数中发送数据。尽管 jmeter 请求通过但实际上通过脚本所做的更改在 UI 上看不到,但这很难处理。
这取决于维护。我们确实有一个 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 应用程序。这就是我们采用的方法。
您需要的工具称为 NeoLoad (www.neotys.com/)。但不是免费的 :( 如果您只想尝试一次,可以使用试用许可证,一开始就给您。
如果你不需要复杂的东西,你可以使用免费的 Apache HTTPD-Test,但不能像 Jmeter 那样配置。
希望这可以帮助。干杯。
您可以使用 GWT-DFE(数据格式扩展)在 LoadRunner 中测试 GWT。这包含在工具中,不需要单独下载。如果您询问免费软件 LoadRunner 可能超出预算,但为了完整起见,我想提一下。
可以在 Youtube 上看到一个简短的视频演示,LoadRunner 帮助文档包含更多详细信息。