当前位置:文档之家› JMeter学习概要

JMeter学习概要

JMeter工具1.Jmeter的基本介绍官网:/JMeter是Apache组织开发的基于Java的压力测试工具,开源的性能测试工具。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

Jmeter插件:/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:响应时间这个图表将显示为每个采样器的平均响应时间,以毫秒为单位,正常情况如下:2)jp@gc - Hits per Second:服务器每秒点击率3)jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括cpu,memory内存,network I/O网络I/O,Disks I/O磁盘I/O等。

4)聚合报告Label:说明是请求类型,如Http,FTP等请求。

Samplers:请求所发的数量,总共发送到服务器的样本数目;Average:平均响应时间,做压力负载等测试的一个参考依据,是否在可接受的范围内。

总运行时间除以发送到服务器的请求数;Median:图形报表中的中间值,代表时间的数字,有一半的服务器响应时间低于该值,而另一半高于该值;即50 %用户的响应时间90%line:是指90%请求的响应时间比所得数值还要小(90%用户的响应时间)Min:最小的响应时间;Max:最大的响应时间;Error%:请求的错误百分比;Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求;QPS 如下:退出平均每分钟31.6次;KB/sec:是每秒钟请求的字节数。

5)用表格查看结果各属性如下:Sample:每个请求的序号;Start Time:每个请求的开始时间;Thread Time:每个线程的名称;Label:Http请求名称;Sample Time:每个请求所花时间,单位为毫秒;Status:请求状态,如果为勾表示成功,如果为叉表示失败;Bytes:请求的字节数;样本数目:上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。

平均:每个线程请求的平均时间;最新样本:表示服务器响应最后一个请求的时间;偏离:服务器响应时间的变化,离散程度测量值的带下,或者说数据的分布。

值越小越好,一般几百。

6)察看结果树,一般作为调试用,到真正需要执行查看图形分析时,把它禁止掉。

7)jp@gc - Uploader:上传1.5.Sampler1)JSR223 Sampler 当前使用是获取并打印查看正则表达式提取的数值,如:可通过查看打印日志:选项--》Log Viewer2.简单的JMeter使用操作如下:第一步:添加“线程组”,设置线程组参数;( 如果多于1个线程组,执行时是并行执行的)平均点击率(如何计算),并用总线程除点击率来计算初始的ramp-up period。

例如,假设线程数为100,估计的点击率为每秒10次,那么估计的理想ramp-up period 就是100/10 = 10 秒。

那么应怎样来提出一个合理的估算点击率呢?没有什么好办法,必须通过运行一次测试脚本来获得。

(若ramp-up period 为零,JMeter 将立即建立所有线程)第二步:添加HTTP COOKie 管理器(配置元件里),网站有登录限制的需要用到记录用户信息。

第三步:线程组-->添加sampler-->HTTP请求,见图2;一个Sampler通常进行3部分工作:向服务器发送请求、记录服务器的响应数据和记录响应时间信息;请求方法一般使用POST,Get不安全;图2 第四步:HTTP请求->添加监听器->查看结果树或用表格查看结果、聚合报告等;第五步:运行查看结果。

2.1.参数化设置参数化:指对每次发起的请求,参数名称相同,参数值进行替换,如登录三次系统,每次用不同的用户名和密码。

2.1.1.从csv文件读取(CSV Data Set Config)步骤:1)新建一个文本文件,里面保存登录名和密码,如下:Admin,123Test,test这里选用英文逗号为分隔符,也可在CSV Date Set Config中设置。

2)通过Test Plan或线程组的Add->Config Element 配置元件->CSV Data Set Config添加。

3)在http请求中变量格式:${参数值,就是Varible Names中设置的名称} ✓Filename:同目录下csv文件的名称或者文件路径地址✓File Encoding: 默认为ANSI✓Varible Names:定义文本文件中的参数名,参数之间逗号分隔.定义后可在脚本在以Shell变量的同样的方式引用✓Allow Quoated data: 双引号相关✓Recycle on EOF:设置为True后,允许循环取值✓Stop Thread on EOF: 当Recycle on EOF为false并且Stop Thread on EOF为true,则读完csv文件中的记录后,停止运行✓Sharing Mode: 设置是否线程共享2.1.2.使用函数助手Jmeter中有一个函数助手功能,内置多个函数,我们可以利用其中的_Random函数来进行请求中的参数化设置。

操作如下:(1)JMeter中选择“选项--函数助手对话框”,打开该窗口(2)选择一个功能:-Random设定最小值为1,设定最大值为100函数名称设为func1(看个人取)点击“生成”将生成的一个引用字符串${__Random(1,100,func1)},在需要的请求参数中拷贝该字符串即可。

如下图所示:2.1.3.用户自定义变量右击某个结点--》添加--》前置处理器--》用户参数,可以在这里添加参数,手动输入,然后再需要用到的地方引用。

2.2.动态数据关联关联:与系统交互过程中,系统返回的内容,需要在接下来的交互中用到,如防止csrf攻击而生成的token。

2.2.1.从前一个请求中取,用Regular Expression Extractor 正则表达式提取器注:写在一个请求的下面位置:在具体的http请求--后置处理器--正则表达式引用名称:其他地方引用提取值的变量名称,如填写的是:str,具体的引用方式是${str}。

正则表达式:提取内容的正则表达式【稍注意一下:( )表示提取,对于你要提取的内容需要用小括号括起来】 模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式如对于表达式s(.*) 值0对应str,值1对应tr匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。

缺省值:正则匹配失败时,取的值下一步操作是在另一个HTTP请求引用该变量3.用函数助手测试随机访问多个链接测试以本地的网站:192.168.1.200操作步骤:(1)建一个txt文件,如:(2)选项--函数助手对话框--选择"_ StringFromFile"函数该函数的功能是从一个文件中取到一个字符串。

在http请求中,将生成的字符串填入URL之中。

4.测试结果上传登陆网站,进入一下页面:将上图中的Token复制到监听器中的Upload Token处,如下:然后运行Jmeter,执行结束后在可以看到相应结果,如下:5.脚本录制使用第三方录制方式或代理录制方式第三方采用:.au/通过badboy来录制,录制后另存为jmx格式即可。

使用代理录制操作如下:1)创建线程组,添加HTTP请求默认值,如下在服务器或IP名称中输入如:,路径空白;2)添加逻辑控制器--》录制控制器;3)选择工作台,右击添加非测试元件--》HTTP代理服务器4)在包含模式下输入“ .*\.html ”;5)在HTTP代理服务器下添加监听器--》查看结果树;6)在HTTP代理服务器界面,底部按钮点击“启动”;7)配置浏览器使用Jmeter的代理服务器,选择火狐/IE,工具--》选项--》高级--》网络,设置手动配置代理,HTTP代理:localhost 端口号:8080 --》确定;8)打开浏览器,输入URL:/index.html,按Enter,点击链接操作;9)打开JMeter窗口,停止录制,可以看到如下:10)添加监听器,设置线程数、启动时间,循环次数,点击运行;11)查看结果。

最后别忘记将浏览器的代理服务器设置回来。

相关主题