Jmeter使用
Jmeter简介
Apache组织开发的性能测试工具
用户模拟大量用户的并发访问
最大的优点是完全开源
一:BS架构应用性能
二:HTTP协议接口功能与性能
三:FTP协议接口功能与性能
四:Mysql数据库性能
五:MongoDB数据库性能
六:支持自定义java组件开发
工作原理:
建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果。
如果取样器中有参数化的需求,可以通过配置元件或者前置处理器来完成。
如果有关联需求,可以通过后置处理器来完成。
如果要设置运行场景,比如模拟多少用户,运行多长时间,那就设置线程组。
如果想要模拟并发场景,可以利用定时器来设置。
如果想要控制业务的执行逻辑,比如登录只运行一次,我们可以通过控制器来完成。
jmeter的发送json参数
配置元件--添加http头信息
content-type=application/json
jmeter的文件参数化
1,函数助手 _CSVReader
2, csv data set config . 添加-配置元件
jmeter的参数化
1,线程组-用户添加变量,key-value。需要的地方${key}引用
LoadRunner 和jmeter的不同之处
1,在loadRunner中关联函数写在要获取变量值的前面
在jmeter中是要写在要获取变量值的后面
2,在loadRunner中关联函数是注册函数
在jmeter中是使用正则表达式提取器来进行关联
Jmeter的编码
1,设置编码
2,jmeter.properties设置字符编码
3,添加-配置元件
Jmeter的关联函数
1,添加-后置处理器-正则表达式提取器
如登录需要token
Jmeter控制TPS
定时器-固定吞吐量定时器
以指定数字的吞吐量(即指定TPS,只是这里要求指定每分钟的执行数,而不是每秒)执行。
Jmeter接口加密验签
将开发写的加密算法导出一个jar包,放入/jmeter/lib/ext下,重新启动jmeter,建立前置处理器beanshell,在其中拼接加密字符串和进行加密,定义变量,然后添加配置元件中请求头信息,在请求头中引用变量
token
使用正则表达式获取
Jmeter阶梯式加压
Stepping Thread Group是jmeter插件的一种,下载jar放入/jmeter/lib/ext下,重新启动jmeter
Jmeter集合点
在Jmeter里是synchronized timer(同步定时器)
其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力
jmeter检查点
在Jmeter响应断言
内存溢出
内存溢出解决方法:调整堆内存大小
bin下的jmeter.sh文件
jmeter分布式
一、Jmeter分布式执行原理:
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
二,配置
slave机器上安装jmeter最好与主机版本一致
bin/jmeter.properties配置端口号
主机的bin/jmeter.properties中的remote_hosts添加IP:端口号,多个用,连接
重启master。运行里面-远程启动里面就有了,创建线程组,就可以执行了。