JMeter介绍

1.JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html

JMeter的特性:

1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

2. 完全的可移植性和100% 纯Java。
3. 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
4. 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
5. 精心的GUI设计允许快速操作和更精确的计时。
6. 缓存和离线分析/回放测试结果。
7. 高可扩展性:
8. 可链接的取样器允许无限制的测试能力。
9. 各种负载统计表和可链接的计时器可供选择。
10. 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
11. 具有提供动态输入到测试的功能(包括Javascrīpt)。
12. 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。

脚本录制

1.利用BadBoy进行脚本录制 ;
2.利用JMeter的代理服务器功能进行脚本录制 ;
利用BadBoy录制JMeter脚本(1)
1.通过Badboy的官方网站(http://www.badboy.com.au)下载Badboy的最新版本;
2.安装Badboy。安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe 文件,直接双击启动Badboy
3.启动Badboy,你可以看到下面的界面。
利用BadBoy录制JMeter脚本(2)
a.在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以http://www.baidu.com 为例 。
b.点击 开始录制 按钮(图中蓝色圆圈标注的部分)开始录制 。
c.开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中(图中黄色方框标注的部分)——在这个试验中,我们在baidu的搜索引擎中输入 JMeter 进行搜索。不过录制下来的脚本并不是一行行的代码,而是一个个Web对象——这有点像LoadRunner的VuGen中的Tree View视图;
d.录制完成后,点击工具栏中的“停止录制”按钮(图中紫色方框标注的部分),完成脚本的录制;
利用BadBoy录制JMeter脚本(3)
a.选择“File-> Export to JMeter”菜单,填写文件名“baidu.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本;
b.启动JMeter并打开刚刚生成的测试脚本,就可以用JMeter进行测试了。
利用JMeter的代理服务器功能进行脚本录制(2)

a.在测试计划中添加线程组,在线程组中添加逻辑控制器-录制控制器。
b.在工作台中添加非测试元件-HTTP代理服务器。
c.在工作台中添加非测试元件-HTTP代理服务器。
d.目标控制器选择:测试计划>线程组;
e.分组选择:每个组放入一个新的控制器。
利用JMeter的代理服务器功能进行脚本录制(2)


a.在HTTP代理服务器中添加定时器-高斯随机定时器(用于告知Jmeter来在其生成的HTTP请求中自动的增加一个定时器)。定时器将会使相应的的取样器被延迟。 延时的规则是,在上一个访问请求被响应并延时了指定的时间后,下一个被定时器影响的取样访问请求才会被发送出去。

b.如果在代理服务器元件里使用了高斯随机定时器,就应该在其中的固定延迟偏移(Constant Delay Offset)设置项里添上${T}(用于自动引用纪录的延迟时间)。
利用JMeter的代理服务器功能进行脚本录制(3)

a.代理服务器配置好以后,点击启动,代理服务器就会开始记录所接受的HTTP 访问请求。
b.打开浏览器,打开Internet选项,将局域网(LAN)设置中的代理服务器设为:localhost,端口为在代理服务器中设的端口:8080;
 

运行Jmeter进行测试(1)

a.脚本录制完毕后,就可以运行JMeter来进行我们的测试了。
c.下载JMeter的最新版本,将zip文件解压缩到D:/JMeter,运行D:/JMeter/bin下的jmeter.bat即可。
运行Jmeter进行测试(2)
 
a.打开JMeter会有一个默认的测试计划,点击文件-打开,选中录制的脚本文件如:WebXSample_addUser.jmx,打开脚本进行测试。
b.在线程组上添加监听器-聚合报告(用于分析测试结果)后,点击运行-启动,开始测试,测试完毕后在聚合报告中就可以看到测试结果。一个简单的测试计划就完成了。
运行Jmeter进行测试(3 测试结果 )
运行Jmeter进行测试(4)-聚合报告详解
vLabel:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值
v#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
vAverage:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
vMedian:中位数,也就是 50 %用户的响应时间
v90% Line: 90 %用户的响应时间
vMin:最小响应时间
vMax:最大响应时间
vError%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
vThroughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
vKB/Sec:每秒从服务器端接收到的数据量

jmeter简单录制的更多相关文章

  1. jmeter简单录制脚本

    1 创建HTTP请求默认值. --添加线程组:右击"测试计划"→添加→Threads(Users)→线程组,建议重命名线程组增强可读性. --添加HTTH请求默认值:右击" ...

  2. Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

  3. Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

  4. Jmeter之录制脚本(二)

    上一节已经已经介绍过Jmeter的安装,对于web测试的话,经常会用到一些脚本去执行某些功能,也就是所谓的半自动化测试, 对于不懂代码的童鞋来说,脚本是一个很头疼的概念,badboy的录制是一个对于刚 ...

  5. jmeter简单的使用

    jmeter简单的使用 一般步骤是:在测试计划下面新建一个线程组,线程组下面添加请求,请求中添加结果和断言 1.打开页面: 2.添加线程组: 3.线程组中设置参数: 很重要的几个参数:线程数.ramp ...

  6. 【转】JMeter代理录制脚本

    JMeter代理录制脚本 使用JMeter代理录制脚本的过程如下: 1.启动JMeter,在测试计划中添加“线程组”. 2.在“线程组”中添加“HTTP请求默认值”,参数设定如下: 3.在“”中添加“ ...

  7. Jmeter脚本录制--HTTP代理服务器

    Jmeter脚本录制功能依赖第三方工具Badboy,所以在安装了Jmeter之后,还需要再安装一个工具. Badboy本身自带浏览器,相关操作只能在Badboy上进行操作,偶尔可能会遇到浏览器兼容的问 ...

  8. android-sdk-window的环境搭建以及appium简单录制脚本的使用

    大家好,今天给大家带来的是appium的环境搭建以及简单的录制脚本,自学的过程中入了不少坑,下面给大家开始分享! 使用Appium录制脚本必备三大金刚:Appium-desktop(至于为什么用这个, ...

  9. Jmeter教程 录制脚本

    Jmeter 录制脚本 Jmeter中有2种方法可以录制脚本.  不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包 ...

随机推荐

  1. Hibernate学习笔记(三)—— Hibernate的事务控制

    Hibernate是对JDBC的轻量级封装,其主要功能是操作数据库.在操作数据库过程中,经常会遇到事务处理的问题,接下来就来介绍Hibernate中的事务管理. 在学习Hibernate中的事务处理之 ...

  2. DDOS压力测试

    分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒 ...

  3. GTF/GFF文件的差异及其相互转换

    我们在做生物分析的时候,经常会碰到GFF格式的文件以及GTF格式的注释文件.他们有着相似的名字,甚至连内容都极为相似~那么,他们究竟差在哪里呢? GFF全称为general feature forma ...

  4. Windows 环境 ABP前端运行 ng test 无法执行

    Command: ng test Error Information: Schema validation failed with the following errors: Data path &q ...

  5. HDU 6357.Hills And Valleys-动态规划(区间翻转l,r找最长非递减子序列)

    题意:给一串由n个数字组成的字符串,选择其中一个区间进行翻转,要求翻转后该字符串的最长非降子序列长度最长,输出这个最长非降子序列的长度以及翻转的区间的左右端点 #include<bits/std ...

  6. Qt随笔 - QSettings

    QSettings类提供了持久的跨平台应用程序设置. 嗯,一句话概括QSettings-- 创建 来看一下原型: QSettings::QSettings(const QString &org ...

  7. 页面加载时的div动画

    用@keyframes(动画),实现页面加载时的div动画(不要用js控制,因为当页面加载的时候,js还不一定可以使用) 可以在https://daneden.github.io/animate.cs ...

  8. [转] node.js如何获取时间戳与时间差

    [From] http://www.jb51.net/article/89767.htm Nodejs中获取时间戳的方法有很多种,例如: 1.new Date().getTime()  2.Date. ...

  9. 经常谈到Oracle的权限,你究竟知道多少

    作者: 三十而立 时间:2009年10月28日 9:41:15 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者"inthirties(三十而立)" 接着上面谈到的 ...

  10. Mybatis 问题梳理

    问题一:There is no getter for property ... 接口 **Mapper.java 中执行方法: public List<E> listOption(Stri ...