linux - 在linux上使用jmeter进行性能测试

标签 linux performance testing jmeter

我正在使用 jmeter 研究公司门户网站的性能。当我们需要在 Linux 服务器上运行 jmeter 时,我卡在了某个地方。

我在做什么:我在本地机器上运行 jmeter,然后在服务器上传输 results.jmx 文件。
之后,我在服务器上的 jmeter 中打开 results.jmx 文件,并将所有结果保存在 server-results.jtl 文件扩展名中。

当 jmeter 在服务器上完成执行时,我在本地下载 server-results.jtl 文件并在本地 jmeter 上打开该特定的 jtl 扩展文件,然后记录 jmeter 的最终结果。

我的主要问题是 1: 具有相同脚本和场景的本地 Jmeter 和服务器上的 Jmeter 是否有区别?我发现差异很小。

问题 2: 我从 jmeter 脚本中删除了 *.png、*.jpg、*.CSS 扩展 url 调用。因为可能会耽误主请求时间。但是当我们删除这些扩展并只关注主要 URLS 时,它会产生良好的性能还是我需要考虑所有扩展?

注意:请任何人给我在服务器上运行 jmeter 的完整步骤。

提前致谢。

最佳答案

第 2 个问题:

这取决于您要测试的内容。在大多数 Web 应用程序中,提供静态 Assets (图像、样式表、javascript 文件等)不是瓶颈;大多数 Web 应用程序将这些 Assets 设置为可缓存,并且通常使用 CDN 来为它们提供服务。

在大多数网络应用程序中,性能瓶颈在于提供动态页面(.aspx、.php、.jsp)。通常,这些文件类型消耗的服务器功率是静态页面的许多倍;单台机器每秒能够为数千个静态 Assets 提供服务的情况并不少见,但只能为数十或数百个动态 Assets 提供服务。

从业务的角度来看,问题通常是“我的网站可以同时服务多少用户,我需要做什么才能增加这个数量”。对于大多数 Web 应用程序,这意味着“什么是瓶颈资源,我该如何扩展它”。

因此,如果您的性能测试的目标是找到瓶颈资源(这样您就可以对其进行优化!),请忽略静态 Assets 。如果您只能为 20 个请求 home.jsp 的并发用户提供服务,那么您可以为数千个请求 logo.png 的用户提供服务也没关系...

还有一个业务问的问题:“那么,你认为我们可以支持 x 个并发用户 - 证明它!”。在这种情况下,您需要模拟 x 个并发用户访问您的站点 - 这意味着包括静态 Assets (因为您的瓶颈资源可能只是带宽,或者服务器可能配置错误,或者您的缓存策略可能被破坏)。然而,在这种情况下,您实际上是在对 Internet 进行负载测试——您的 CDN 提供商(如果有的话)、Web 服务器的性能(已针对服务静态文件进行了优化)以及托管提供商的带宽管理。这是一种“腰带和大括号”方法——你确实排除了相当小的风险——这通常意味着在测试中投入大量资源——你的测试平台至少需要与你的托管服务提供商一样多的带宽,而且你的测试机器需要能够模拟(成千上万)互联网用户。

关于linux - 在linux上使用jmeter进行性能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928364/

相关文章:

python - 为什么以不同的方式生成数组会导致代码不同部分的大幅加速?

python - 如何在不同的浏览器中使用 LiveServerTestCase 运行 selenium 测试?

sql - 如何在 oracle 数据库中编写参数化查询

linux - 如何在 Linux/Unix 中将多个文件从一个扩展名重命名为另一个?

linux - 通过 VPN 仅重定向 Web 要求

linux - 在 Bash 中将文件中的所有数字四舍五入为相等长度?

performance - 测量表格列中最长单元格的有效方法

c - C中的空间数据结构

javascript - Phantomjs打不开网页

linux - 用于压缩文件夹并将其复制到另一个安装点的 Shell 脚本