Jmeter 性能测试工具学习记录

Jmeter 性能测试工具:

一、简介

1、 多线程框架——支持多并发操作
2、 用于对服务器模拟负载
3、 支持web、数据库、FTP服务器系统的性能测试
4、 开源、纯JAVA 可二次定制开发

二、环境搭建

1、 安装JDK(JDK 开发工具包 JREJava运行环境JVMJava虚拟机)

C:\Users\xinping.kuang>java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

2、配置环境变量(JAVA_HOME/path/CLASSPATH)

JAVA_HOME:C:\Program Files\Java\jdk1.8.0_162
path:C:\Program Files\Java\jdk1.8.0_162\jre\bin
CLASSPATH:.;C:\Program Files\Java\jdk1.8.0_162\lib\tools.jar

三、Jmeter 的使用

1、代理服务器录制

Jmeter 测试计划-添加-非测试元件-HTTP代理服务器
在这里插入图片描述

端口:8888
目标控制器:测试计划-线程组
分组:不对样本分类
在这里插入图片描述

简单过滤
Request Filtering-排除模式 -
合并格式
..(bmp|js|gif|icov|jpeg|png|swf|woff|html).
分开格式
..js.
..css.
浏览器 设置浏览器代理
设置-高级-开启代理 -地址:127.0.0.1-端口:8888

四、Jmeter主要元件

1、配置元件

2、监听器元件

1、查看结果树
分析查看具体某一个请求的详情
在做性能场景的时候分析错误请求原因
2、聚合报告
汇总统计(请求数、响应时间(单位毫秒ms)、错误率、吞吐量、发送/接收、带宽)
3、用表格查看结果
4、图形结果

3、其他常用原件

1、前置处理器
请求发送前执行的控制器
(加密、md5
2、后置处理器
请求发送后执行的控制器
(提取数据
3、定时器
思考时间–固定定时器
同步定时器–集合点
随机定时器
吞吐量定时器
4、断言

五、Jmeter参数化

参数化流程:找出需要做参数化的数据–准备提供给参数化需要的数据源–把脚本里的常量变成变量(使用前面的数据)

Jmeter实现参数化

1、CSV–需要配置的原件–CSV数据文件设置
使用场景:账号、密码

准备数据文件,一般以 .csv,.dat ,.txt等结尾的文件,数据之间的分隔符可用 ,或者 tab空格
在这里插入图片描述
文件名:csv文件的绝对路径 可以浏览
(路径错误会出现点击运行按钮没有相应的情况)
线程共享模式
所有线程:所有线程循环取值,线程1取第一行,线程二取下一行。
当前线程组:各个线程组分别循环取值。
当前线程:该测试计划内的所有线程都取第一行。

2、函数式 (随机数、time函数-时间戳ms、counter计数器)
函数调用

${__functionName(var1,var2,var3)}
#其中,__functionName 为函数名,括号内是函数的参数,无参数时可以不用括号,如 ${__UUID}。

直接用函数助手生成复制使用
在这里插入图片描述
注: 【JMeter】总结 jmeter 中各种函数
3、变量法
4、编程式 --引入外部jar、Java、class/使用beanshell编程

六、Jmeter关联技术

关联–获取到返回的值、然后保存起来给别的请求使用、或者做一些其他的处理
使用场景:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的信息保存下来。 还有经常遇到的场景,第二个请求提交的参数要从第一个请求的返回数据中获取。

1、token提取示例

在这里插入图片描述
APPly to:作用范围(返回内容的断言范围)
Main sample only:仅作用于父节点的取样器
要检查的响应字段:需要检查的响应报文的范围
主体:响应报文的主体
引用名称(Reference Name):Jmeter变量的名称,存储提取的结果;即下个请求需要引用的值、字段、变量名
正则表达式(Regular Expression):使用正则表达式解析响应结果,“()”表示提取字符串中的部分值,请不要使用“||”,除非你本身需要匹配这个字符。
正则表达式:
**()**括起来的部分就是要提取的
**.**匹配任何字符串
**+**一次或者多次
**?**不要太贪婪,再找到第一个匹配项后停止
“token”:".+?"
在这里插入图片描述

模板:$ 1$ 表示取第一个值
缺省值:当引用不对时显示传递的信息,通畅写一个error

2、JOSON提取器示例

当前接口响应返回的json中提取内容,作为变量可以在不同的请求中传递。如下,从登陆接口返回的json中提取token,变量名设置为token,在其他请求中可以直接调用这个变量,或者作为post参数。此插件对于restful接口非常好用
在这里插入图片描述
查看结果树页可以直接选择JOSN Path Tester进行提取校验在这里插入图片描述
两种方式都可以通过添加后置处理器-调制后置处理程序查看token的值是否提取成功

3、关联–变量值的引用

在这里插入图片描述
Authorization Bearer${token

七、Jmeter集合点技术

集合点目的:
让各个线程(过户)步调一致对系统进行加压,达到模拟真实并发访问的效果
创建集合点
添加-定时器-synchronizing timer(同步定时器)
参数设置
1、Number of Simulated Users to Group by模拟用户组的数量
每集合够多少个模拟用户(线程)后发送一次测试请求
如果设置为0,等同于设置为线程组中的线程数
注:确保设置的值不大于它所在线程组包含的用户数(线程数)—一直集结线程而不发出测试请求,知道超时(如果设置了的话)
2、Timeout in milliseconds-所有用户的集合超时
超时时间,即多少毫秒后同时释放已集结的线程,发送测试请求
设置为0 timer将等待先层数达到了”Number of Simulated Users to Group by“中设置的值才释放
大于0 那么如果超过Timeout in milliseconds中设置的最大等待时间后还没达到”Number of Simulated Users to Group by“中设置的值,Timer将不再等待,释放已到达的线程
注意事项:线程数量无法达到”Number of Simulated Users to Group by“设置值
设置的值大于线程数量,这样就永远无法达到了
最后一批线程数不够集合点数目
通过用表格查看结果 的开始时间可以查看每个线程开始的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值