jmeter_linux

http://jmeter.apache.org/download_jmeter.cgi

================

http://blog.csdn.net/ceo158/article/details/9331813

1、安装&配置

可在Linux服务器上利用服务器强大的性能,执行JMeter进行性能测试。

当然,可在Windows机器上先编好测试计划(注意版本匹配,否则可能产生莫名错误),然后下载到Linux上运行。

以JMeter2.9为例,下载地址:http://jmeter.apache.org/download_jmeter.cgi,选择binaries下2.9版本。

解压完成后,添加环境变量:

vi /etc/profile

添加下述两行:

export JMETER="/usr/local/jmeter/apache-jmeter-2.9"
export CLASSPATH="$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH"

完成添加后下述命令使配置生效:

source /etc/profile

 

2、运行测试计划

如需要修改测试计划,可在Linux上以文本形式打开,编辑诸如线程数,迭代次数等等参数。

首先为测试计划test_on_linux.jmx新建一个存储测试结构的文件test.jtl。

在JMeter的bin目录下运行命令:

./jmeter -n -t test_queryweb_on_linux.jmx -l test_queryweb.jtl

参数说明:

-n表示以nogui方式运行测试计划

-t表示测试计划,后面跟测试计划名称

-l表示测试结果,后面跟测试结果文件名称

 

如果没有错误,则打印如下信息:

[root@localhost bin]# ./jmeter -n -t test_on_linux.jmx -l test.jtl
Created the tree successfully using test_on_linux.jmx
Starting the test @ Mon Jul 15 13:51:22 CST 2013 (1373867482740)
Waiting for possible shutdown message on port 4445
Tidying up ...    @ Mon Jul 15 13:52:37 CST 2013 (1373867557639)
... end of run

 

3、查看测试结果

上述end of run表示测试计划已经运行完毕。可在windows上运行JMeter打开测试结果文件test.jtl。

具体步骤为:

step1:

运行JMeter的bin目录下jmeter.bat,打开JMeter图形窗口,并新建或打开一个测试计划,为该计划添加“结果查看树”和“聚合报告”。

图1 添加“结果查看树”和“聚合报告”。

 

step2:

打开查看结果树,点击“浏览”按钮打开测试结果文件test.jtl。同理,打开聚合报告,点击“浏览”按钮打开测试结果文件test.jtl生成聚合报告。

图2 打开结果文件

 

4、分布式运行JMeter

执行命令:./jmeter -n -t test.jmx -R  ip1,ip2 -l test.jtl

参数说明 :
-R  表示JMeter代理,后面跟代理所在ip地址。
其他操作与单代理一样。
 
5、可能产生的运行时错误
1)Error in NonGUIDriver java.lang.NullPointerException
产生该错误的原因,目前就我所知,有两种情况:
情况1,低版本的JMeter运行高版本的测试计划(测试计划是在高版本的JMeter上编制的)。解决方法:使用相同或更高版本JMeter运行该计划。
情况2,使用第三方插件生成的测试计划,运行在没有该第三方插件的JMeter上。解决方法:在JMeter上安装插件或重新生成不包含插件的测试计划。
 
=======================
http://www.ibm.com/developerworks/cn/java/l-jmeter/

JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以到 http://jakarta.apache.org/jmeter/index.html下载源代码和查看相关文档。

JMeter作用领域

JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

 

使用JMeter测试Web应用

接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。

2.1 测试环境

作者使用了Tomcat作为Web服务器进行测试,被测试的内容是一个jsp文件和一个servlet,jsp文件调用JavaBean、打印相关信息,servlet接受用户参数、调用javabean、输出相关信息。详细的内容请参考作者提供的JMeter.war的内容。

2.2 安装启动JMeter

大家可以到通过http://apache.linuxforum.net/dist/jakarta/jmeter/binaries/jakarta-jmeter-1.9.1.zip下载JMeter的release版本,然后将下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。

现在,请使用%JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面,下面的工作都将在这个可视化界面界面上进行操作。下面的图片是JMeter的可视化界面的屏幕截图。

图一: JMeter打开时的屏幕截图
图一: JMeter打开时的屏幕截图

2.3 建立测试计划(Test Plan)

测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(Config Elements)。打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。

现在我们开始填充一个测试计划的内容,这个测试计划向一个jsp文件和一个servlet发出请求,我们需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次,下面的章节介绍了详细的操作步骤。

2.4 增加负载信息设置

这一步,我们将向测试计划中增加相关负载设置,是Jmeter知道我们需要模拟五个请求者,每个请求者在测试过程中连续请求两次。详细步骤如下:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add'Thread Group,界面右边将会出现他的设置信息框。

2. Thread Group有三个和负载信息相关的参数: 
Number of Threads: 设置发送请求的用户数目 
Ramp-up period: 每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒 
Loop Count: 请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。

根据我们演示例子的设计,我们应该将Number of Threads设置为5,Ramp-up period设置为0(也就是同时并发请求),不选中forever,在Loop Count后面的输入框中输入2,设置后的屏幕截图如下:

图二:设置好参数的Thread Group。
图二:设置好参数的Thread Group。

2.5 增加默认Http属性(可选)

实际的测试工作往往是针对同一个服务器上Web应用展开的,所以Jmeter提供了这样一种设置, 在默认Http属性设置需要被测试服务器的相关属性,以后的http请求设置中就可以忽略这些相同参数的设置,减少设置参数录入的时间。

我们这里将采用这种属性。你可以通过下面的步骤来设置默认http属性:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add'config element'http request defaults,界面右边将会出现他的设置信息框。

2. 默认http属性的主要参数说明如下: 
protocal:发送测试请求时使用的协议 
server name or ip:被测试服务器的ip地址或者名字 
path: 默认的起始位置。比如将path设置为/jmeter,那么所有的http请求的url中都将增加/jmeter路径。 
port number: 服务器提供服务的端口号

我们的测试计划将针对本机的Web服务器上的Web应用进行测试,所以protocal应该是http,ip使用localhost,因为这个web应用发布的context路径是/jmeter,所以这里的path设置为/jmeter,因为使用Tomcat服务器,所以port number是8080。设置后的屏幕截图如下:

图三: 测试计划中使用的默认Http参数
图三: 测试计划中使用的默认Http参数

2.6 增加Http请求

现在我们需要增加http请求了,他也是我们测试的内容主体部分。你可以通过下面的步骤来增加性的http请求:

1. 选中可视化界面中左边树的Thread Group节点,单击右键,选择Add'sampler'http request,界面右边将会出现他的设置信息框。

2. 他的参数和2.5中介绍的http属性差不多,增加的属性中有发送http时方法的选择,你可以选择为get或者post。

我们现在增加两个http 请求,因为我们设置了默认的http属性,所以和默认http属性中相同的属性不再重复设置。设置后的屏幕截图如下:

图四:设置好的jsp测试请求
图四:设置好的jsp测试请求
图五:设置好的Servlet测试请求(带参数)
图五:设置好的Servlet测试请求(带参数)

2.7 增加Listener

增加listener是为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果,里面有好几种结果分析方式可供选择,你可以根据自己习惯的分析方式选择不同的结果显示方式,我们这里使用表格的形式来查看和分析测试结果。你可以通过下面的步骤来增加listener:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add'listener'view result in table,界面右边将会出现他的设置信息和结果显示框。

2. 你可以设置界面上面的filename属性设置将测试结果保存到某个文件中 界面下面将使用表格显示测试结果,表格的第一列sampleno显示请求执行的顺序和编号,url显示请求发送的目标,sample-ms列显示这个请求完成耗费的时间,最后的success列显示改请求是否成功执行。

界面的最下面你还可以看到一些统计信息,最关心的应该是Average吧,也就是相应的平均时间。

2.8 开始执行测试计划

现在你可以通过单击菜单栏run -> Start开始执行测试计划了。下面这两个图是作者第一次、第二次执行该测试计划的结果图:

图六:第一次执行后的结果显示
图六:第一次执行后的结果显示
图七:第二次执行的结果显示
图七:第二次执行的结果显示

大家可以看到第一次执行时的几个大时间值均来自于jsp request,这可以通过下面的理由进行解释:jsp执行前都需要被编译成.class文件。所以第二次的结果才是正常的结果。

 

总结

JMeter用于进行供能或者性能测试,通过使用JMeter提供的供能,我们可以可视化的制定测试计划:包括规定使用什么样的负载、测试什么内容、传入的参数,同时,他提供了好多种图形化的测试结果显示方式,使我们能够简单的开始测试工作和分析测试结果。

本文中,作者根据自己的使用经验,详细演示了如何使用JMeter来进行Web测试的全部过程,简单的介绍了JMeter提供测试结果的图形化显示界面中相关参数的含义。希望能够帮助大家学会使用JMeter的基本知识,同时,大家可以参考这个过程和JMeter的帮助文档来实现对java对象、数据库等的测试过程。

 
 
==========================

 

 

http://blog.linuxeye.com/335.html

Apache JMeterApache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

1. 下载JMeter
官方网站下载最新版本: http://jmeter.apache.org/download_jmeter.cgi ,目前最新版是Apache JMeter 2.9
使用JMeter依赖jdk,建议安装jdk 1.6版本
Linux下安装jdk参考文章:http://www.linuxeye.com/linuxrumen/Linux-install-JDK.html
Windowns下安装jdk同Linux下安装类似,这里就不介绍了。

2. 启动JMeter
这里就在win下进行,图形界面较为方便
在目录apache-jmeter-2.9\bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。

3. 运行预准备
现在来对LinuxEye进行压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。
1) 建立一个线程组,如下图

为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问LinuxEye
线程属性部分中,线程数是启动多少个线程,我这里填写的是10,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写10,那么10/10=1表示10个线程间每隔1秒钟请求网站。
循环次数:60个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里测试就填写的是2.
每次修改一个设置后,别忘记了保存一下。

2) 设置请求服务器、压力链接等信息
接下来很自然的是,我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。
右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

路径:
假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如 http://www.linuxeye.com,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:

在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:

 

然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:
${__StringFromFile(C:\Users\root\Desktop\apache-jmeter-2.9\test.txt,,,)}
在test.txt测试文件中,我们每行写一个URL链接,如下格式:
/command
/linuxrumen
/program
/jianzhan
/command/cat.html
/command/chmod.html
/command/lsattr.html

注意,每行前面并没有http://www.linuxeye.com这样的信息,因为我们在前面已经填写了服务器地址为www.linuxeye.com,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。

这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。
另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

3) 查看运行结果
鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:

4. 运行
当然,在运行前,请把所有修改都保存好
运行后的结果表格如下:

各属性如下:
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

在下面还有几个参数:
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

术语:
1、线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加  ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。
2、取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。
3、断言:对取样器返回的请求结果给出判断是否正确。
4、monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

 

 

http://wordpressapi.com/how-to-install-jmeter-on-linux/

Jmeter is basically used for load testing of web applications. Application Load testing is very important for every application. Jmeter is loved by every QA and testing software professional. If you are QA software professional then you need to know how install on windows or linux box and how use it properly. Here In this tutorial I shown you to how to Jmeter on Linux.

how to install Jmeter on Linux

install Jmeter on Linux

install Jmeter on Linux

JMeter is to first download the latest production release and install it. The release contains all of the files you need to build and run most types of tests, e.g. Web (HTTP/HTTPS), FTP, JDBC, LDAP, Java, and JUnit.

If you want to perform JDBC testing, then you will, of course, need the appropriate JDBC driver from your vendor. JMeter does not come with any JDBC drivers.

If you want to install the jmeter on your linux box you need to follow my steps:

 
 
Installation steps are Hidden! It's Visible for Users who Liked/Shared This article on Facebook or Twitter or Google+. Like or Tweet this article to reveal the content.

After this you can use following commands for load testing.

For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the following command options

-n This specifies JMeter is to run in non-gui mode

-t [name of JMX file that contains the Test Plan].

-l [name of JTL file to log sample results to].

-r Run the test in the servers specified by the JMeter property “remote_hosts”

-R [list of remote servers] Run the test in the specified remote servers

The script also lets you specify the optional firewall/proxy server information:

-H [proxy server hostname or ip address]
-P [proxy server port]

Example : jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

 

 

http://blog.toright.com/posts/3926/linux-%E9%80%8F%E9%81%8E-command-line-%E5%9F%B7%E8%A1%8C-jmeter-%E9%80%B2%E8%A1%8C%E5%A3%93%E5%8A%9B%E6%B8%AC%E8%A9%A6.html

JMeter 算是非常老字號的 HTTP 壓力測試工具,最大的好處就是有界面可以規劃測試腳本,雖然這個採用骨灰級 Java Swin 寫出來的界面真的很古老而且很醜,以現在 UX 業界水準當然稱不上好用,但是其功能還算堪用,要用免費且 Open Source 總不能要求太多。往往在測試的過程中要進行大量連線的壓力測試,若是碰到測試網路與機器效能等等的問題,就需要在遠端機房內進行測試,或者進行分散併發測試 (就是 DDOS 囉),這些 JMeter 也都有支援。

安裝 JMeter 與 Command Line 執行

今天並沒有要介紹如何使用 JMeter,只簡單說明在遠端 Linux 系統中如何透過命令列執行測試腳本。一開始我們先安裝 JMeter,Ubuntu 安裝方式如下:

sudo apt install jmeter

CentOS 或者您想安裝最新的版本可以到 Apache JMeter 下載,下載後直接解壓所即可,目前的最新版是 2.11 安裝命令如下:

wget http://ftp.twaren.net/Unix/Web/apache//jmeter/binaries/apache-jmeter-2.11.tgz

tar -zxvf apache-jmeter-2.11.tgz

cd apache-jmeter-2.11/bin

jmeter

JMeter 是用 Java 寫的,如果沒有安裝 Java 執行會出現「java: command not found」,趕快透過 apt 或 yum 裝一下 Java 就可以囉。

要用 Command Line 執行之前,我們必須將專案另存為 .jmx 檔案,如此就能夠透過下命令執行測試囉。

jmeter -n -t your-project.jmx -l report.xml

但執行的過程中我們只會看到以下畫面,並不會顯示任何執行資訊或狀態,實在不方便。

接下來我們需要修改 Jmeter 設定,好讓我們測試時可以像 UI 一樣有即時的報表可以參考。

修改 JMeter 參數即時顯示測試狀態

修改 jmeter.properties 檔案

sudo vim /usr/share/jmeter/bin/jmeter.properties

取消註解以下參數:

 

這樣就可以看到即時的統計結果囉,超簡單!

posted @ 2015-03-02 13:38 陳聽溪 阅读(...) 评论(...)  编辑 收藏