JMeter 使用逻辑控制器
JMeter 包含了如下多种控制器 使用方式将请求包含在控制器内部。 样例当选中红框时,可以使用 Groovy 执行 Beanshell 脚本。 Groovy(官方建议使用方式) JavaScript 脚本方式(不勾选红框)
JMeter 响应断言
JMeter 中有个元件叫做断言(Assertion),它的作用和 LoadRunner 中的检查点类似。用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致。 JMeter 常用几种断言 Response Assertion(响应断言) Size Assertion(数据包字节大小断言) Duration Assertion(持续时间断言) Beanshell 断言(自由断言) JSON 断言 Response Assertion(响应断言)添加响应断言对 Web 请求的响应结果进行验证。 输入需要匹配的字符串此处对于访问 Baidu 首页,需要设置匹配的字符串为"百度一下,你就知道",表示返回的文本内容若包含有"百度一下,你就知道",则就算 Pass。 Response Assertion 配置参数 模块类型 选项名称 配置说明 Name Response Assertion 名称 Comments 注释 Apply to 断言应用的范围 Main sample...
QPS, PV, UV, RT 之间的关系
QPS(每秒查询率)每秒查询率(Query Per Second),每秒的响应请求数,也即是最大吞吐能力。 QPS = req/sec = 请求数 / 秒 QPS 统计方式【一般使用 http_load 进行统计】 QPS = 总请求数 / (进程总数 × 请求时间) QPS:单个进程每秒请求服务器的成功次数 峰值 QPS 每天 80% 的访问集中在 20% 的时间里,这 20% 的时间叫做峰值时间 公式:(总 PV 数 × 80%)/ (每天秒数 × 20%) = 峰值时间每秒请求数据(QPS) PV(页面浏览量)访问量即 Page View,即页面浏览量或点击量,用户每次刷新即被计算一次。 单台服务器每天 PV 计算 公式 1(峰值): 每天总 PV = QPS × 3600 × 6 公式 2(normal): 每天总 PV = QPS × 3600 × 8 UV(独立访客)独立访客即 Unique Visitor,访问您网站的电脑客户端为一个访客,00:00-24:00 内相同的客户...
Beanshell 用法
JMeter 里面有几个用到 Beanshell 的地方,这里作统一介绍。 Beanshell Sampler – 一个独立的 Beanshell 请求 Beanshell PreProcessor – sample 的一个预处理装置,在 sample 之前执行,可用来作为执行的先决条件(例如产生某些输入) Beanshell PostProcessor – 在 sample 之后再执行的一个提交处理器,可用来恢复数据或清除数据 Beanshell Assertion – 一个访问 JMeter API 的后期断言装置,Java 的逻辑可以被用来设置这个断言的结果 __Beanshell Function – 允许在 sample 执行期间,客户自定义 Beanshell 代码的 JMeter 函数 下面说明会经常使用的 Beanshell 语法: 假设你有个自定义的变量 id,想给这变量重新赋值,那么你可以使用 vars 操作相关变量获取变量:vars.get("id"); 给变量赋值:vars.put("id","J_12...
AB 压测工具使用指南
Apache Benchmark(简称 ab)是 Apache 安装包中自带的压力测试工具,简单易用。 安装(CentOS)123yum -y install httpd-tools# 或apt -y install apache2-utils AB 参数说明1234567891011121314151617181920212223242526272829303132333435363738394041424344454647-n:一个要执行的次数。默认为 1。【-n 和 -c 一般成对出现。eg [-c 10 -n 1000]:同时处理 10 个请求,每组运行 (1000/10) 次,必须满足 n 能整除 c】-c:单次发出的并发请求数。默认为 1。【-n 和 -c 一般成对出现。eg [-c 10 -n 1000]:同时处理 10 个请求,每组运行 (1000/10) 次,必须满足 n 能整除 c】-t:测试所进行的最大秒数。用于测试的最大秒数是 50000【等价于 -n 50000】,它可以使对服务器的测试限制在一个固定的总时间以内。-p postfile:File co...
JMeter 动态参数
使用 CSV 作为动态参数的输入添加->配置元件->CSV Data Set Config 添加动态参数。如下: CSV 文件的内容如下:这里随意写了几个。变量名列表。对应参数文件每列的变量名,类似 Excel 文件的文件头,起到标示作用,同时也是后续引用的标识符,建议采用有意义的英文标示。例如:loginToken 可以被用变量名来引用:${loginToken}。多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名。 12345loginToken111222233334444 JMeter 中配置如下: 参数解释 名称(Name):脚本中显示的该元件的描述性名称,必须填写。 注释(Comments):对该元件的说明信息。(非必填写) 文件名(Filename):待读取文件的名称。可以写入绝对路径,也可以写入相对路径(相对于 bin 目录或者脚本文件所在目录),如果直接写文件名,则该文件一定要放在 bin 目录中。对于分布式测试,主机和远程机中相应目录下应该有相同的 CSV 文件,必须填写。(建议填写相对路径,...
JMeter 模拟浏览器行为发送请求(Web 页面端压力测试)
背景在做性能测试的时候,有时候我们希望测试用户访问一个 Web 页面的加载时间,使用 JMeter 压测的话,需模拟浏览器的行为,加载整个页面的内容,包含一些 JS、CSS、PNG 图片资源等文件的加载。 参考 https://blog.csdn.net/meitingbee/article/details/53924469 https://blog.csdn.net/qq_27371025/article/details/117945423 https://www.jianshu.com/p/c5370860b142
JMeter 连接 JDBC
数据库驱动包下载与安装示例:连接 MySQL 下载 Connectorhttps://dev.mysql.com/downloads/connector/j/ 安装下载完成后解压放到 JMeter 的 lib/ext 下 重启 JMeter JDBC 的连接配置添加配置元件 - JDBC Connection Configuration 参数详解 Variable Name for created pool:自己定义连接数据库的名称,需要记住,这里会在后续使用 JDBC Request 中用到 Database URL:数据库 URL,jdbc:mysql://主机 IP 或者机器名称:MySQL 监听的端口号/数据库名称,如:jdbc:mysql://localhost:3306/kyj。URL 后面的参数(可以不写)characterEncoding=utf8&useSSL=true&serverTimezone=UTC,设置时区和编码格式 JDBC Driver class:MySQL 新版使用 com.mysql.cj.jdbc.Drive...
JSON 提取器使用方法
JSON Path 语法在线网站地址:链接 摘自 https://blog.csdn.net/qq_45664055/article/details/121523930 1、提取 lastName 的值可以写 $.lastName $:代表整个 JSON,根节点 .:点代表下个节点 $.lastName 意思就是,找到根节点下的 lastName 的值 2、提取根节点下的 address,下的 streetAddress根节点下的 address 是一个对象,在 JSON 中以 {} 括起来的叫对象,city 是 address 对象的子节点,所以表达式写为:$.address.streetAddress 3、提取列表中的值 phoneNumbers 的值是一个列表,列表使用 [] 括起来,列表中可以存放多个对象。 提取 phoneNumbers 列表中的第一个对象的 type 的值,语法:$.phoneNumbers[0].type 取列表里面的值,要在后面加上 [],里面填写索引值,第一个对象对应索引 0,第二个对应索引 1,以此类推。 J...
前置处理器
前置处理器(预处理器)是 JMeter 的元素,在测试场景中用于执行采样器请求之前执行的操作。预处理器可用于不同的性能测试需求,例如从数据库中获取数据、在采样器执行之间或在测试数据生成之前设置超时。 BeanShell PreProcessor假设我们要测试一个需要 "token" 参数的请求,这个参数可以是任何随机字符串,我们可以轻松使用预处理器生成随机字符串并在采样器中使用它的一个很好的例子,BeanShell 预处理器适用于此,因为它可以管理性能脚本中的任何程序员任务。 Right Click on the Sampler -> Add -> Pre Processors -> BeanShell PreProcessor 参数说明 Reset bsh.Interpreter before each call:在每次调用之前重置解释器并清除占用的内存。将此选项设置为 "True" 对于长时间运行的脚本可能很有用,因为重复调用可能会消耗大量内存 Parameters:将传递给 BeanShell 脚本的 JMete...
