GWT使用jmeter进行负载测试

16

我有一个GWT应用程序,想使用像jmeter这样的工具测试负载和功能。

我不确定jmeter是否是适合GWT的正确工具。是否有人可以指导我选择适当的工具或告诉我如何使用jmeter进行测试?

我想要测试登录功能:登录屏幕上有两个文本框'用户名'和'密码',想要测试同时有多少用户可以登录,一次往返到服务器需要多长时间。我不知道jmeter如何获取'用户名'和'密码'并提交验证来对GWT应用程序的数据库进行验证?

提前致谢。


2
你最终是如何进行你的负载测试的? - Thomas
请查看我在这里的答案 https://dev59.com/pLr4oIgBc1ULPQZFcY-8 - Banana Tech
10个回答

5
我想这取决于你想要测试什么。如果你想要测试客户端代码,那么像Selenium这样的工具可能更好。但是,如果你只想测试后端,可以使用类似HttpClient的工具让JMeter通过HTTP请求发送数据。你可以使用调试代理(例如Fiddler)确定请求中需要包含哪些内容。

5

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

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

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

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

这意味着我们可以在负载测试脚本中重复使用服务器端的facade API,并随着服务器端代码的演进来维护这些脚本。
因此,在JUnit中,我们可以启动多个线程来模拟几个用户使用应用程序并收集统计信息。

3
有一种商业解决方案叫做UbikLoadPack,它提供了一个Apache JMeter插件,可以对GWT和GWT RPC应用程序进行负载测试。您可以使用标准的Apache JMeter知识轻松地完成以下操作:记录、使用XML语法进行变量化(而不是难以理解的gwtrpc格式)、重放基于GWT和GWT RPC的应用程序以及借助View Result Tree的特定渲染器进行调试。具体教程请参考以下博客:https://www.ubik-ingenierie.com/blog/ubikloadpack-gwt-plugin-4-5-2-for-apache-jmeter-released/https://www.ubik-ingenierie.com/blog/load-testing-gwt-rpc-applications-with-ubik-load-pack-plugin-for-jmeter/。如需商业信息,请访问该链接:https://ubikloadpack.com/

3
事实上,如果您的应用程序使用GWT RPC,则真正的复杂性存在,如果使用JSON,则JMeter可以胜任。
如果您的登录页面不是第一个页面且应用程序使用GWT RPC,则需要JMeter插件来处理序列化,或者使用其他工具(我不知道真正免费的工具可以做到这一点)。

1

1

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

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

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


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

-1

这取决于维护。我们有一个GXT应用程序,甚至JMeter HTTP代理记录器在其上运行良好。

但是,由于RPC请求使用参数(“X-GWT-Permutation”),该参数是.nocache.html文件的ID,因此其维护性受到影响。由于每次构建都会生成具有不同ID的文件,因此您可能需要重新录制它。

另一方面,Selenium运行良好。掌握在selenese中正确使用选择器,并确保DebugIds(在GWT中),您很可能已经准备就绪了。编写一个包含JUnit(3.8)测试套件的.jar并将其包装在Selenium周围相当简单。

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


-1

您可以使用GWT-DFE(数据格式扩展)在LoadRunner中测试GWT。该工具已包含在其中,无需单独下载。如果您问的是免费软件LoadRunner是否超出预算,那么可能会是这样,但出于完整性考虑,我想提一下。

可在Youtube上查看简短的视频演示,并且LoadRunner帮助文档包含更多详细信息。


-1
你需要的工具叫做NeoLoad(www.neotys.com/)。但是它不是免费的 :( 如果你只想试用一次,可以使用他们在开始时提供的试用许可证。
如果你不需要太复杂的东西,可以使用Apache HTTPD-Test,它是免费的,但不像Jmeter那样可配置。
希望这能帮到你。 干杯。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接