当前位置:文档之家› JMeter

JMeter

JMeter
JMeter

程序)。它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。

另外,JMeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter允许我们使用正则表

JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。我们重新设计JMeter来增强

最容易的方法是首先下载最新版

运行Web,FTP,JDBC,和JNDI测试时使用的所有文件。

如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。JMeter没有提供任何JDBC 驱动。

其它你可能需要下载的软件:

?BeanShell

?Java Activation Framework - JavaMail需要

?Java Mail - mail 显示 and SOAP 测试需要

?JMS - JMS 取样器

?General Java download page

详细参见安装的jar包中的 JMeter Classpath 一章

?

下一步, 开始使用JMeter并且参见用户手册构建测试计划一章使自己更加熟悉JMeter基础(例如,添加和删除元素)。

最后, 参见如何构建一个明确类型的测试用例的适合章节。例如,如果你对Web应用测试感兴趣,那就参见构建一个Web测试计划。其他测试计划的细节是JDBC, FTP, and JNDI。

一旦你熟练构建和执行JMeter测试计划, 通过你的测试计划你会观察到给你更多帮助的各种元

2.2.1 Java 编译器

如果你想编译JMeter源代码或者开发JMeter插件,你将需要一个完整的适当的JDK1.3或者更高。

2.2.2 SAX XML解析器

JMeter 使用 Apache's Xerces XML 解析器你可以选择告诉JMeter使用一个不同的XML 解析器。这样做,把第三方的解析器的类包包含在JMeter的classpath 中,并更新

jmeter.properties 文件里的解析器实现的全类名。

2.2.3 Email 支持

JMeter 有有限的 Email 能力。它能够发送给你测试结果的email,并且支持POP/IMAP 取样器。它现在不支持 SMTP 取样。为了能够支持 Email, 需要添加Sun 的JavaMail包和activation包到JMeter classpath 。

2.2.4 SSL 加密

为了测试一个使用SSL加密(HPPS)的web服务器, JMeter 需要一个提供SSL实现 (例如 Sun 的 Java Secure Sockets Extension - JSSE)。包含需要的加密包到JMeter的 classpath 。同样,通过注册SSL提供者更新 jmeter.properties 。

为了更好的管理证书,也要有一个SSL 管理器。

注意

如果你在JDK1.4上运行,你将不需要下载JSSE,因为SUN已经集成它到

JDK1.4中做为标准类库了。

JMeter 代理服务器(见下)不支持记录SSL(https)。

2.2.5 JDBC 驱动

你需要添加你的厂商的JDBC驱动到classpath,如果你需要JDBC测试.确认文件是一个jar文件,而不是zip。

2.2.6 Apache SOAP

Apache SOAP 需要 mail.jar 和 activation.jar. 你需要下载并拷贝两个jar文件到你jmeter/lib 目录.一旦文件放到那里,JMeter 会自动找到它们。

详细参见安装的jar包中的 JMeter Classpath 一章

2.3 安装

快速安装JMeter。细节依赖你下载的发布文件。

注意

避免在一个有空格的路径安装 JMeter。这将导致远程测试出现问题。

2.3.1 下载最新版本

我们推荐大多数用户运行最新版本。

要安装一个构建版本,简单解压zip/tar文件到你想安装JMeter的目录。保证一个JRE/JDK正确的安装并且设置环境变量JAVA_HOME,其它不需要做什么了。

2.3.2 下载夜晚构建

如果你不介意使用beta版软件,你可以下载运行最新夜晚构建。

要安装一个夜晚构建,解压_bin和_lib zip/tar文件到相同的目录结构。保证一个JRE/JDK正

须从 JMeter 的bin 目录 (那些文件没有发现的地方)启动。如果jmeter.bat文件能够的话,它试图改变到一个适当的目录。

2.4.1 JMeter Classpath

JMeter 自动从在它的/lib 和 /lib/ext目录中的jar包发现类。如果你开发新的 JMeter 组

件,你可以压缩它们成jar包并拷贝到 JMeter 的 /lib/ext 目录。JMeter 将会自导发现在这里的任何jar包的JMeter 组件。如果你不想把扩展jar包放到lib/ext 目录,可以在jmeter.properties中定义search_paths属性。不要使用lib/ext 给那些有用的jar包;它仅仅是存放 JMeter 组件。

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

注意

JMeter 会发现.jar文件,而不是.zip文件。

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

注意设置CLASSPATH 环境变量将不起作用。这是因为JMeter 使用"java --jar"启动,并且java 命令无记录忽略CLASSPATH 变量,并且当使用-jar选项时-classpath/-cp 选项也被使用。[所有的java程序都是这样,不仅仅是JMeter。]

2.4.2 使用代理服务器

如果你在防火墙/代理服务器后测试,你需要提供给JMeter防火墙/代理服务器的主机名和端口号。这样做,从命令行使用以下参数运行jmeter.bat/jmeter文件:

-H [代理服务器主机名或者ip地址]

-P [代理服务器端口]

-N [非代理主机] (例如: *https://www.doczj.com/doc/2010622707.html,|localhost)

-u [代理证书用户名- 如果需要]

-a [代理证书密码 - 如果需要]

例如 : jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost

或者, 你使用 --proxyHost, --proxyPort, --username, and --password

JMeter也有自己的内建 HTTP代理服务器,来记录HTTP (不是 HTTPS)浏览

器会话。这是和上面的代理设置描述不混淆的,它是在JMeter发出HTTP或

者HTTPS请求时使用的。

2.4.3 非用户界面模式 (命令行模式)

为了不相互影响测试, 你可以选择运行没有用户界面的JMeter。这样做,使用下列命令选项:-n 这是指定JMeter在非用户界面模式运行

-t [包含测试计划的JMX文件的名字]

-l [记录取样结果的JTL文件的名字]

-r 运行在jmeter.properties文件里所有的远程服务器 (或者通过在命令行覆盖属性指定远程服务器)

这个脚本也允许我们指定可选的防火墙/代理服务器信息:

-H [代理服务器主机名或者ip地址]

-P [代理服务器端口]

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

2.4.4 服务器模式

为了分布测试,在服务器模式运行JMeter,并且通过用户界面控制每一台服务器。

jmeter-server/jmeter-server.bat 脚本使用适当的classpath为你开始

远程注册。如果失败,参见关于JMeter服务器启动细节。

运行jmeter-server/jmeter-server.bat,加上下列选项命令:

这个脚本也允许我们指定可选的防火墙/代理服务器信息:

-H [代理服务器主机名或者ip地址]

-P [代理服务器端口]

例如 : jmeter-server -H my.proxy.server -P 8000

2.4.5 通过命令行覆盖属性

Java系统属性,JMeter属性,和日志属性可以通过命令行直接覆盖(代替更改jmeter.properties文件)。这样做,使用下列选项:

-D[prop_name]=[value] - 定义一个java系统属性值。

-J[prop name]=[value] - 覆盖一个JMeter属性。

-L[category]=[priority] - 覆盖一个日志设置,设置一个特殊目录为给定的优先级。

-L 标志也可以使用没有目录名来设置根目录日志等级。

例如 :

jmeter -Duser.dir=/home/mstover/jmeter_stuff \

-Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG

jmeter -LDEBUG

注意

命令行参数在启动时较早被处理,但是在日志系统被设置以后。尝试使用-J

标志更新log_level或者log_file属性无效。

2.4.6日志和错误信息

如果JMeter发现一个错误, 一个消息将被写入日志文件。日志文件名在jmeter.properties文件中定义。一般定义为 jmeter.log 。并且在JMeter启动目录,例如bin。

当在Windows下运行时,如果你不设置Windows显示文件扩展名,文件名会仅显示为 JMeter。[你可以做一些事都很容易地发现伪装成文本文件的病毒和垃圾文件...]

还有记录错误,jmeter.log 文件记录一些测试运行信息。例如:

10/17/2003 12:19:20 PM INFO - jmeter.JMeter: Version 1.9.20031002

10/17/2003 12:19:45 PM INFO - jmeter.gui.action.Load: Loading file: c:\mytestfiles\BSH.jmx

10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Running the test! 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1.

10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Continue on error 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 started 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 is done 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Test has ended

日志文件对发现错误原因很有帮助,作为JMeter不会打断一个测试来显示一个错误对话框。2.4.7 命令行选项目录

调用JMeter的 "jmeter -?"命令将打印所有命令选项的一个列表。列表如下:

-h, --help 打印使用信息并退出

-v, --version 打印版本信息并推出

-p, --propfile {argument} 使用的JMeter属性文件

-q, --addprop {argument} 附加的属性文件

-t, --testfile {argument} 运行的JMeter测试文件(.jmx)

-l, --logfile {argument} 日志取样文件

-n, --nongui 非用户界面运行JMeter

-s, --server 运行JMeter 服务器

-H, --proxyHost {argument} 设置JMeter 使用的代理服务器

-P, --proxyPort {argument} 设置JMeter 使用的代理服务器端口

-u, --username {argument} 设置JMeter 使用的代理服务器用户名

-a, --password {argument} 设置JMeter 使用的代理服务器密码

-J, --jmeterproperty {argument}={value} 定义附加的 JMeter 属性

-D, --systemproperty {argument}={value} 定义附加的 System 属性

-S, --systemPropertyFile {filename} 一个属性文件被做为系统属性添加

-L, --loglevel {argument}={value} 定义日志等级: [category=]level

例如 jorphan=INFO or jmeter.util=DEBUG

-r, --runremote 从非用户界面模式启动远程服务器

-d, --homedir {argument} 使用的JMeter 目录

2.5 配置 JMeter

如果你希望改变JMeter 运行时的属性你需要改变在/bin 目录的jmeter.properties 文件,或者

创建你自己的jmeter.properties 文件并且在命令行指定它。

注意

自从 2.1.2,你能够通过JMeter 属性user.properties 在文件中定义附加的

JMeter 属性,user.properties 默认值是user.properties 。如果在当前目

录被发现,这个文件被自动加载。类似的,system.properties 被用来更新

系统属性。

或者,元件从文件加载并且通过选择"open"选项添加。

的元件保存的文件。JMeter 会加载元件到树中。

为了保存树元件,在一个元件上右击,选择"save"选项。JMeter 会保存已选的元件,加上所有什么被配置为一个依赖元件类型的元件。

可以通过拖拉测试树周围的元件操作测试树。

3.4 运行一个测试计划

为了运行一个测试计划,从"run"菜单项选择"start"。为了停止你的测试计划,从同样的菜单选择"stop"。JMeter 不会自动给它是否正在运行任何显示。如果JMeter 运行,一些监听器使它变明显,但是唯一确定的方法是检查"run"菜单。如果"start"不可用,"stop"可用,证明JMeter 置元素,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器,取样器)。当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求有序列表。那些请求常组织在也有序的控制器中。给出如下测试树:

Example test tree

请求的顺序是 One,Two,Three,Four。

一些控制器影响它的子元件的顺序,你可以在组件参考看到详细的控制器。

其他元素是分等级的。例如,一个断言在测试树中是分等级的。如果你的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。如下测试树:

Hierarchy example

Assertion #1 仅被应用于请求 One, Assertion #2 仅被应用于请求 Two 和 Three。

其它例子,这次使用定时器:

complex example

在这个例子里,请求的命名表现它们被执行的顺序。Timer #1 应用于请求 Two, Three, 和Four (注意对于分等级的元件怎样的顺序是不相关的)。Assertion #1 应用于请求Three。Timer #2 对所有请求有效。

希望那些例子使你弄清了配置(分等级的)元件如何被应用。如果你想每个请求都被树分叉拒绝,到它的父元件,到它的父元件的父元件,等等,每次收集所有它的父元件的配置元件,你将看到它如何工作的。

元件Header Manager, Cookie Manager 和Authorization manager 的配置和默认元件的配置被视为是不同的。默认元件配置的设置并入取样器到达的值的集里。然而来自管理器的设置没有并入。如果多于一个管理器在一个取样器范围中,仅仅一个被使用,但是现在没有办法指定那个被使用。

Comments (Hide)

3.6 Error reporting

3.6 錯誤報告

JMeter reports warnings and errors to the jmeter.log file, as well as some information on the test run itself. Just occaisionally there may be some errors that JMeter is unable to trap and log; these will appear on the command console. If a test is not behaving as you expect, please check the log file in case any errors have been reported (e.g.

perhaps a syntax error in a function call).

JMeter 把警告和錯誤訊息回報在jmeter.log這個檔案中,就像測試本身在執行時產生的某些資訊。只是偶爾地,JMeter對於某些錯誤是無法補捉和記錄的,這些資訊都會顯示在執行命令台上。如果一個測試的執行並不是你所期待的,那麼當錯誤發生時,請你檢查記錄檔(例如:也許在函數的調用上有語法上的錯誤)。

Sampling errors (e.g. HTTP 404 - file not found) are not normally reported in the log file. Instead these are stored as attributes of the sample result. The status of a sample result can be seen in the various different Listeners.

取樣錯誤(例如:HTTP 404 - 找不到檔案)是不會被正常的記錄在記錄檔中的,取而代之的,他

回的每个取样的数据。如果你在你的测试监听器中选择一个文件,这个数据将被写入文件。你

样器元件,它仅在取样器元件运行后执行。后置处理器最多用来处理响应数据,常用来从它里

1.

2.取样器

3.后置处理器 (如果SampleResult不为空)

4.断言 (如果SampleResult不为空)

5.

Jackrta网站上的两个网页发送请求。当然,你也可以让每个用户发送两次。这样,总的HTTP 发送请求为(5个用户*2次请求*重复2次)=20。要构建这个测试计划,你将会用来下面的元素:线程组 , HTTP请求 , HTTP请求默认值和图形结果。

要创建更好的测试计划,可以参考创建一个高级的测试计划网站。

拟的用户数量,用户应该发送请求的频率和应该发送的数量。

进一步来添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。

这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。

下一步,你需要修改这些默认的属性。如果你还没有选择线程组元件,则从测试计划树型结构中选择它。这时你应该看到JMeter窗口右边的线程组控制面板了。

图5.1. 线程组默认值

首先给这个线程组起一个有意义的名字。在名称域中, 输入Jakarta Users.

下一步,增加用户的数量为5。

在下一个the Ramp-Up Period文本域中 , 使用默认值为0。这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period 为5秒,JMeter将会在五秒结束前完成启动所有的用户。所以,如果你有五个用户并且Ramp-Up Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒). JMeter将会立即启动你所有的用户,如果你设置其值为0。最后,取消标记为"永远"的复选框选择并设置循环次数为2。这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。要让JMeter不断的运行,你要选择"永远"这个复选框。

在大多数的应用程序中,你需要手动来接受你在控制面板中所做的修改。但

元件的名字,树型菜单自动更新当你离开控制面板后。 (例如, 当你选择另

外一个树元件。)

图 5.2 为完整的Jakarta Users线程组。

默认值。然后在5.3节,用你在这里指定的默认设置来添加HTTP请求元件。

首先选择Jakarta Users元件,右键点击并在弹出的菜单中选择添加 -->配置元件 --> HTTP 请求默认值。然后选择这个新元件来显示其控制面板(见图5.3)。

图5.3. HTTP 请求默认值

跟大多数的JMeter元件一样, HTTP请求默认值控制面板也有一个名称域。在这个例子中将它保留为默认值。

下面这个文本域是Web Server的Server名字/IP。对于这个测试计划中,所有的HTTP请求都将发送到相同的网站服务器https://www.doczj.com/doc/2010622707.html,。向文本域中输入名字,这是唯一的一个需要

我们去修改它的默认值,其它的文本域都保留它们的默认值。

HTTP请求默认值元件并不告诉JMeter来发送HTTP请求,它仅仅定义这个

HTTP请求所用的默认值。

图5.4表示为完整的HTTP请求默认值元件

添加cookie支持,可以简单的在你的测试计划中给每一个线程组添加一个 HTTP Cookie 管理器。这样确信每个线程组有自己的cookies,但是通过所有交互的 HTTP 请求对象变成共享。添加 HTTP Cookie 管理器 , 简单地,选择这个线程组,选择添加--> HTTP Cookie管理器,

(https://www.doczj.com/doc/2010622707.html,/),第二个就是工程向导网页(https://www.doczj.com/doc/2010622707.html,/site/guidelines.html)。

JMeter按照它们在树的出现的次序来发送请求。

首先给Jakarta Users元件添加第一个 HTTP请求 (添加 --> 取样器 --> HTTP 请求)。然后从树中选择HTTP请求元件并修改正面的属性(看图5.5):

更改名称域为"Home Page".

设置路径域为 "/"。

你不必要设计服务器的名称域,因为你已经在HTTP请求默认值元件中设定

过了。

图 5.5. Jakarta首页的HTTP请求

下一步,添加每二个HTTP请求并修改下面的属性(见图5.6):更改名称域为"Project Guidelines"。

设置路径域为 "/site/guidelines.html"。

在一个文件中并显现出数据的可视模型。

选择Jakarta Users 元件,然后添加一个图形结果监听器 (添加 -->图形结果). 接着,你需要指定一个文件路径和输出文件名。你可以在文件名域中输入或选择浏览按钮并选择一个路径

然后输入文件名。

菜单中的"保存测试计划"来保存(在最新版本中你不需要先选择测试计划元件)。

JMeter允许你保存整个测试计划树,也可以只保存其中的一部分。要保存

特别树枝中的一些元件,首先选择树枝的起始元件,然后在右键弹出的菜单

中选择保存为菜单项。同样的,也可以选择合适的元件,然后选择编辑菜单

中的"另存为"。

5.7 运行测试计划

从 Run 菜单中选择Run。

如果测试运行正确,JMeter会在上方显现一个绿色的长方形区域。当所有

的测试结束时,它将会变成灰色。即使在你选择了"stop"后,这个绿色的灯

还将保持,直到所有的线程结束。

一旦JMeter已经完成测试计划,选择"run"菜单中的"stop"。

如果你选择了一个文件来保存你监听器中的结果,那么你将有一个文件,它可以在任何的视图中打开。每一个视图将以它自己的样子显示结果。

相同的文件可以在多个视图中打开,这是没有问题的。在测试运行期间,

JMeter确信没有例子被多次保存在同一个文件中。

6. 创建一个高级web测试计划

在这章,你将学到如何创建高级测试计划测试web站点。

需要做一点额外的工作。

为了响应正确到URL重写,JMeter需要解析从服务器接受的HTML和重新得到唯一的会话ID。利用适当的 HTTP URL 重写修改器来完成这些。简单地输入你的会话ID参数名到修改器,它会找到它并添加它到每一个请求。如果请求已经有一个值,它将会被替代。如果"Cache Session Id?"被选中,那么最后被发现的会话ID将被保存,并且如果HTTP的上次取样不包含一个会话ID将会被使用。

URL 重写例子

下载这个例子。在图1 展示了一个使用URL重写的测试计划。注意URL重写修改器附属于线程组,因此确定它对在那个线程组的每一个请求有效。

图 1 - 测试树

在图2中,我们看到了URL重写修改器的GUI,它仅仅有一个让用户指定会话ID参数名的文本域。有一个复选框来指示会话ID将被化为为路径 (以";"隔开),这样胜过使用一个请求参数。

"User-Agent", "Pragma", "Referer"等属性。

HTTP 消息头管理好像 HTTP Cookie 管理 ,如果你因为一些原因你不希望在你的测试里为不同的HTTP 请求对象指定不同的消息头,可以被添加到线程组水平。

个用户来给数据库服务器发送2次SQL请求。同样,你也可以让用户运行他们的测试三次。这样总的JDBC请求数量就是(10用户)*(2次请求)*(重复3次)=60。要构建这个测试计划,你将会用到下面的元件:线程组,JDBC请求,图形结果。

这个例子使用了MySQL数据库驱动。要使用这个驱动,它所包涵的.jar文

我们期望在运行这个测试计划的时候有的堆栈跟踪数量。

7.1 添加用户

处理每个JMeter测试计划的第一步就是添加线程组元件。这个线程组会告诉JMeter你想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。下一步来添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。

下一步,你需要修改这些默认的属性。如果你还没有选择线程组元件,则从测试计划树型结构中选择它。这时你应该看到JMeter窗口右边的线程组控制面板了(见图7.1)。

首先给这个线程组起一个有意义的名字。在名称域中, 输入JDBC Users

你将需要一个可用的数据库,数据库表,和表的用户使用权限。在这个例子

接下来,将用户的数量(即threads)增加不10。在下一个the Ramp-Up Period文本域中 , 使用默认值为0。这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period 为5秒,JMeter将会在五秒结束前完成启动所有的用户。所以,如果你有五个用户并且Ramp-Up Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒). JMeter将会立即启动你所有的用户,如果你设置其值为0。

最后,取消标记为"永远"的复选框选择并设置循环次数为2。这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。要让JMeter不断的运行,你要选择"永远"这个复选框。

在大多数的应用程序中,你需要手动来接受你在控制面板中所做的修改。但

元件的名字,树型菜单自动更新当你离开控制面板后。 (例如, 当你选择另

外一个树元件。)

图 7.2 为完整的JDBC Users线程组。

首先选择JDBC用户元件,右键点击,在弹出的菜单中选择Add --> Config Element --> JDBC Connection Configuration。然后,选择这个新的元件来显示它的控制面板(见图7.3)。

设定下面的文本域的值(我们这里假定用一个本地的MySQL数据库名为test)。

?Variable name bound to pool. 这需要能够唯一标识这个配置。

?Database URL: jdbc: mysql://localhost:3306/test

?JDBC Driver class: com.mysql.jdbc.Driver

?Username: guest

?Password: password for guest

剩下的文本域我们可以保留默认的值。

Figure 7.3. JDBC Configuration

再次选择JDBC用户元件。右键点击,并在弹出的菜单中选择Add --> Sampler --> JDBC Request。然后,选择一个新的元件来显示其控制面板(见图7.4)。

Figure 7.4. JDBC Request

在我们这个测试计划中,我们将发送2个JDBC请求。第一个是向Eastman Kodak stock,第二个是向Pfizer stock(很显然需要改变这些例子来适合你的特殊的数据库)。下面的插图文字说明。

JMeter发送请求的次序就是你向树中添加它们的次序。

首先修改下面的属性值勤(见图7.5):

?修改名字Name为"Kodak"

?输入Pool Name:MySQL(在配置元件里面一样)

?输入SQL Query String(数据库查讯字符串)

Figure 7.5. JDBC Request for Eastman Kodak stock

然后,添加第二个JDBC请求并编辑正面的属性(见图7.6):

?修改名字Name为"Pfizer"

?输入SQL Query 语句

你需要添加到你测试计划的最后元件是一个监听器。这个元件责任是储存所有你的JDBC请求结果到文件,并且展示一个可视数据模型。

选择JDBC Users元件,添加一个Graph Results监听器(Add --> Listener --> Graph Results)。

从File菜单选择Save Test Plan(使用最新版本,它不再需要首先选择测试计划元件)。

JMeter允许你保存这个测试计划树或者其中一部分。为了仅保存在测试计

划树上的特殊"分支",选择在树中用来启动"分支"的测试计划元件,然后右

击在菜单项中选择"Save"。或者,选择合适测试计划元件,然后从Edit菜

单选择Save。

7.6 运行测试计划

从Run菜单,选择Run。

如果你测试正在运行,JMeter在右手上方的角落点燃一个绿正方形显示。

当所有测试停止,那个方块变成灰色。即使你选择了"stop",绿光依然会继

续停留,知道所有测试都已经停止。

7.7 JDBC设置

JMeter 使用手册文档

Jmeter使用手册 目录 目录 (1) 一、简介: (3) 二、入门: (4) 2.1 需求 (4) 2.1.1 Java 版本 (4) 2.1.2 操作系统 (4) 2.2 可选 (5) 2.2.1 Java 编译器 (5) 2.2.2 SAX XML解析器 (5) 2.2.3 Email 支持 (5) 2.2.4 SSL 加密 (5) 2.2.5 JDBC 驱动 (5) 2.2.6 Apache SOAP (6) 2.3 安装 (6) 2.3.1 下载最新版本 (6) 2.4 运行JMeter (6)

2.4.2 使用代理服务器 (6) 2.4.3 非用户界面模式(命令行模式) (7) 2.4.4 服务器模式 (7) 2.4.5 通过命令行覆盖属性 (7) 2.4.6日志和错误信息 (8) 2.4.7 命令行选项目录 (8) 2.5 配置JMeter (9) 三、创建一个测试计划 (10) 3.1 添加和删除元件 (10) 3.2 加载和保存元件 (10) 3.3 配置树元件 (10) 3.4 运行一个测试计划 (10) 3.5 作用域规则 (10) 四、测试计划元件 (12) 4.1 后置处理器元件 (12) 4.2 执行顺序 (12) 五、使用Jmeter测试 (13) 5.1创建一个网站测试计划 (13) 5.1.1添加用户 (13) 5.1.2 添加默认HTTP请求属性 (14) 5.1.3 添加Cookie 支持 (15) 5.1.4 添加HTTP 请求 (16) 5.1.5 添加一个监听器到试图储存测试结果 (17) 5.1.6 保存测试计划 (18) 5.1.7 运行测试计划 (18) 5.2创建一个高级web测试计划。 (18) 5.2.1 用URL重写处理用户会话 (18) 5.2.2 使用消息头管理 (18) 5.3创建一个数据库测试计划 (18) 5.3.1 添加用户 (19) 5.3.2 添加JDBC请求 (20) 5.3.3添加一个监听器浏览/保存测试结果 (23) 5.3.4保存测试计划 (24) 5.3.5 运行测试计划 (24) 5.3.6 JDBC设置 (24) 5.4创建一个FTP测试计划 (25) 5.4.1添加用户 (25) 5.4.2添加默认FTP请求配置 (26) 5.4.3添加FTP请求 (28) 5.4.4添加一个监听器浏览/保存测试结果 (29) 5.4.5保存测试计划 (30) 5.4.6运行测试计划 (30) 5.5构建一个Web服务测试计划 (30)

在JMeter中使用变量

在JMeter 压力测试工具中使用变量 来源:作者:日期:2008-06-02 【聚杰网测试工具】在JMeter 压力测试工具中使用变 量Apache JMeter( https://www.doczj.com/doc/2010622707.html,/jmeter/ )是来自Apache Jakarta 项目的一个压力测试工具, 目前版本2.0.3, JMeter 支持HTTP, FTP, SOAP/XML-RPC, JDBC 等多种目标的压力测试(参见下图). 关于JMeter 的一般使用在它的官方主页和其它网站可以搜索到不少文章, 但是很少看到如何使用一些动态内容(比如在HTTP 请求中使用变量作为参数)的文章, 最近因为工作需要, 在这方面做了一些摸索, 总结如下. 0.测试项目概述 为了尝试如何使用变量, 我们首先需要建立一个测试项目, 在这里使用了Buffalo (一种AJAX 技术, 详细资料参见https://www.doczj.com/doc/2010622707.html,/buffalo/index.html ), 或者可以看一下我下载的这个文件(att:在JMeter 压力测试工具中使用变量.Buffalo-info.zip)中的说明和例子. 目前Buffalo 还不是很稳定, 但是建立一个测试环境已经足够了, 而且很方便. 我们建立的这个例子叫做"buffalo-jmeter", 将这个压缩文件(att:在JMeter 压力测试工具中使用变量.buffalo-jmeter.zip)中的buffalo-jmeter.war 文件复制到Tomcat(我用的是Tomcat 5.0.30) 的webapps 目录下, 待Tomcat 自动发布完成之后就可以通过 http://localhost:8080/buffalo-jmeter/ (假设是发布在本地的Tomcat上) 访问测试页面(如下图).

JMeter基本使用方法

JMeter基本使用方法 白羽

1环境搭建 此部分是我借用LoadRunner的Sample程序作为服务器,通过JMeter进行Web性能测试的过程。希望对学习JMeter的朋友有所帮助。

2使用JMeter录制脚本 2.1 建立JMeter测试计划(Test Plan) 打开JMeter,看到左边显示一个空的测试计划,把该测试计划改名为TestPlan1。右键单击该测试计划,选择“添加(Add)”-“线程组(Thread Group)”,添加一个线程组,改名为TestGroup1。如下图所示: 2.2 设置并启动JMeter代理服务器 右键单击在“工作台(Work Bench)”,选择“非测试元件(Non-Test Elements)”中的“Http代理服务器(HTTP Proxy Server)”,如下图所示:

设置该“Http代理服务器”(HTTP Proxy Server),“目标控制器(Target Controller)”选择刚才建立的线程组(Test Plan1>Thread Group1)。 点击“启动”,启动该代理服务器。 2.3 设置IE的代理服务器配置 测试工程师打开IE界面,选择“工具(Tools)”->“Internet选项(Internet Option)”

->“连接(connections)”->“局域网设置(LAN setting)”,如下图所示: 在局域网设置(LAN setting)界面勾上“为LAN使用代理服务器(Use a proxy server for your LAN)”,设置地址(address)为“localhost”,端口(Port)为8080,确定(OK)。 2.4 录制脚本 在浏览器的URL栏输入需要测试的地址,进行操作,操作完毕后,点击JMeter中的“Http代理服务器(HTTP Proxy Server)”的“停止(STOP)”按钮,你将能看到“TestGroup1”下面已经录制了刚才操作的内容。如下图所示:

jmeter性能测试学习_鲁德性能测试

jmeter性能测试学习 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库,FTP 服务器,等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。 JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以 到https://www.doczj.com/doc/2010622707.html,/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 大家可以到通过 https://www.doczj.com/doc/2010622707.html,/dist/jakarta/jmeter/binaries/jakarta-jmeter-1.9.1.zi p下载JMeter的release版本,然后将下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。

Ant+Jmeter自动化接口测试

Ant+Jmeter自动化接口测试 背景 最近在看Jmeter和接口测试,发现了几个问题,基于HTTP协议的接口测试实施起来很简单,但是怎么实施接口测试就是一个难点,而且接口测试如果不做成自动化,就纯粹靠手工执行,那么意义其实并不大。所以稍微看了一下Ant+Jmeter的组合,来实现自动化。 Ant驱动Jmeter 单独使用Jmeter来执行接口测试是非常简单的了,使用Ant来驱动Jmeter就需要些一个构建文件build.xml

jmeter操作实例分析

JMeter操作实例 基本功能介绍 1.常用测试计划元件 主要包含右键的功能模块介绍 1.1 Threads(users) 1.1.1 setUp Thread Group 一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。 说白了就是在启动其他线程前,该线程会首先启动并且完成后才会启动其他线程。

1.1.2 teardown thread group 一种特殊的hread group,用于执行测试后的动作,即所有线程完毕后启动的线程. 1.1.3 thread group(线程组) 这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。 1.2测试片段(Test Fragment) 1.2.1 Test Fragment 测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。 1.3 配置元件 1.3.1 CSV Data Set Config 被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量。其实就是设置变量。

1.Variable Names:变量名列表(逗号分隔),可以指定变量名。 2.Allow quoted data?: CSV文件是否容许值被引用 3.Recycle on EOF: 达到文件结尾后,是否从文件开始循环重新读取(默认True),当到达文件尾时,且Recycle选项设置为True,就会从文件第一行重新开始读取,如果设置为false,而Stop thread on EOF是False,那么当到达文件尾部时所有变量都将被置为,可以通过设置JMeter属性csvdataset.eofstring来改变该值。如果Recycle选项为false,而Stop thread是True,那么到达文件尾部之后,将导致线程被终止。 4.Stop thread on EOF?:达到文件结尾后,线程是否该终止。 5.Sharing mode:如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件名test${__threadNum}.csv,并将“sharing mode"设置为"Current thread"

Jmeter中文手册

JMETER中文手册 1.简介 Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序)。它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java对象,数据库,FTP服务器等等。JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。 另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。 1.1历史 Apache软件组织的Stefano Mazzocchi是JMeter的创始人。他编写它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。我们重新设计JMeter来增强用户界面并增加功能测试的能力。 1.2未来 我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。未来发展的主要目标是在没有影响JMeter的负载测试能力的情况下尽可能使JMeter 成为最实用的回归测试工具。 2.入门 开始使用JMeter最容易的方法是首先下载最新版并且安装它。这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。 如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。JMeter 没有提供任何JDBC驱动。 你可能需要下载的其它软件: ?BeanShell-BeanShell函数和测试元件需要 ?Java Activation Framework-JavaMail需要

JMeter2.2使用手册

SINODATA JMeter2.2安装与使用

目录 一、JMeter2.2安装启动 (1) 二、JMeter2.2使用 (1) 1. 测试脚本录制 (1) 2. 记录结果设置 (6) 3. 运行及记录结果查看 (10) JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是2.2。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、

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

一、JMeter2.2安装启动 下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。现在,请使用%JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面,下面的工作都将在这个可视化界面界面上进行操作。下面的图片是JMeter的可视化界面的屏幕截图。 二、JMeter2.2使用 1. 测试脚本录制

1、选中测试计划单击鼠标右键,在弹出菜单中选择添加->线程组; 2、接下来选中工作台单击鼠标右键,在弹出菜单中选择添加->非测试元件->HTTP代理服务器;

3、在“HTTP 代理服务器”窗口中目标控制器下拉框选择测试计划 > 线程组(表示脚本生成在这 个线程组下),分组下拉框选择每个脚本放入一个新的控制器,避免生成的脚本杂乱且无法组 织;

JMeter中文教程

Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。 另外,JMeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而 Apache软件组织的Stefano Mazzocchi是JMeter的创始人。他写出它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。我们重新设计JMeter来增强用户界面和增加功能测试的 我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。未来发展的主要目标是在没有危机JMeter的负载测试能力的情况下尽可能使JMeter成为最实用的回归测试工具。 开始使用JMeter最容易的方法是首先下载最新版并且安装它。这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI测试时使用的所有文件。 如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。JMeter没有提供任何JDBC驱动。 其它你可能需要下载的软件: ?BeanShell ?Java Activation Framework - JavaMail需要 ?Java Mail - mail 显示 and SOAP 测试需要 ?JMS - JMS 取样器 ?General Java download page 详细参见安装的jar包中的 JMeter Classpath 一章 ? 下一步, 开始使用JMeter并且参见用户手册构建测试计划一章使自己更加熟悉JMeter基础 (例如,添加和删除元素)。 最后, 参见如何构建一个明确类型的测试用例的适合章节。例如,如果你对Web应用测试感兴趣,那就参见构建一个Web测试计划。其他测试计划的细节是JDBC, FTP, and JNDI。 一旦你熟练构建和执行JMeter测试计划, 通过你的测试计划你会观察到给你更多帮助的各种元素的配置(定时器, 监听器, 断言, 和其他)。 JMeter 需要运行环境匹配的最小需求。 2.1.1 Java 版本 JMeter 需要一个完整适当的JVM 1.3或更高的版本. 我们现在尽力与JVM 1.3保持兼容,然而JMeter 在1.4或者更高运行的会最好。 因为JMeter 仅使用Java标准API, 请不要把因为JRE实现版本而无法运行JMeter的bug报告提交。 Java 1.3 不包括 SSL (HTTPS) 支持 - 你将需要下载 JSSE. 同样, 它不会像其他更 高版本的Java那样好的运行。为了更好的结果使用Java1.4或者1.5。

jmeter中文使用手册

Jmeter用户手册 整理人:大傻 2008-12-12 1介绍 Apache JMeter 是100%纯JA V A桌面应用程序,被设计为用于测试CS结构的软件。 同时也可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlets,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。 同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用常规表达式来创建这些assertions。 2开始 2.1安装 下载安装最新的版本,将会包含所有你需要建立和运行Web,FTP,JDBC和JNDI测试的文件。如果你想进行JDBC测试,你需要使用合适的JDBC driver。JMeter中不包含JDBC drivers。其他可能需要下载的软件: Bean Shell Java Activation Framework – needed for Java Mail Java Mail – needed for mail visualiser and SOAP test JMS – for JMS samples General Java Kit 接下来一步,就是浏览“建立测试计划”一章来熟悉JMeter的基本操作,例如:添加和删除元素。最后,浏览适当的章节来学习如何建立不同种类的测试计划。例如,如果你对Web应用程序的测试比较感兴趣,就浏览“建立一个Web测试计划”章节。其他种类的测试计划建立的章节包括:JDBC,FTP和JNDI。 一旦你熟悉了建立和运行JMeter测试计划,就可以开始熟悉各种配置参数,例如:timers,listeners,assertions和其他的参数,来帮助你更好地控制你地测试计划。 2.2系统要求 JMeter 1.8 以上的版本需要JDK1.4以上的版本支持运行。JMeter可以运行在如下操作系统上:Unix,Windows和Open VMS。 l安装JDK: l JA V A的环境变量设置 1.使用鼠标右击“我的电脑”->属性->高级->环境变量 2.系统变量->新建->变量名:JA V A_HOME 变量值:d:\jdk 3.系统变量->编辑->变量名:Path 在变量值的最前面加上:%JA V A_HOME%\bin; 4.系统变量->新建->变量名:CLASSPATH 变量值:。; l安装Tomcat

JMeter技巧(pdf版本)

JMeter是一个流行的用于负载测试的开源工具,具有许多有用的功能元件,如线程组(threadgroup),定时器(timer),和HTTP取样(sampler)元件。本文是对JMeter用户手册的补充,而且提供了关于使用Jmeter的一些模拟元件开发质量测试脚本的指导。 本文同时也讨论了一项重要的内容:在指定了精确的响应时间要求后,如何来校验测试结果,特别是在采用了置信区间分析这种严格的统计方式的情况下应如何操作。请注意,我假定本文的读者们了解关于Jmeter的基础知识,本文的例子基于Jmeter2.0.3版。 确定一个线程组的ramp-upperiod(Determine) Jmeter脚本的第一个要素是线程组(ThreadGroup),因此首先让我们来回顾一下。正如图一所示,线程组需要设置以下参数: <1>线程数量。 <2>ramp-upperiod。 <3>运行测试的次数。 <4>启动时间:立即或者预定的时间,如果是后者,线程组所包含的元素也要指定这个起止时间。

图1 JMeter线程组(JMeterThreadGroup) 每个线程均独立运行测试计划。因此,线程组常用来模拟并发用户访问。如果客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter 控制台来远程控制多个Jmeter引擎完成测试。 参数ramp-upperiod用于告知JMeter要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-upperiod,也就是说 ramp-upperiod为零,JMeter将立即建立所有线程,假设ramp-upperiod设置成T秒,全部线程数设置成N个,JMeter将每隔T/N秒建立一个线程。 线程组的大部分参数是不言自明的,只有ramp-upperiod有些难以理解,因为如何设置适当的值并不容易。首先,如果要使用大量线程的话,ramp-upperiod一般不要设置成零。因为如果设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求,这样一来就很容易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值,可以通过Jmeter的聚合报告监听器看到这种现象。 这种异常不是我们需要的。因此,确定一个合理的ramp-upperiod的规则就是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。 其次,在测试计划(testplan)中增加一个聚合报告监听器,如图2所示,其中包含了所有独立的访问请求(一个samplers)的平均点击率。第一次取样的点击率(如http请求)与ramp-upperiod和线程数量密切相关。通过调整ramp-upperiod可以使首次取样的奠基率接近平均取样的点击率。

JMeter学习概要

JMeter工具 1.Jmeter的基本介绍 官网:https://www.doczj.com/doc/2010622707.html,/ JMeter是Apache组织开发的基于Java的压力测试工具,开源的性能测试工具。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。 Jmeter插件:https://www.doczj.com/doc/2010622707.html,/ Jmeter不需要安装,直接从网站上下载二进制包,解压到任意目录下即可使用,可以在Windows、Linux和Mac等平台上运行,在Windows上需要执行bin目录下的jmeter.bat;在Linux平台上需要执行bin目录下的jmeter.sh。 1.1.断言 断言就类似LoadRunner中的检查点。对上一个请求返回的信息,做字符串、数据包大小、HTML、XML、图片等做判断,确保返回的信息的准确性。 在每个http请求下,添加响应断言,如:登录做断言,就是登录后的界面中包含的字符、或数据等(已登录) 1.2.配置元件 配置元件的作用:用于提供对静态数据配置的支持。 1)HTTP Cookie 管理器:负责管理整个测试过程中使用的cookie,它不需要设置任何属性。

2)CSV Data Set config 可以将本地数据文件形成数据池,参数化设置。1.3.定时器 定时器用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。 1)固定定时器:设置线程延迟XX毫秒,延迟3秒在执行登录操作 作用是:调整每个请求的频率。 1.4.监听器 监听器的作用:以各种不同方式收集测试结果 1)jp@gc - Response Times Over Time:响应时间

完整的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官方网站:https://www.doczj.com/doc/2010622707.html,/download_jmeter.cgi下载)并且安装它。这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。 如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。JMeter 没有提供任何JDBC驱动。 你可能需要下载的其它软件: ?BeanShell-BeanShell函数和测试元件需要 ?Java Activation Framework-JavaMail需要 ?Java Mail-Mail可视化,Mail Reader和WebService(SOAP)取样器需要

Jmeter中文介绍材料(完全版)

安装JDK: JAVA的环境变量设置 使用鼠标右击“我的电脑”->属性->高级->环境变量 系统变量->新建->变量名:JAVA_HOME 变量值:d:\jdk 系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin; 系统变量->新建->变量名:CLASSPATH 变量值:.; 安装Tomcat CATALINA_HOME=d: \tomcat User Manual 用户手册 1 介绍 Apache JMeter 是100%纯JAVA桌面应用程序, 被设计为用于测试CS结构的软件. 同时也可以用来测试静态和动态资源的性能, 例如:静态文件, Java Servlets, CGI Scripts, Java Object, 数据库和FTP服务器等等. JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能. 同时, JMeter可以帮助你对你的应用程序进行回归测试. 通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值. 为了更高的适应性, JMeter允许你使用常规表达式来创建这些assertions. 2 开始 2.1 安装 下载安装最新的版本, 将会包含所有你需要建立和运行Web, FTP, JDBC和JNDI测试的文件. 如果你想进行JDBC测试, 你需要使用合适的JDBC driver. JMeter中不包含JDBC drivers. 其他可能需要下载的软件: ●Bean Shell ●Java Activation Framework – needed for Java Mail ●Java Mail – needed for mail visualiser and SOAP test ●JMS – for JMS samples ●General Java Kit 接下来一步, 就是浏览”建立测试计划”一章来熟悉JMeter的基本操作, 例如:添加和删除元素. 最后,浏览适当的章节来学习如何建立不同种类的测试计划. 例如, 如果你对Web 应用程序的测试比较感兴趣, 就浏览”建立一个Web测试计划”章节. 其他种类的测试计划建立的章节包括:JDBC, FTP和JNDI. 一旦你熟悉了建立和运行JMeter测试计划, 就可以开始熟悉各种配置参数, 例如: timers, listeners, assertions和其他的参数, 来帮助你更好地控制你地测试计划.

jmeter常用功能(实战详解)

环境准备 1. 首先需要安装JDK,具体参照安装配置JDK 2. jmeter软件最新下载地址,本例内容基于 jmeter 5.1.1 版本开展 3. 修改jmeter.properties文件配置:#sampleresult.default.encoding=ISO-8859-1 改为 sampleresult.default.encoding=UTF-8 4. Http接口信息如下(本篇文章所有例子都是基于此接口信息,可用mock模拟此接口) POST: URL:http://127.0.0.1:9999/postts Content‐Type: application/json 入参: { "usename": "test", "password" : "test" } 返回值:"success":"true" GET: URL:http://127.0.0.1:9999/geturl 返回值:"success": "get" 一、常用功能图

二、功能配置 2.1 jmeter修改为中文界面 操作步骤: 1. 临时修改:jmeter界面>>Options>>Choose Language>>Chinese(Simplified) 2. 永久修改:修改jmeter.properties文件配置:#language=en 改为language=zh_CN 2.2 配置元件 2.2.1 Http信息头管理 操作步骤: 1. 选择测试计划>>右键>>添加>>配置元件>>Http信息头管理 2. 输入名称 Content-Type 值输入 application/json 注:一般json形式的传参方式需要按此配置信息头

jmeter试题及答案

一、选择题(包含单选多远,每题6分,共60分) 1.Apache Jmeter是Apache组织开发的基于Java的压力测试工具,它被用 于(ABC)。 A.Web应用测试 B. 静、动态资源测试 C. 功能、回归测试 D. 扫描测试 2.Ramp-Up Period代表在多长时间内完成测试,如果开了2个线程,而 Ramp-Up Period为3,则每个线程的间隔为(B)。 A.2s B. 1.5s C.1s D.3s 3.所有的测试任务都是(D),即任何测试任务的类别,比如HTTP请求、JDBC 请求、FTP请求。 A.Throught B. Label C. Ramp-Up Period D. Sampler 4.对于每个HTTP请求,都可以通过(B)查看HTTP请求和HTTP响应。 A.图形结果 B.查看结果树 C.聚合报告 D.汇总报告 5.Jmeter中HTTP请求参数化,需要对请求添加(C)。 A.变量 B.全局参数 C.用户参数 D.局部参数 6.JMeter中传递JSON格式的参数时,需要在(A)中添加信息头。 A.HTTP信息头管理器 B.HTTP Cookie管理器 C.HTTP缓存管理器 D.HTTP请求默认值 7.Jmeter在进行web端性能测试时,通常可以借助(D)来录制脚本,并对脚 本参数化后进行测试。 A.bodboy B.LoadRunner C.PostMan D. badboy 8.对数据库进行JDBC连接测试时,针对Oracle数据库,JDBC Driver class 应为以下哪种(A)。 A. oracle.jdbc.driver.OracleDriver B. com.mysql.jdbc.Driver C. com.microsoft.sqlserver.jdbc.SQLServerDriver D. org.Oracle.Driver 9.传递的参数值是常量,如果传递2个变量,多个变量使用”,”分隔。这里 假如你有数据是int类型的,也要在Parameter types 那里标示为(C)类型,否则无法运行。 A. Text B. Timestamp C. varchar D. char 10. 使用插件来监控被测服务器的各项资源情况,jp@gc - PerfMon Metrics Collector中能监测的资源有(ABCD)。 A.CPU B.Memory C.TCP D.Disk I/O

JMeter使用说明

一、简介 JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库,FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。 二、术语 1.线程组 测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。 2.取样器(Sampler) 可以认为所有的测试任务都由取样器承担,有很种,如:HTTP 请求。 3.监听器 是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。 三、使用 附注:以下步骤是详细步骤(可以跳过)。这里已经生成测试计划文件,导入即可。 若出现有问题,根据下面步骤重新建立。

1、JDK环境配置 2、解压apache-jmeter-2.6.zip,打开\apache-jmeter-2.6\bin下的jmeter.bat 3、建立线程组:右键测试计划->添加->Threads->线程组

4、建立成功后 注意: 上图,若建立5个线程,循环5次,在10秒中创建完,即每个线程相隔5/10=0.5秒。 5、添加取样器:右击线程组->添加->Sampl er->HTTP 请求

附注:一些有用的监视器

7、插件的使用(PerfMon插件) JMeter本身对性能指标信息是不做收集的,PerfMon是用来收集被压服务器的各种性能指标,例如:CPU, Memory, Swap, Disks I/O and Networks I/O …… 7.1、JMeterPlugins-1.1.0 解压JMeterPlugins-1.1.0 将JMeterPlugins.jar放到\apache-jmeter-2.6\apache-jmeter-2.6\lib\ext下 7.2、serverAgent 如果你是windows环境:进入serverAgent目录,直接双击startAgent.bat,启动agent 注:agent启动默认监听的端口是4444

Jmeter性能测试中文手册

JMeter使用教程 付增斌2006-3-17 第一章:用JMeter 测量Oracle数据库性能 一、简介 在当今快节奏的世界中,只是完成工作是不够的。完成工作,并且要以最简便的方式完成工作,这才是关键。数据库世界也不能幸免这种对性能的渴求。客户希望能够迅速而有效地保存和提取其数据。在许多场合设置中,Oracle都拥有领先的性能跟踪记录,领先于众多的数据库竞争对手。不幸的是,由于数据库或者配置中的某些设计缺陷,许多Oracle用户可能无法获得Oracle性能的所有益处。有许多关于Oracle性能调整的文章和论文,Oracle中也有许多能够进行深入分析的好工具。我将在这篇文章中介绍一个工具——Apache的JMeter,这是另外一个可以添加到您的工具箱中的工具,它可以帮助您了解数据库的性能,还能帮助您进行模拟测试。 二、关于Apache JMeter JMeter是Apache Jakarta项目麾下的一个产品。JMeter是基于Java TM Swing 的桌面应用程序,是为进行负载测试、测量系统性能而设计的。最初,它是为测试Web应用程序而设计的。但是它后来进行了扩展,现在您已经可以用它来测试关系数据库了(通过 JDBC TM)。在JMeter的官方站点 https://www.doczj.com/doc/2010622707.html,/jmeter/ 上,您可以了解关于它的更多内容。 利用 JMeter,您可以确保您的数据库可以满足某些指标(例如能够处理一定数量的并发用户)。模拟测试是成功项目的关键。JMeter可以针对Oracle模拟出繁重的负载。这可以通过JMeter的多线程框架来实现。JMeter的多线程框架允许大量线程进行并发采样。正如您将在本文后面看到的,JMeter能为您提供图形化的反馈。

基于Jmeter的自动化性能测试方法及系统与设计方案

本技术提供了一种基于Jmeter的自动化性能测试方法及系统,所述方法采用在Jmeter测试工具中设置并发量、端口号、IP地址及循环数,运行Jmeter得到测试结果,同时编写统计结果脚本,分析Jmeter测试结果,获得最终的性能测试结果;同时本技术还通过编写Shell脚本将并发量、端口号、IP地址、循环数及Jmeter测试结果和保存目录进行参数化,来实现多个接口,多组并发,多个不同IP地址或端口的测试;本技术无需多次输入执行命令,无需多次重写脚本,无需将测试结果拷贝到安装了jmeter GUI的电脑中,可节约大量时间,提升工作效率,提升工作准确率。 权利要求书 1.一种基于Jmeter的自动化性能测试方法,其特征在于,压测机服务器、API服务器及数据库

均在由代理服务器提供网络连接的同一个内网中,所述压测机服务器与API服务器通过API 接口进行连接,所述数据库提供API接口所需要调用的数据,压测机服务器上加载Jmeter性能测试工具,所述方法包含以下步骤: S1:启动Jmeter性能测试工具,设置压测机服务器发送请求的并发数、代理服务器的IP地址及端口号及每个请求的发送循环数; S2:设置好步骤S1中的参数后运行Jmeter进行测试,将Jmeter测试结果保存在Jtl文件中; S3:分析Jtl文件,编写统计结果代码,形成统计脚本,运行统计脚本,得到最终的统计结果,形成最终性能测试报告。 2.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,还包括编写Shell 脚本来将步骤S1中的压测机服务器发送请求的并发数、代理服务器的IP地址及端口号、每个请求的发送循环数及Jmeter测试结果保存目录进行设置和参数化,将所述Shell脚本导入Jmeter并运行,以执行多个测试接口,多组压测机并发,多个不同IP地址或端口的测试。 3.根据权利要求2所述一种基于Jmeter的自动化性能测试方法,其特征在于,所述Shell脚本通过C或Python编写。 4.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,根据步骤S3中所述Jmeter测试结果:第一列数据为时间戳,第二列代表响应时间,根据公式:每秒请求数=(总请求数/总运行时间)得到每秒请求数。 5.根据权利要求1所述一种基于Jmeter的自动化性能测试方法,其特征在于,步骤S3中得到的最终性能测试结果包含:平均响应时间、响应时间中值、最小响应时间、最大响应时间、90%响应时间、95%响应时间、每秒查询速度、每秒从服务器接收的数据量、每秒从服务器发出的数据量、吞吐量及错误率。 6.一种基于Jmeter的自动化性能测试系统,其特征在于,采用权利要求1-5所述任意一项基于Jmeter的自动化性能测试方法来实现Jmeter的自动化性能测试。

相关主题
文本预览
相关文档 最新文档