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

时间:2012-12-18 07:36:38

标签: 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时,它是否会提供良好的性能,还是需要考虑所有扩展?

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

Apropos问题2:

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

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

从商业角度来看,问题通常是“我的网站可以提供多少并发用户,以及我需要做些什么来增加这个数字”。对于大多数Web应用程序而言,这意味着“什么是瓶颈资源,以及如何扩展它”。

因此,如果您的性能测试的目标是找到瓶颈资源(因此您可以优化它!),请忽略静态资产。如果您只能为请求home.jsp的20个并发用户提供服务,那么您可以为数千个请求logo.png提供服务并不重要...

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

答案 1 :(得分:0)

问题1:服务器上的本地和Jmeter上的Jmeter是否与相同的脚本和方案有区别?我发现了很小的差异?

jmx的执行没有区别。在Windows中,您必须通过jmeter.bat运行jmeter,在linux中,您必须使用jmeter.sh运行。鉴于您不能更改jmx文件的条件。

Q2。我从jmeter脚本中删除了* .png,* .jpg,* .CSS扩展url调用。因为它可能会延迟主要的请求时间。但是,当我们重新删除这些扩展并专注于主URL时,它是否会提供良好的性能,还是需要考虑所有扩展?

在录制过程中尝试避免此扩展。排除。*。(bmp | css | js | gif | ico | jpg | png | swf | woff | php | jsp | html | htm | ashx)

没有步骤说明:  1.转到Linux服务器并找到jmeter bin文件夹(/opt/jmeter/apache-jmeter-2.13/bin/jmeter.sh)  2.使用shell脚本打开你的jmx。  3. sh /opt/jmeter/apache-jmeter-2.13/bin/jmeter.sh -t sampletest.jmx -p user.properties -q os.properties

方法2: 1.通过在linux中执行cd命令导航到bin文件夹。  1.使用./jmeter.sh,它将在GUI模式下打开一个空白的jmeter测试计划。  2.如果要使用分布式测试模式运行。在slave linux机器上使用./jmeter-server。但是您需要在属性文件中配置从属计算机的IP地址。

希望这会有所帮助..