本节使用在拉手搜索KTV团购的案例,讲述Badboy导出脚本用于JMeter性能测试,以及JMeter的简单使用。
一 录制脚本(必须在Request模式下)
2. 点击前进->,启动录制
3. 输入KTV,点击搜索
4. 点击Record,录制结束
5.回放脚本,以确定脚本录制无误
6.点击File—》Export to JMeter
7. 脚本命名为“Lashou_Search”.jmx, 点击Save,脚本导出成功。
Badboy与jmeter使用注意事项:
1 导出jmeter脚本的时候,脚本不被导出,因为jmeter无内嵌浏览器,jscrīpt元素无法执行.
2 data sources不被导出.
二 JMeter简介
- JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
- JMeter 的特性:
a) 能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。
b) 完全的可移植性和100%纯Java。
c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
d) 完全多线程框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
e) 精心的GUI设计允许快速操作和更精确的计时。
f) 缓存和离线分析/回放测试结果。
g) 高可扩展性:
h) 可链接的取样器允许无限制的测试能力。
i) 各种负载统计表和可链接的计时器可供选择。
j) 数据分析和可视化插件提供了很好的可扩展性以及以及个性化。
k) 具有提供动态输入到测试的功能(包括Javascrīpt)。
l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。JMeter没有提供任何JDBC驱动。其它你可能需要下载的软件:
· BeanShell
· Java Activation Framework - JavaMail需要
· Java Mail - mail 显示 and SOAP 测试需要
· JMS - JMS 取样器
· General Java download page
- JMeter启动
1. 配置安装JDK1.4 或更高版本。并设置JAVA_HOME环境变量。下载地址:http://www.oracle.com/technetwork/indexes/downloads/index.html?ssSourceSiteId=ocomen
2. 解压缩到D盘下,点击bin下的Jmeter.bat
3. 界面打开成功
4. 为方便对界面的熟悉度,可以将语言改为中文
三. 运行Lashou_Search脚本测试性能
1. 打开JMeter会有一个默认的测试计划,点击文件-打开,选中录制的脚本文件如:Lashou_Search.jmx,
2. 命名测试计划为Lashou,同时可以自定义描述,
3. 重命名线程组为Search,点击保存
4. 给Search线程组上添加监听器-聚合报告(用于分析测试结果)
5. 命名为“Search_Aggregate report”,点击保存
6.点击运行-启动或工具栏上的启动按钮,开始测试
7. 测试结果展示在聚合报告中
- Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值
- #Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
- Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间。也就是说当一个request响应发送到服务端时服务器响应请求的时间是多少,然后将所有的时间平均的相应时间就是Average。
- Median:中位数,也就是 50 %用户的响应时间
- 90% Line: 90 %用户的响应时间
- Min:最小响应时间
- Max:最大响应时间
- Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
- Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
- KB/Sec:每秒从服务器端接收到的数据量,请求从客户端发出给服务器端之后,服务器会返回给客户端经过处理的结果,这个数据量返回/时间,就是每秒从服务器端接收到的数据量。
End!
附:Jmeter 使用之常见问题,转自 http://www.51testing.com/?uid-128005-action-viewspace-itemid-84094
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/1131119如需转载请自行联系原作者
叶子文文