1, jmeter 录制脚本需要设置ie 代理服务器:设置完成后,关闭浏览器,重新打开就生效了。
如果录制完了之后,回放时报错, 可以尝试清除浏览器缓存后,重新录制脚本。
工作台--http代理服务器,中的“目标控制器”,如果选择在线程组中,录制的脚本就会显示在线程组里。
过滤的设置:
.*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2).*
2, jmeter 录制请求
3,实现常用场景:登录一次,循环查询,退出一次。
这样聚合报告中就可以看到如下:
4,使用模板录制:
模板中文化后,看的更清楚:
6,命令执行jmeter脚本:
建一个jmetercmd.bat,输入命令行
jmeter的安装目录 -n -t “jmx脚本路径”
例如:D:\apache-jmeter-3.2\bin -n -t D:\apache-jmeter-3.2\bin\templates\zgl.jmx
7,jmeter中常用组件介绍。(必须有线程组和http请求。之后可以加http cookie管理器,涉及防盗需要加http信息头管理器。增强脚本加关联、检查点、集合点)
1)HTTP cookie 管理器:页面间靠cookie传参时,需要这个元件。
2)HTTP信息头管理:涉及加密或是防盗信息时,在http信息头管理器中管理。
3)HTTP默认请求值:在每个http请求中都一样的参数提取出来放在这里统一管理,在http请求中可以不用填写了,使用默认值。
3)正则表达式提取器:关联。
4)固定定时器:思考时间
5)响应断言:检查点。
6)集合点:synchronizing time 。
7)逻辑控制器:有很多种,仅一次控制器表示在循环场景中只执行一次。例如唯一登录。 还有循环控制器或是if控制器,根据执行场景情况使用。
8)csv data set config :设置参数化。 多参数用逗号分开。
9)查看结果树:显示结果信息的。
10)debug sampler :打印信息。
8,http默认请求值。
9,debug sampler 打印信息。
也可以打印:
10,jmeter跨线程组间传递sessonid值。
通过以下四步的设置,在两个线程组间,可以传递sessionid的值。
1)首先查看结果树中,响应头包含了返回值的sessionid。
2)添加正则表达式提取器。
jmeter正则表达式,提取多个值。
9,正则表达式提取器: 0表示随机,-1表示所有值,1表示第一个,2表示第二个值。
正则表达式,提取相隔很远的两个值:
例如:templateid 是上传参过来的,这里需要取mainid值。
.*? 代表是任意值。 中间那些值用.*? 代替即可。
3)添加beanshell postprocessor:设置全局函数。${__setProperty(newJSESSIONID,${JSESSIONID},)};
4)在线程组2中通过函数获取。 ${__P(newJSESSIONID,)}
jmeter打印调试语句:
6,用debug sampler 进行调试:
json正则表达式:
取多个值,${idzhi_1} ,${idzhi_2}
jmeter参数化:
7,参数化时,调整取值顺序
8,参数化txt文档中包含多列记录。
csv格式的样式:
在“查询”里面做参数化时,将csv格式放在查询里面。
定时器:集合点和思考时间
10.集合点:指定集合50并发用户,在5ms内集合完成,如果没有集合的算是超时。可以放在http请求下,也可以放在线程组下,作用范围不一样。
stepping thread group:
This group will start 100 threads - 设置单台负载机,线程组启动的线程总数为100个
First,wait for n seconds - 启动第一个线程之前,需要等待0秒,也就是不等待直接启动线程
Then start 0 threads - 设置最开始启动0个线程
Next,add 10 threads every 30 threads,using ramp-up 5 seconds - 每隔30秒,然后在5秒内启动10个线程
Then hold load for 60 seconds - 单台负载机启动的线程总数达到100个,持续运行60秒
Finally,stop 5 threads every 1 seconds - 最后每隔1秒,停止5个线程数
jmeter常用函数:
—Random 随机函数。
—randomstring 随机字符串函数。
—threadnum当前线程号。并发用户的编号 。
—time将当前时间格式化为你设定的格式。
—UUID:通用唯一识别码。
—counter该函数生成并发时用户的迭代次数 。
11,jmeter性能监控(如果监控不到,换成jmeter3.1版本)
jmeter也可以像loadrunner一样监控服务器CPU、内存等性能参数,不过需要安装一些插件
1)下载需要的jmeter插件
如图上面两个是jmeter插件,可以再下面的链接中下载:
https://jmeter-plugins.org/downloads/old
第三个是放在服务器中的,可在下面的度盘中下载:
serverAgent下载
2)解压压缩包
参见包里面的说明文档:”Just copy the JAR file into JMeter's lib/ext directory.Then you can start JMeter and add additional items to your Test Plan.Java version 1.6 and JMeter 2.4 are required.”
所以我们需要找到解压包中的JAR文件,并拷贝到jmeter的lib/ext目录下,这里下载的1.4版本的插件需要在jdk1.6及jmeter2.4以上的版本使用
如上图,把的两个jar包放到JMeter的 lib/ext目录下,重启jmeter,出现如下新增的组件,则说明启动成功
3)常用组件简要介绍:
jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)
聚合报告里,Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表jp@gc - Composite Graph: 混合图表
在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表jp@gc - Hits per Second:每秒点击量
jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等
jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
jp@gc - Reponse Times Distribution: 显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数
jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数
4)将监控服务器的serverAgent拷贝到需监测的服务器
windows服务器中启动startAgent.bat,Linux服务器启动startAgent.sh即可
在linux中启动 ./startAgent.sh 是,可能会提示:“-bash: ./startAgent.sh: 权限不够”,那么我们需要执行命令:
chmod +x startAgent.sh
5)准备测试脚本
这里用到一个登陆测试系统的简单脚本做压力测试demo
5.1)在选项---plugins manager 中,执行apply changes and restart jmeter。开始下载插件。
6)配置监控服务器性能参数的组件
主要用到这个组件:jp@gc - PerfMon Metrics Collector,配置如下:
如果执行时间长或是为了方便查看测试结果,需要多添加几个jp@gc - PerfMon Metrics Collector组件,每个组件加一个cpu 或是一个memory 。
7)设置负载,执行脚本,查看监控结果
注意:
1)如果提示报错:
ERROR: java.io.IOException: Agent is unreachable via TCP的错误。 说明4444端口被占用了。 执行下面的语句:
./startAgent.sh --tcp-port 3401 --udp-port 3402 --sysinfo 将端口更改成3401 和 3402 。
8)图表可导出成csv文件,配合聚合报告,分析服务器性能状况
13,不写登录接口,可以通过设置cookie,直接访问其他接口。
通过浏览器抓包,得到cookie值,如果cookie中包含多个值,需要在上面图中设置多个参数值。
14,不写登录接口,设置token值,也可以访问其他接口。
先用F12,在浏览器中登录一下,得到一个未失效的token值。然后设置到http请求头中就可以了。
将登录后得到的token值,替换http信息头管理的authorization值。
14,jmeter连接oracle数据库:
首先引入oracle的jar包:
添加线程组,然后添加jdbc connection configuration 。
18,jmeter录制app客户端:
手机端也是与电脑在同一个wifi下,或是是用电脑有线网络的热点,然后设置代理即可。
然后在手机上操作,在电脑上jmeter就可以录制了
12,jmeter连接sqlsever数据库
测试计划中引进jar包,
添加jdbc connection configuration ,并配置连接参数。
传参数,及使用返回值。