jmeter
2021-02-18 15:45:09 0 举报
AI智能生成
最全的jmeter使用帮助中文手册
作者其他创作
大纲/内容
jmeter基本使用
测试计划
描述一个性能测试计划,包含与本次测试所有相关的功能,
线程组
setup thread group
预执行的,初始化的动作
teardown thread group
后置处理,测试执行完后的处理
线程组
常用的,需要压测的接口都放到这里
每个线程数可以看成是一个虚拟用户
线程数:虚拟用户
循环次数:重复执行的次数
持续时间:重复执行多长时间,注意循环次数勾选永远
sampler
取样器:向服务器发送请求,并记录响应信息
配置元件
提供静态数据的配置支撑
定时器
设置每一个操作之间的等待时间
前置处理器
在发送请求之前要做的动作,
后置处理器
请求发送完后需要处理的动作,对请求的respones做处理
断言
断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致
监听器
测试结果的图表
jmeter参数化
用户定义的变量
操作:线程组右键:配置元件-用户定义的变量
test plan执行过程中不能发生取值的改变,因此一般仅将test plan中不需要随迭代发生改变的参数(只取一次的参数)
如ip或者端口配置
用户参数
操作:线程组右键:前置处理器-用户参数
用户参数列表中的参数取值可以在测试计划执行过程中发生变化。适用于参数取值范围很小
函数助手
Random
随机函数
setProperty
设置全局变量
V
变量中引用变量
P
引用全局变量
CSV数据文件
操作:线程组右键:配置元件-csv数据文件配置
Filename:获取参数值的文本文件(数据池)。文件名既可以使用绝对路径,也可以使用相对路径。当使用相对路径时,jmeter会在当前测试计划所在路径下寻找该文件。
File Encoding:文件编码方式,默认为ANSI.如果文本文件是以其他方式保存的,则请使用相应的编码方式(如utf-8)。
Variable Names:从文本文件中获取内容的参数列表。参数列表中可以包含多个参数,用逗号分隔。
Delimiter:文本文件中分隔记录域的分隔符,“\t”表示tab键。
Allow quoted data:是否允许数据内容加引号。当该项值是False时,CSV Data Set Config原封不动地将文本文件中相应域的值取为参数值;当为Trues时,将处理文本中用双引号引用的部分,把双引号中的内容取为参数值。除非是CSV文件中的某个域的值包含有设定的分隔符,否则该项设置为False即可。
Recycle on EOF:当该项取值为True时,允许循环取值。当文件中的全部记录被取完后,重新从文件的第一行取值。为False时,根据stop thread on EOF的取值决定测试计划的执行行为。
Stop thread on EOF?:当Recycle on EOF为true时,无论该项取何值,测试计划的执行行为相同;当Recycle on EOF为False时,该项值为True时,文件记录取完后,线程停止运行,如果该项取值为False,则线程后续执行时给定参数的取值为<EOF>。
Sharing mode:配置csv文件的使用范围
读取数据库
用法:
1、创建数据库连接
2、创建查询数据库的请求,获取需要的数据
3、引用数据
3.1多条数据引用时需要计数器
1、配置数据库连接JDBC Connection Configuration
Variable Name for created pool:填写一个连接名称,自定义名称(如mysqltest),后面的JDBC请求中需要用到,以适配连接的是该连接名称的数据库配置。
Database URL:jdbc:mysql://数据库ip:端口号/数据库名
如:jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
JDBC Driver class:com.mysql.jdbc.Driver(不同的数据库不一样,这个是mysql的)
Username:数据库登录名
Password:数据库登录密码
2、查询数据库获取数据JDBCRequest
数据库查询结果的应用
1、查询一条结果,通过sql语句来控制;2,查询多条结果,通过计数器来循环使用
读取别的接口response
正则提取
apply to:要应用的范围
要检查的响应字段:样本数据源
引用名称:变量名
正则表达式:左边界(.+?)右边界
Match[1][0]="barcode":"6955203636348",
Match[1][1]=6955203636348
Match[2][0]="barcode":"6955203653819",
Match[2][1]=6955203653819
模板:$0$,则取匹配结果中第二个索引值为0的内容
若模板为:$1$,则取匹配结果中第二个索引值为1的内容
匹配数字
正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。
当为 0 时,随机返回匹配的数据。
当为 1 时,表示返回匹配结果数组的第一个元素
当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量
在引用时:通过${变量名_1}的方式来取第1个匹配的内容,${变量名_2}来取第2个匹配的内容
缺省值
匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。
json提取
字典对象:$
$.result[0].name[1]....
$.result.records[?(@.object_id==0)].id
$:表示根节点,取值类似字典索引
?(@.object_id==0)为固定写法,常用于列表内元素的筛选
列表对象:[]
[0].name
提取多个值
变量名称用;隔开
每个变量对应一个json表达式,用;隔开
match no:同样用分号隔开,0表示随机,-1表示所有
默认值:0;0;0,几个变量对应几个默认。必填
jmeter逻辑控制器
逻辑控制器可以控制采样器(samplers)的执行顺序
事务控制器
把多个操作放到一个事务控制器中,统计总时间。多个操作定义成一个事务
吞吐量控制器
控制其下的子节点的执行次数与负载比例分配
jmeter监听器
自带的结果图表
聚合报告
查看结果树
用表格查看结果
图表分析插件
安装 3 Basic Graphs
服务器资源监控
1、先安装客户端插件:
使用Plugins Manager在本地安装图标监听器插件PerfMon Metrics Collector
2、安装服务端插件:
下载服务端插件serverAgent.sh,放到服务器自定义目录,并启动,端口默认4444
3、配置监听器:
在监听器中添加服务器信息,然后启动测试
jmeter测试报告
插件管理
https://jmeter-plugins.org/install/Install/ 下载插件,放到lib/ext
生成html报告
5版本。tools > Generate HTML report
linux上执行
jmeter.sh -n -t test.jmx -l test.jtl -e -o /path
# -n:以非GUI形式运行Jmeter
# -t:source.jmx 脚本路径
# -l:result.jtl 运行结果保存路径(.jtl),此文件名称不能重复
# -e:在脚本运行结束后生成html报告
# -o:用于存放html报告的目录
jmeter -g test.jtl -o /path
分布式配置
master
配置修改remote_hosts=ip1:host,ip2:host
slave
安装jdk,jmeter
修改配置文件jmeter.properties
server.rmi.localport
server. port
remote_hosts
启动jemter
多线程组
复杂场景
windows命令执行
jmeter.bat -n -t 25_woniusales.jmx -l 25.jtl -e -o D:\JMeter4.0\bin\report
0 条评论
下一页