这是方案
我们正在加载测试Web应用程序。该应用程序部署在两台VM服务器上,其中一台硬件负载平衡器分配负载。
这里使用了两种工具 1. HP Load Runner(一种昂贵的工具)。 2. JMeter - 免费
开发团队使用JMeter来测试大量用户。它也没有像Load Runner这样的许可限制。
如何运行测试? 使用一些参数调用URL,Web应用程序读取参数,处理结果并生成pdf文件。
运行测试时,我们发现,对于在60秒内传播的1000个用户的负载,我们的应用程序花了4分钟生成1000个文件。 现在,当我们通过JMeter传递相同的URL时,1000个用户的加速时间为60秒, 应用程序需要1分15秒才能生成1000个文件。
我在这里感到困惑,为什么这种巨大的性能差异。
加载运行器在两台服务器上都安装了rstat守护程序。
任何线索?
答案 0 :(得分:1)
最有可能的罪魁祸首是脚本是如何构建的。
需要考虑的事项:
答案 1 :(得分:1)
你真的有四种可能性:
至于上面关于JMETER更快的评论,我已经对两者进行了基准测试,对于非常复杂的代码,基于C的Loadrunner解决方案在迭代到迭代执行时比JMETER中基于Java的解决方案更快。 (方法:用于动态创建数据文件的复杂算法,用于批量抵押处理上传.p3:800Mhz.2GB RAM.LoadRunner每小时180万次迭代,单个用户无法使用.JMETER,120万)一旦你添加了它的节奏是服务器的响应时间,两者都是确定的。
应该注意的是,LoadRunner会跟踪其内部API时间,以直接解决影响测试结果的工具的指责。如果您打开结果集数据库集(适当的.mdb或Microsoft SQL服务器实例)并查看[事件计量表]表,您将找到“浪费时间”的参考。浪费时间的定义可以在LoadRunner文档中找到。
答案 2 :(得分:0)
不要忘记测试应用程序本身会自行测量,因为响应的到达是基于测试机器的时间。所以从这个角度来看,它可能就是答案,JMeter只是更快。
第二件事是BlackGaff提到的等待时间。
始终使用jmeter中的结果树检查结果。
并且始终将测试应用程序放在单独的硬件上以查看实际结果,因为测试应用程序本身会加载服务器。