Jemeter学习笔记
来源:互联网 发布:iphone6s网络设置 编辑:程序博客网 时间:2024/06/04 00:44
apache jmeter
apache组织开发的 开源的性能测试工具
jmeter没有事务 所以每个接口代表一个事务
环境搭建:java需要版本到1.6以上,apache-jmeter-2.1.1,badboy2.0.5(性能工具,可有可无,使用录制功能,用于jmeter)
1.接口设置:在测试计划下面,添加线程组-sampler-http请求,右键添加线程组-添加查看结果树
名称:百度网页接口
web服务器:www.baidu.com
路径:/(斜杠左边自动填写的是服务器地址)
方法:get(可以传明参)
勾选“跟随重定向”“use keepalive”
编码:识别中文
点击查看结果树,左下角调成html(download resource),点击运行三角标
ie=utf-8&ρ=8&vsv_bp=0解释,参数的值通过&连接,第一个参数的值是utf-8,第二个参数的值是8
解释:名称:本属性用于标识一个取样器,建议使用一个有意义的名称,可自定义
注释,对于测试没有任何作用,仅用于记录用户可读的注释信息
服务器的名称或IP:http请求发送的目标与服务器名称或ip地址
端口号:目标服务器的端口号,默认值是80,后面的超时定义可以不用填写
协议:向目标服务器发送http请求时的协议,可以使http或者https,默认值为http
方法:发送http请求的方法,可用方法包含get/post/head/put/option/teeace/delete等
content encoding:内容的编码方法
路径:目标url路径(不包括服务器地址和端口)前面要有、
自动重定向:如果选中该选项,当发送http请求与后得到的响应是302/301时,jmeter自动重定向到新页面(如果请求真是的话,该选项可以勾掉)
use keepalive:当该选项被选中的时,jmeter和目标服务器之间使用keep-alive方法进行http通信,默认选择。(持久长连接)
use multipart/form-data for http post:当发送http post请求的时候,使用use multipart/form-data 方法发送,默认不选中
同请求一起发送参数:请求中发送url参数,对于带参数的url,jmeter提供一个简单的对参数化的方法,用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对应(名称1=值1)。另外如果发送为中文,将后面的编码要进行勾选
同请求依次发送文件,在请求中发送文件,通常,http文件上传为可以通过这种方法模拟
从html文件获取所有内含的资源:当该选项被选中时,jmeter在发送http请求并获得相应http文件内容后,还对该html文件进行parse并获取html中包含的所有资源(图片,flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方embedded urls must match文件框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的url指向资源会被下载
用作监视器:次取样器被当做监视器,在monltor results listener中可以直接看到基于该取样器的图形化统计信息,默认不选中,
save response as MD5 hash?:选中该项,在执行仅记录服务器相应数据的MD5值,而不记录完整的响应数据,在需要进行数据量非常大的测试时,建议选中该项一减少取样器记录响应数据的开销。
不能虚拟ip,报告比较不友好
2.线程组设置:
线程组:虚拟用户数(整数,模拟人数)
ramp up period :设置的虚拟用户数需要多长时间全部启动。如果线程数为20,时间为10,20/10=2,也就是每秒钟启动2个线程,
循环次数:每个线程发送的请求次数,如果线程为20,循环次数为100,那么每个线程发送100次请求,总请求数为20*100=2000.运行时间就是全部启动时间10*(循环次数)10=100秒。
如果勾选了“永远”,那么所有线程会一直发送请求,知道选择停止运行脚本,
调度器:可以更灵活的设置运行时间等,可以设置启动,结束,持续,延迟等
总结:
线程/间隔时间=增加线程数策略
线程数*循环=最后的请求次数
间隔*循环=运行时间
监听器:聚合报告(单位:毫秒)
前提:添加监听器——聚合报告
解释:label:定义http请求名称
average:平均响应时间-默认情况下是单个request的平均响应市场,当使用了transaction controller时,也可以以transaction为单位平均响应市场
media:中位数,也就是50%用户的响应时长
90%line:90%用户的响应时长
min:访问页面的最小响应时长
max:访问页面的最大响应时长
error%:错误请求的数量/请求的总数
throughtput:默认情况下每秒完成的请求数(request per second),当时用了transaction controller时,也可以表示类似loadrunner的transaction per second数。
KB/sec:每秒从服务器端接收到的数据量
可以将文件保存,保存文件后缀是.jtl
3.jmeter元件的作用域与执行顺序
元件的作用域
配置元件:会影响作用范围内的所有元件
配置处理程序:在其作用范围内的每一个sampler有效
定时器;:对其作用范围内的每一个sampler有效
后置处理程序:在其作用范围内的每一个sampler元件之后执行
断言:收集起作用范围的每一个sampler元件的信息并呈现
sampler:元件不和其他元件相互作用,因此不存在作用域的问题
执行顺序(如果存在多个相同类型的元件按照从上到下的顺序执行):配置元件、前置、定时器、sampler、后置、断言
4.参数化
第一种参数化:用户参数
1.在需要的作用域中右键添加-前置处理器-用户参数假设名为rou
2.添加变量 为rou
3.添加用户:每个用户代表一个参数的值
4.在接口中的参数找到需要参数化的值
5.修改为:${rou}
当需要多个参数化时,可以多次添加变量。
第二种参数化:
CSV Data Set Config
1.在需要的作用域中右键添加-配置元件CSV Data Set Config
2.设置filename文件名: 即残说话要引用的文件名,这里是路径 比如:d:\number.txt。前提已经有了这个文件
3.file encoding文件编码: 可以不填,填写的值为gbk,utf-8
4.varlable names(comma-delimited): 变量名(多个变量可以用逗号分割)
5.delimiter(use'\t'for tab): 参数文件中要有多个变量值的分隔符,\t表示用tab键分割,默认分隔符是‘,’(逗号)
6.recycle on EOF?:结束后是否循环?默认是True
补充文件格式(d:\number.txt):
白菜,1111
牛肉,2222
猪肉,3333
5.集合点:
在请求前右键添加定时器-synchronizing timer
位置:要放到集合的操作前,也就是放到需要集合的请求前
设置:名称自定义
number of simulated users to group by:
整数,就是多少人并发数
注意:线程和并发人数的关系,并发人数不能大于线程数
6.检查点:(jmeter中叫做断言)
1. jmeter的检查点就是断言中的响应断言
添加-断言-响应断言
如果查看断言结果:添加-监听器-断言结果
在响应断言中点击添加:把需要检查的值,输入即可
如果检查的值是变量,那么可以把变量的名输入。例如:${rou}
2.断言的持续时间:
例如:百度首页显示时间不能超过1s,那么这种就可以用持续时间断言
设定:输入持续时间(毫秒):1000
运行后,在断言结果中可以查看
3.返回结果字节大小断言
右键在需要断言的地点添加-断言-size assertion
填写字节大小即可
运行后,在断言结果中可以查看
7.动态关联:jmeter中关联的方法:一般为正则和xpath
步骤:lr中小飞机程序网站的设定,勾选第三项
更新后,每次登录会有一个变化的session值。
<session=XXX,id=XX,name=XX>html
LB=session
RB=id=XXX
1.小飞机的nav.pl接口是发送登录接口
2.在nav.pl接口上点击右键-添加-后置处理器-正则表达式提取器
比如原有的html为<input type=hidden name=usersession value=134.3445ad>
可以讲value的值用正则表达式编写(.*)
解释:正则表达式都是在()中表示,点.代表一个或多个字符,星号*表示出现一次或者多次
模板:在正则表达式中输入以下内容:
引用名称,随意编写比如session
正则表达式name=usersession value=(.*)>
模板:$1$
匹配数字(0代表随机):1
解释:模板:如果前面的正则表达式取了不止一个参数,那么这里需要指定参数的组别,如果该参数为$1$,则表示取得第一个值,$2$表示取得第二个值,以此类推,如果一个html可以配出很多值,那么取html中的第几个这里就填写几个
匹配数字:0随机,-1取所有值,以数组形式存储:1,2,,,,1就是取第一个值,依次类推
4.判断管理是否正确
4.1添加断言:输入${session}
5.在接口的传值中,可以把usersession后的值填写
5.1${session}
8.jmeter图形监控(扩展)
前提下载插件:http://jmeter-plugins.org/downloads/add/
添加扩展插件:1.将jmeterplugins.jar包复制到jmeter的lib目录下面的ext目录下面,重新启动jmeter(jmeter plugins-standard-1.2.0.zip)
2.我们需要将server agent目录及下面的文件赋值到我们测试的服务器上,然后点击打开,它的默认端口为4444,如果我们服务器是windows的,双击startagent.bat即可,如果服务器是Linux的,在linux中执行start agent.sh即可(server agent-2.2.1.zip)
- Jemeter学习笔记
- Jemeter
- JEMETER
- Jemeter控制器
- 学习jemeter时遇到的问题(正则表达式格式与匹配)
- jemeter遍历访问URL
- Jemeter执行顺序
- Jemeter中的断言
- JeMeter访问https请求
- Jemeter分布式测试
- Jemeter 使用介绍
- Jemeter进行ftp测试
- Jemeter产生的负载
- jemeter自动化测
- jemeter之性能测试
- jemeter如何下载安装
- Access Log Sampler之Jemeter
- jemeter分析(二) — jmeter案例分析
- Hadoop学习笔记之MapReduce
- 数字货币开发,和区块链技术中有什么优点。
- JavaScript 基础认识
- hibernate之HQL之left outer join
- java 数组
- Jemeter学习笔记
- UVa 11059 最大乘积
- Java的多线程机制系列:(一)总述及基础概念
- 二级滑动侧边栏(自定义DrawerLayout)
- linux下常用的几个时间函数:time,gettimeofday,clock_gettime,_ftime
- Comparable和Comparator的区别
- MacOS下,搭建tomcat的https服务
- JS中some(),every(),forEach(),map(),filter()区别
- Android Studio启动DDMS