louis_lu 发表于 2010-3-30 17:05:05

JMeter研究笔记

在Apache官网看了半天,重点研究了下JMeter几个我常用几个方面的性能测试。
也放到这给有兴趣的TX参考一下,有错欢迎提出。谢谢

下面的记录中包含了一些我使用的例子的信息,以及Apache JMeter官网的例子讲解。
当然了,JMeter的能覆盖的不只我研究的这些,有空再补上。

JMeter Test Plan组成及设置详解:

Thread Group:
Add --> ThreadGroup
Number of threads(users), 该属性模拟虚拟用户数。
Ramp-Up Period(in seconds), 启动所有用户的时间。eg:设置Ramp-Up period为5秒,则JMeter将在5秒内启动所有的用户。因此,当用户数为5时,因此启动每个用户的时间间隔应为:5 users / 5 seconds = 1 user per second. 如果该属性设为0,则JMeter将立即启动所有用户。
Loop Count,即重复测试的次数。 如果设为1, 则JMeter仅运行测试1次。如果需要重复运行Test Plan,则需选择“Forever”选项。

HTTP Request Defaults:
Add --> Config Element --> HTTP Request Defaults
设置HTTP requests的默认设置,HTTP Request功能将会使用这里设置的默认项。
Name, 该项通常保留其默认值,
Web Server's Server Name or IP,这里设定的Server Name或者IP是Test Plan中所有HTTP请求的目标。即所有的HTTP请求都会被送往这里设定的Web Server。

HTTP Cookie Manager:
Add --> Config Element --> HTTP Cookie Manager

HTTP Requests:
提示:HTTP Requests的执行顺序以在Test Plan树种显示的为准。
Add --> Sampler --> HTTP Request
设置HTTP Request, 修改Name, 设置Path,若访问的是主页,通常设为"/". 其他则不用修改,因为Server Name等已在HTTP Request Defaults中设置完毕。
如果需要添加其他HTTP Request访问其他页面,则需再次添加HTTP Request,并修改Name以及Path。以jakrata为例:访问Guidelines页面,添加HTTP Request后,修改Name为:"Project Guidelines", Path设置为:"/site/guidelines.html".
测试其他应用时,以此为参考。


高级Test Plan的创建
用户session以及URL重写的处理:
URL Re-writing Modifier被添加在哪个控件下,则URL Re-writing只影响该控件下的requests.

HTTP Header Manager
HTTP Header Manager提供让用户定制JMeter发送的HTTP requests header的功能。
HTTP Request Header包含的属性有:"User-Agent","Pragma","Referer",etc.
HTTP Header Manager跟HTTP Cookie Manager一样,通常都是添加在Thread Group下.


创建一个数据库Test Plan:
1.添加一个Thread Group,命名为:JDBC Users, 添加虚拟用户数:10,Ramp-Up period: 0, 循环次数:3
2.添加JDBC request, Add --> Config Element --> JDBC Connection Configuration,
Variable Name Bound to Pool, 通常用于JDBC Sampler 并唯一标示被使用的配置。这里不做改动,默认留空即可。
Connection Pool Configuration, 不做改动,默认
Connection Validation by Pool, 不做改动,默认
Database Connection Configuration下设置,DB URL,如:jdbc:mysql://localhost:3306/test
JDBC Driver class, 如:com.mysql.jdbc.Driver, 用户名,密码即可。
JMeter将使用JDBC connection 控制面板中的信息创建数据库连接池。几个不同的JDBC连接都可以被使用,但是他们必须有唯一的名称。每个JDBC Request对应一个JDBC配置池。
3.添加JDBC Request,Add --> Sampler --> JDBC Request,修改Name,Pool Name改为:MySQL(跟配置元素一样),输入SQL查询语句。可以根据需要再次添加JDBC Request,与上步骤同。


FTP Test Plan:
http://jakarta.apache.org/jmeter/usermanual/build-ftp-test-plan.html
1. Add --> ThreadGroup. 同时设置用户数,启动用户时间间隔总数以及循环次数。
2. Add --> Config Element --> FTP Request Defaults,Name通常保留不做改动。Server Name/IP为所有FTP请求的目标。
3. Add --> Sampler --> FTP Request,修改Name,Server/IP保留不做修改,因为在FTP Request Defaults里已经设置。File to Retrieve From Server,填写文件再ftp服务器上的路径,如:pub/msql/java/tutorial.txt,Login下填写相应的用户名密码。

archonwang 发表于 2010-3-31 11:14:26

感谢。对于JMeter这类开源工具,使用得较多。

小贝流浪记 发表于 2010-3-31 16:33:55

jmere可以用来测试ruby语言的 web网站吗?   看了资料 知道jmeter 是基于java的   。

kuangquanshui 发表于 2010-4-1 09:26:23

:victory:

kuangquanshui 发表于 2010-4-1 09:26:35

:victory:

changwl 发表于 2010-5-12 18:02:07

:victory:

PrefTest 发表于 2010-5-22 21:27:36

原帖由 小贝流浪记 于 2010-3-31 16:33 发表 http://bbs.51testing.com/images/common/back.gif
jmere可以用来测试ruby语言的 web网站吗?   看了资料 知道jmeter 是基于java的   。
跟系统的开发语言没有太多关系,主要是跟系统跑的协议有关
页: [1]
查看完整版本: JMeter研究笔记