Badboy自动化测试工具 导出脚本用于JMeter性能测试

本节使用在拉手搜索KTV团购的案例,讲述Badboy导出脚本用于JMeter性能测试,以及JMeter的简单使用。

一 录制脚本(必须在Request模式下)

1. 输入http://Wuxi.lashou.com

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)。

  • JMeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html

    如果你想执行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. 测试结果展示在聚合报告中

Badboy自动化测试工具 导出脚本用于JMeter性能测试_第1张图片

  • 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:每秒从服务器端接收到的数据量,请求从客户端发出给服务器端之后,服务器会返回给客户端经过处理的结果,这个数据量返回/时间,就是每秒从服务器端接收到的数据量。


1. 在Jmeter中打开上节课(10)Badboy导出的在拉手网查询KTV的脚本Lashou_Search.jmx.

2. 右击Lashou节点,Add->Listener->Aggregate Graph & Graph Results

3. 对图像报表进行配置(配置省略)

4. 点击Search节点,线程组配置界面展开:

5. 在线程组里设置负载信息,即线程属性,选中Start next thread loop , 线程数: 10 , Ramp-up period(inseconds): 0, 循环次数: 1

  

说明1. :向测试计划中增加相关负载设置是Jmeter需要模拟十个请求者,每个请求者在测试过程中并发请求,并且连续请求2次。

      线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。假如我的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是 10/5,也就是2秒。如果设置为0就代表并发请求。Loop Count代表请求发生的重复次数,如果选择后面的forever(默认),那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数。

  说明2:调度器配置

            启动时间:测试计划什么时候启动,启动延迟会覆盖它。

            结束时间:测试计划什么时候结束,持续时间会覆盖它。

            持续时间:测试计划持续多长时间,会覆盖结束时间。

            启动延迟:测试计划延迟多长时间启动,会覆盖启动时间。

 

6. 点击Aggregate Graph, 点击运行后观察运行结果

7. 观察并行测试的结果

 

8. 再次运行一次10人查询并发测试,我们可以观察到Result界面下记录了所有运行的报告趋势,我们可以指定一个文件路径和输出文件名,保存这个报告,代码优化或性能改进后,我们再次调用此报告,对比改进效果。

 

 


你可能感兴趣的:(Jmeter)