当前位置:文档之家› 完整的JMETER使用手册 2

完整的JMETER使用手册 2

JMETER中文手册9.3.1.简介Apache JMeter是100%纯java桌面应用程序,用于压力测试和性能测试。

被设计用来测试客户端/服务器结构的软件(例如web应用程序)。

它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP服务器等等。

JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。

另外,JMeter能够通过让我们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。

为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。

Apache软件组织的Stefano Mazzocchi是JMeter的创始人。

他编写它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程),主要针对Web的压力和性能测试。

为了能够让开发者利用它的可插入架构使JMeter的功能快速扩展。

未来发展的主要目标是在没有影响JMeter的负载测试能力的情况下尽可能使JMeter 成为最实用的回归测试工具,将JMeter扩展到其他测试领域。

JMeter可以用于测试FTP、RPC、HTTP、JUNIT、JMS、LDAP、WebService、(Soap)Request以及Mail和JDBC(数据库压力测试)。

3.2JMeter基础应用开始使用JMeter最容易的方法是首先下载最新版(到JMeter官方网站:/download_jmeter.cgi下载)并且安装它。

这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。

如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。

JMeter 没有提供任何JDBC驱动。

你可能需要下载的其它软件:∙BeanShell-BeanShell函数和测试元件需要∙Java Activation Framework-JavaMail需要∙Java Mail-Mail可视化,Mail Reader和WebService(SOAP)取样器需要∙JMS-JMS取样器需要3.2.1JMeter的安装与配置从官方网站上下载后,解压之后即可使用。

运行命令在%JMETER_HOME%/bin 下,对于Windows用户来说,命令是jmeter.bat(同时会启动一个dos窗口显示一些日志信息)和jmeterw.cmd,建议从jmeter.bat启动要更好些,因为在Jmeter运行的过程中可以在dos窗口看到一些错误日志信息。

运行前请检查JMeter的文档,查看是否具备相关的运行条件。

对于最新版(即2.11),需要JDK的版本要求是JDK1.6以上。

3.2.2操作系统要求JMeter是100%纯Java应用程序并且能够正确的在任何有适当的Java实现的操作系统上运行。

JMeter在下列环境已经被测试:∙Unix(Solaris,Linux,等)∙Windows(98,NT,2000,xp)∙OpenVMS Alpha7.3+3.2.3安装和配置这里推荐大多数用户运行最新版本。

要安装一个构建版本,简单解压zip/tar文件到你想安装JMeter的目录。

保证一个JRE/JDK正确的安装并且设置环境变量JAVA_HOME,其它不需要做什么了。

安装目录接口应该看到的像这样一些东西(2.11版本):jakarta-jmeter-2.11jakarta-jmeter-2.11/binjakarta-jmeter-2.11/docsjakarta-jmeter-2.11/extrasjakarta-jmeter-2.11/lib/jakarta-jmeter-2.11/lib/extjakarta-jmeter-2.11/lib/junitjakarta-jmeter-2.11/licensesjakarta-jmeter-2.11/printable_docs如果你想的话你可以重命名父目录(例如jakarta-jmeter-2.11),但是不要改变任何子目录命。

父目录路径中不能包含任何空格;如果包含,你运行客户端-服务器模式会有问题。

解压Jmeter到你指定的安装目录,然后配置环境变量,打开“系统变量”,新建“JMETER_HOME”,变量值中输入“安装目录”,在CLASSPATH变量值后面添加:“%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar; %JMETER_HOME%/lib/logkit-2.0.jar;”3.2.4运行JMeter要运行JMeter,运行jmeter.bat(for Windows)或者jmeter(for Unix)文件。

那些文件在bin目录下。

稍微暂停后,JMeter GUI会显示出来。

在bin目录你会发现有些附加脚本很有用。

Windows脚本文件(CMD文件需要Win2K或者更新):∙jmeter.bat-运行JMeter(默认在GUI模式)∙jmeter-n.cmd-使用一个JMX文件运行非GUI测试∙jmeter-n-r.cmd-使用一个JMX文件远程运行一个非GUI测试∙jmeter-t.cmd-在GUI模式使用一个JMX文件∙jmeter-server.bat-以服务器模式启动JMeter注意:LAST可以在jmeter-n.cmd,jmeter-t.cmd和jmeter-n-r.cmd中使用,意味着最后一次测试会运行.Unix脚本文件;可以运行在大多Linux/Unix系统.∙jmeter-运行JMeter(默认在GUI模式)∙jmeter-server-以服务器模式启动JMeter3.2.5JMeter Classpath简单介绍JMeter自动从下列目录中的jar文件发现类。

∙JMETER_HOME/lib-用来放使用的jar文件∙JMETER_HOME/lib/ext-用来放JMeter组件和扩展如果你开发新的JMeter组件,你可以压缩它们成jar包并拷贝到JMeter的/lib/ext目录。

JMeter将会自动发现在这里的任何jar文件中的JMeter组件。

支持的jar文件(类库)应该放在lib目录.如果你不想把扩展jar包放到lib/ext 目录,可以在jmeter.properties中定义search_paths属性。

不要使用lib/ext 给那些公用的jar包;它仅仅是存放JMeter组件。

其他jar包(例如JDBC,和任何JMeter代码需要支持的类库)应该被代替放在lib目录-而不是lib/ext 目录。

你可以在$JAVA_HOME/jre/lib/ext安装有用的jar文件,或者(自从2.1.1版本)你可以在jmeter.properties中设置user.classpath属性。

注意设置CLASSPATH环境变量将不起作用。

这是因为JMeter使用"java--jar"启动,并且java命令无记录忽略CLASSPATH变量,并且当使用-jar选项时-classpath/-cp选项也被使用。

[所有的java程序都是这样,不仅仅是JMeter。

] 3.3Jmeter简单的压力测试实例如果我们要对163的首页性能进行简单测试,我们可以按照以下步骤进行。

1.在测试计划里面创建一个线程组,在这个线程组下这个线程组的线程数,也就是并发用户数,循环次数每个并发用户的请求数。

参数ramp-up period用于告知JMeter要在多长时间内建立全部的线程。

默认值是0。

假如未指定ramp-up period,也就是说ramp-up period为零,JMeter将立即建立所有线程,假设ramp-up period设置成T秒,全部线程数设置成N个,JMeter将每隔T/N秒建立一个线程。

2.在这个线程组下右键在sampler里面选择http请求,创建http请求。

可以设置http 请求的协议,参数,路径等,还可以设置所带上的参数信息。

3.在HTTP请求右键里面选择监听器下的聚合报告,创建一个聚合报告,可以查看这次测试的结果。

4.选择菜单运行里面的启动,启动本次测试。

测试结果如果:Aggregate Report是JMeter常用的一个Listener,中文被翻译为“聚合报告”。

今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。

如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report 中,会显示一行数据,共有10个字段,含义分别如下。

Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100Average:平均响应时间——默认情况下是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间Median:中位数,也就是50%用户的响应时间90%Line:90%用户的响应时间Note:关于50%和90%并发用户数的含义,请参考下文/jackei/archive/2006/11/11/557972.htmlMin:最小响应时间Max:最大响应时间Error%:本次测试中出现错误的请求的数量/请求的总数Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller时,也可以表示类似LoadRunner的Transaction per Second数KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/SecApache jmeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。

它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

因此,Jmeter得到了广泛的应用。

我们可以通过对Jmeter的实际应用来了解Jmeter的使用方法,从而提高我们的各类代码编程效率。

相关主题