Dan*_*iel 12 testing performance jmeter
我最近开始使用JMeter为我的Web应用程序创建负载测试.我非常喜欢这个工具,在观看了一些视频后,开始创建测试非常容易.
但有一点我不清楚.
在JMeter主页上阅读,有一个"最佳实践"部分.除其他外,它说:
最重要的是过滤掉您不感兴趣的所有请求.例如,记录图像请求没有意义(可以指示JMeter下载页面上的所有图像 - 请参阅HTTP请求).这些只会使您的测试计划变得混乱.
我在其他页面上也看过这个,并说你不应该在测试中包含对图像或任何其他静态资源的请求.然而,我仍然无法找到一个单独的页面,为什么你不包含静态资源给出了很好的解释.
当然,JMeter不是浏览器,但对静态资源的请求无疑会影响应用程序的性能?有人可以给我一个很好的解释:-)
这一切都取决于你想要测试的东西.
一般来说,我使用JMeter进行两种类型的性能测试:特定测试,我看看我担心的事情,以及"安全网"测试,我测量整个应用程序以确保它确实有效我期望它的方式.
特定测试几乎总是处理Web应用程序的动态方面 - 服务器端代码(.aspx,.php,.jsp等).这是大多数应用程序存在瓶颈的地方 - 运行服务器端脚本的努力比从磁盘检索CSS文件并将其提供给浏览器而无需任何额外处理的努力要高很多倍.如果我正在测试服务器端脚本,我也不想加载资产 - 因为它们会混乱测试,并在测试客户端消耗带宽.我不希望我的测试失败,因为我的JMeter服务器正在每个线程上下载5MB视频文件并消耗所有带宽,而我实际上要做的是查看服务器每秒可以支持多少次登录.
在测试您的网络服务器提供静态文件的能力方面没有什么意义 - 微软,Apache团队,无论是谁,已经做过了出色的工作; 除非您有特别关注的问题,否则有更好的方法来花费您的测试预算.
安全网测试将整个事情放在一起,以证明它确实以我期望的方式运行.通常,我在生产(类似)环境中运行这些,因此我有一个CDN,生产级硬件和"实时"应用程序配置.我通常会为此使用基于云的测试服务,因此我可以看到来自不同位置的性能,并产生足够的负载来强调生产级套件.您可以使用JMeter(过去我曾使用过几种JMeter Cloud服务).这是昂贵的,它可能需要停机,你应该只作为一个安全网.
当您想要进行适当的性能测试(尤其是压力测试)时,您需要根据用户/线程数量及时生成应用程序的响应时间,您需要包含所有静态资源,就像jMeter代理保存一样当你录制考试时.
要考虑浏览器缓存,您可以使用HTTP缓存管理器或仅使用一次控制器,这样每个线程只会在第一次请求时下载一次静态内容.
HTTP缓存管理器是推荐的方式,更容易设置,只需将其包含在您的测试中,作为线程组的第一个子节点.
一旦只需要在第一次请求时登录用户,就会定期使用控制器.
建议对非静态HTTP请求进行BTW参数化,例如,您不会搜索相同的产品名称或每次购买同一本书,这通常是一个起点,可以让您大致了解应用程序的性能效率.
希望这可以帮助...
| 归档时间: |
|
| 查看次数: |
10716 次 |
| 最近记录: |