
性能测试
文章平均质量分 67
我和ye猫子
这个作者很懒,什么都没留下…
展开
-
Jmeter系列(64)- JMeter JSR223 入门
JSR223 介绍JMeter 支持使用编程语言来开发测试,最常用的莫过于BeanShell 但是 BeanShell 脚本的效率却不高 针对此种情况,JMeter 给了测试开发人员更多的选择,引入了JSR223组件元素,提供了使用多种编程语言开发测试的可能性,其中包括了性能较高的Groovy语言 在使用 JSR223 组件元素开发测试时,可以使用其内置的变量,有助于精简脚本,提高开发测试的效率 JSR223 定义了可集成在Java平台上运行的一系列脚本语言,比如 Groovy,JavaS...原创 2022-06-01 16:30:37 · 1642 阅读 · 0 评论 -
Jmeter系列(35)- 使用 ServerAgent 监控服务器
前言做性能测试,监控服务器资源指标是必须有的一步 这一篇博客将讲解通过 Jmeter 插件来监控服务器,再通过 Jmeter 观察监控结果下载、安装、运行插件JMeterPlugins-Extras.jar JMeterPlugins-Standard.jar ServerAgent-2.2.3.zip可以通过官方下载:Download :: JMeter-Plugins.org注意前两个插件最新版本在官网已经不提供下载了,只能下载旧版本,官方建议通过 Plugins Mana原创 2022-05-23 11:23:56 · 3021 阅读 · 1 评论 -
Jmeter系列(29)- 详解 JDBC Connection Configuration
前言发起 jdbc 请求前,需要有 JDBC 连接配置,即先连上数据库,才能查询数据库JDBC Connection ConfigurationJDBC Connection Configuration 界面介绍Variable Name for created poolJDBC Connection Configuration算是一个数据库连接池配置 Variable Name :数据库连接池的名称 一个测试计划可以有多个 JDBC Connection,只要.原创 2022-05-20 11:53:35 · 2245 阅读 · 0 评论 -
Jmeter系列(26)- 详解 JSON 提取器
为什么要用 JSON 提取器JSON 是目前大多数接口响应内容的数据格式 在接口测试中,不同接口之间可能会有数据依赖,在 Jmeter 中可以通过后置处理器来提取接口的响应内容 JSON 提取器是其中一个可以用来提取响应内容的元件JSON 提取器的应用场景提取某个特定的值 提取多个值 按条件取值 提取值组成的列表JSON 提取器我们通过实际栗子去讲述理论知识点JSON 提取器界面介绍字段含义入门栗子栗子的前提这个栗子,我都会以这.原创 2022-05-20 11:33:03 · 11274 阅读 · 5 评论 -
Jmeter系列(21)- 详解 HTTP Request
HTTP Request 介绍用来发送 HTTP、HTTPS 协议请求HTTP Request 界面字段名 作用 名称 不多介绍啦,建议自定义一个识别度高的名称 注释 对于测试没有任何影响,仅记录作用 协议 http或https,大小写不敏感 默认:http 服务器名称或IP 服务器 host 或者 ip,不包括协议 比如:www.baidu.com、192.168.196.128 端口号原创 2022-05-18 15:00:39 · 1875 阅读 · 0 评论 -
Jmeter系列(19)- 前置、后置处理器的入门介绍
前置处理器在发出取样器请求前执行一些操作 用的比较多的是:设置一些参数、修改取样器的设置、脚本预处理有什么前置处理器后置处理器在取样器请求发出后执行一些操作 用的比较多的是:处理响应数据,提取某个值有什么后置处理器后面,我们会对每个常用的前置、后置处理器单独讲解哦!...原创 2022-05-18 14:59:49 · 1099 阅读 · 0 评论 -
Jmeter系列(16-17)- 线程组下不同组件的执行优先级/顺序 和 定时器Timers 的入门介绍
重点一每个测试计划至少需要有一个线程组线程组下不同组件的执行优先级/顺序配置元件、监听器 前置处理器 定时器 逻辑控制器 取样器 后置处理器 断言取样器执行顺序在没有逻辑控制器情况下,取样器是按从上往下的顺序执行的不使用定时器时Jmeter 线程将按顺序执行各个取样器而不会中途暂停 Jmeter 可能会在很短时间内发出过多请求,从而使服务器不堪重负使用定时器时可以在取样器下添加定时器,这样定时器只会作用于当前取样器 也可以在线程组下添加多个..原创 2022-05-18 14:59:12 · 539 阅读 · 0 评论 -
全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台 _
背景日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不能忍!那我们要怎么给它变得好看点捏?如何华丽变身? 方式 优点 缺点 场景 Jmeter+ant+Jenkins 快捷,上手简单 报告还是不够美观、直观,如果测试原创 2022-06-01 16:32:08 · 1349 阅读 · 0 评论 -
Jmeter系列(68)- BeanShell 内置变量 prev
前提BeanShell 有的内置变量,JSR223 也会有对应的变量,这里 JSR223 效率更高,所以以它为栗子简单介绍prev 提供对当前取样器结果的访问能力 prev 映射 org.apache.jmeter.samplers 的 SampleResult 类 官方文档: https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html常用方法getResponseCode方法声明原创 2022-06-01 16:31:29 · 892 阅读 · 0 评论 -
Jmeter系列(67)- BeanShell 内置变量 props
前提BeanShell 有的内置变量,JSR223 也会有对应的变量,这里 JSR223 效率更高,所以以它为栗子简单介绍props 映射 java.util 的 Properties 类 与 vars 作用大致相同,区别的是 vars 是对变量进行读写操作, 而 props 主要是对属性进行读写操作 vars 只能在当前线程组内使用,props 可以跨线程组使用 ,因为属性可以跨线程组但是变量不行 vars 只能保存 String 或者 Object,props 可以是 Hashta原创 2022-06-01 16:31:17 · 687 阅读 · 0 评论 -
Jmeter系列(66)- BeanShell 内置变量 vars
前提BeanShell 有的内置变量,JSR223 也会有对应的变量,这里 JSR223 效率更高,所以以它为栗子简单介绍vars 是最常用的JMeter变量之一 在 JMeter 内部,映射 org.apache.jmeter.threads 的 JMeterVariables 类 vars 提供了对当前线程变量的读写能力 所有的 JMeter 变量都是java字符串 如果你需要把数据存放到一个 JMeter 变量中,需要先将它转换成字符串 官方文档:https://jmete.原创 2022-06-01 16:31:04 · 1182 阅读 · 0 评论 -
Jmeter系列(65)- BeanShell 内置变量 ctx
前提BeanShell 有的内置变量,JSR223 也会有对应的变量,这里 JSR223 效率更高,所以以它为栗子简单介绍ctx 变量是JMeter JSR223功能最强大的内置变量之一 通过它可以轻松的访问当前线程的上下文 在JMeter 内部,ctx 映射为 org.apache.jmeter.threads 的 JMeterContext 类 由于JMeterContext 不具有线程安全性,故仅适用于在单线程中使用 官方文档:https://jmeter.apache....原创 2022-06-01 16:30:48 · 747 阅读 · 0 评论 -
Jmeter系列(63)- Beanshell 入门
Bean Shell 官方介绍BeanShell 是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法 BeanShell 是一种松散类型的脚本语言(这点和 JS 类似) BeanShell 是用 Java 写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器 jar 文件大小为175k BeanShell 执行标准 Java 语句和表达式,另外包括一些脚本命令和语法官网:http://www.BeanShell.org原创 2022-06-01 16:30:12 · 344 阅读 · 0 评论 -
Jmeter系列(62)- 详解 JSON 断言
简单介绍可以对 JSON 格式的响应内容进行断言JSON 断言JSON 断言界面介绍字段说明Assert JSON Path exists:需要断言的 JSON 表达式 Additionally assert value:如果要根据值去断言,请勾选 Match as regular expression:如果要根据正则表达式去断言,请勾选 Expected Value:期望值 Expect null:如果期望是 null 则勾选 Invert assertion原创 2022-05-26 21:05:07 · 2931 阅读 · 0 评论 -
Jmeter系列(61)- 详解断言持续时间
简单介绍约定响应时间,响应时间如果超出约定,则断言为失败断言持续时间断言持续时间界面介绍只需要填写预期的运行时间就行了结合事务控制器的栗子线程组结构树事务控制器结果树最终只生成一个事务 sampler断言持续时间查看结果树报告很友好,直接提示报错原因聚合报告通过聚合报告可以看到完整一个事务的完成时间是 798...原创 2022-05-26 21:04:58 · 539 阅读 · 0 评论 -
Jmeter系列(60)- 详解响应断言
简单介绍不仅可以对响应内容进行断言,还能对请求内容进行断言响应断言响应断言界面介绍Apply to有四个应用范围main sample and sub sample main sample only(默认) sub-sample only jmeter variable一般默认勾选 main sample only 就足够了,因为我们一个请求,实质上只有一个请求但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sam原创 2022-05-26 21:04:45 · 6931 阅读 · 0 评论 -
Jmeter系列(59)- 详解 while 控制器
简单介绍和 java 里面的 while 循环一样,将一直运行其所有子项,直到条件为 false 为止while 控制器while 控制器界面介绍condition 可以填入的值空白:节点下最后一个 sampler 失败,退出循环 LAST:节点下最后一个sampler失败,退出循环,如果这个失败的 sampler 在循环前就运行失败了,那么【While Controller】将不会执行 其它:当条件等于 false 时退出(或不进入)循环其它参考的值${.原创 2022-05-26 21:04:32 · 960 阅读 · 0 评论 -
Jmeter系列(58)- 详解 Switch Controller 开关控制器
简单介绍控制哪个子项将被执行,学过 java 的同学应该很清楚 switch 是做么该的Switch 控制器Switch 控制器界面介绍Switch value既可以是下标值,也可以是名称 如果是下标值,则从 0 开始 如果下标值超出范围,它将运行第 0 个元素,因此它是数字情况的默认值 如果下标值值是空字符串,它还将运行第零个元素 如果该值是非数字(非空),则 Switch 控制器将查找具有相同名称的子项(区分大小写) 如果两个名称都不匹配,则选择名为d.原创 2022-05-26 21:04:19 · 685 阅读 · 0 评论 -
Jmeter系列(57)- 详解 Random Controller 随机控制器
简单介绍当该控制器下有多个子项时,每次循环会随机执行其中一个实际应用支持我们在做容量测试的时候,随机分配业务比例,最大程度的模拟用户场景随机控制器随机控制器界面介绍Ignore sub-controller block(忽略子控制器模块):勾选后,随机控制器下的子控制器中的多个子项只会被执行一个(后面通过栗子验证)简单栗子线程组结构树循环控制器随机控制器查看结果树循环 3 次,每次会随机执行一个子项勾原创 2022-05-26 21:04:07 · 1110 阅读 · 0 评论 -
Jmeter系列(56)- 详解 Weighted Switch Controller 权重控制器
简单介绍它能分配其子项目(Child Item)的权重,从而控制子项的执行概率 它是一个插件,需要额外下载哦插件下载地址https://jmeter-plugins.org/权重控制器权重控制器界面介绍Random choice:勾选后,会随机选一个子项执行,不能保证子项执行的实际百分比等于预期值 Child Item Weights:只要添加到该控制器下的子项(取样器、逻辑控制器)都会显示在这里 weight:可以是任意数字,然后会按照比例去控制子项的.原创 2022-05-26 21:03:52 · 1535 阅读 · 0 评论 -
Jmeter系列(55)- 详解 Throughput Controller 吞吐量控制器
简单介绍自行调整该控制器下的子项的执行频率吞吐量控制器吞吐量控制器界面介绍有了两个模式percent execution:按照百分比来执行 total executions:按照次数来执行字段说明Throughput对于 percent execution:0-100,代表执行次数的百分比,比如填 50,代表一半迭代中执行 对于 total executions:代表执行的总次数Per User若勾选,每个线程会单独计算执行频率 若不勾选原创 2022-05-26 21:03:38 · 4881 阅读 · 0 评论 -
Jmeter系列(54)- 详解 Runtime Controller 运行周期控制器
简单介绍一种设置运行时间的控制器,它的效果就是使该控制器下的子项运行时间为【Runtime】中的数值(单位:s)Runtime ControllerRuntime Controller界面介绍Runtime:运行时长 和线程组的循环次数也有关系,如果是指定次数的话,总的运行时间 = 循环次数 * runtime 如果循环次数是永远,那么 Runtime 控制器下的子项也会永远运行线程组单次循环的栗子线程组结构树线程组属性聚合报告原创 2022-05-26 21:03:24 · 637 阅读 · 0 评论 -
Jmeter系列(53)- 详解简单控制器
简单介绍最基本的控制器,对 Jmeter 测试运行没有任何影响,可以将某些请求归集在一个简单控制器中,视为一个模块,使得脚本结构更清晰简单控制器简单栗子线程组结构树查看结果树...原创 2022-05-26 21:03:06 · 1008 阅读 · 0 评论 -
Jmeter系列(52)- 详解仅一次控制器
简单介绍在每个线程内,该控制器下的内容只会被执行一遍,无论循环多少次,都只执行一遍实际应用场景对于需要登录的测试,可以将登录请求放置在此控制器中,因为每个线程只需要登录一次即可建立会话仅一次控制器最简单的栗子线程组结构树线程组属性查看结果树仅在线程第一次循环会执行仅一次控制器里面的内容加上循环控制器的栗子线程组结构树线程组属性查看结果树仅在通过循环控制器的第一次迭代中执行控制器里面原创 2022-05-25 21:05:17 · 1337 阅读 · 0 评论 -
Jmeter系列(51)- 详解 Transaction Controller 事务控制器
简单介绍可以添加多个取样器(sampler),这样就把多个取样器当做一个完整的事务事务控制器事务控制器界面介绍Generate Parent Sample:如果选中,事务控制器将作为其他取样器的父级样本,否则事务控制器仅作为独立的样本 Include duration of timer and pre-post processors in generated sample:是否在生成的样本中包括计时器,预处理和后处理的延迟时间最简单的栗子(两项都不勾选)线程组原创 2022-05-25 21:05:03 · 1758 阅读 · 0 评论 -
Jmeter系列(50)- 详解 If 控制器
简单介绍可以通过条件来控制是否运行其下面的测试元件(子元素)If 控制器If 控制器界面介绍Expression (must evaluate to true or false) :表达式(值必须是 true 或 false ),也就是说,在右边文本框中输入的条件值必须是 true 或 false(默认情况下) Interpret Condition as Variable Expression?:默认勾选,将条件解释为变量表达式(需要使用 ${__jexl3} 或 .原创 2022-05-25 21:04:50 · 6123 阅读 · 0 评论 -
Jmeter系列(49)- 详解 HTTP Cookie 管理器
简单介绍功能一首先,它像网络浏览器一样存储和发送 cookie 如果有一个HTTP请求,并且响应包含 cookie,则 cookie 管理器会自动存储该 cookie,并将其用于后面对该特定网站的所有请求 cookie 管理自动存储的 cookie 不会出现在 Cookie Manager 的界面上,但是可以使用通过查看结果树看到它功能二JMeter 会检查收到的 Cookie 是否对该URL有效,这意味着不会存储跨域 Cookie 如果有错误的行为或希望使用跨域cookie,请定义原创 2022-05-25 21:04:31 · 7640 阅读 · 0 评论 -
Jmeter系列(48)- 详解 Random Variable 随机变量
简单介绍Random Variable 用于生成随机数字字符串并将其存储在变量中,以备后用相比 __Random 的优势__Random 函数也可以生成随机数字字符串,但如果要重复引用的话,需要结合用户自定义变量控件(User Defined Variables) 使用Random Variable 可以生成完随机数字字符串后存储在变量中,可以直接重复引用随机变量随机变量界面介绍字段介绍最简单的栗子线程组结构树有 3 个线程...原创 2022-05-25 21:04:17 · 2356 阅读 · 0 评论 -
Jmeter系列(47)- 针对需要登录的接口如何做性能测试?
前言在实际业务场景中,很多业务都需要先登录才能正常使用 在做接口性能测试的时候,需要测试登录后才能访问的接口肯定是无法避免的 那么,我们怎么才能完成先登录后发出请求的性能脚本呢思路发出登录请求 提取响应的认证内容 后面的请求引用认证内容提出问题做性能测试,是模拟多个虚拟用户实现并发的,那我们的登录接口也需要重复发起吗?可以类比一个场景做 UI 自动化的时候肯定也需要登录的,一般我们会将登录放到全局前置来操作,所以整个测试流程下来只需要登录一次关键点一个用户只需转载 2022-05-25 21:04:07 · 2738 阅读 · 0 评论 -
Jmeter系列(46)- Jmeter 中有哪些常用的函数
前言Jmeter 提供了很多函数 但我们一般只会用到部分的常用函数,所以重点讲解常用的函数 点击函数名即可跳转至对应的函数讲解文章了哦 还不可点击那就是还没更新(敬请期待...)字段 含义 __Random 生成随机数 __RandomDate 生成随机日期 __RandomString 生成随机字符串 __setProperty 设置属性 __property 读取属性 __P 读取属性 __V 拼接字符串 _转载 2022-05-25 21:03:52 · 276 阅读 · 0 评论 -
Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码
前言用过 Jmeter 的同学应该都知道,Jmeter 不支持跨线程传递参数 哎,那我想跨线程传递参数,要咋整呢?别急,接下来我们就来讲解如何不使用代码就可以解决此问题 官方也有正式说明,所以这并不是 Bug一定要通过 BeanShell 去跨线程组传递参数吗?通过百度搜索:Jmeter 跨线程组传递参数 会看到很多文章都是通过 BeanShell 写代码去实现的 这对于代码小白极其不友好! 所以这篇文章将教会大家如何不需要写代码去实现跨线程传递参数!定义属性法思路.原创 2022-05-25 21:03:34 · 1249 阅读 · 0 评论 -
Jmeter系列(44)- 详解 Elapsed time、Latency、Connect Time的含义
前言在 Jmeter 中一些专业名词我们是需要提前认知的,如下Elapsed time Latency Connect Time=======>>>> 点击右侧即可跳转对应详解哦Elapsed time从发送请求到收到最后一个响应,所花费的时间 不包括渲染请求所花费的时间,同时也不包括处理客户端脚本所花费的时间JMeter measures the elapsed time from just before sending the request t原创 2022-05-25 21:02:51 · 1480 阅读 · 0 评论 -
Jmeter系列(42-43)- 详解 Jmeter 图形化 HTML 压测报告
生成 HTML 报告的两种方式前言需要了解 Jmeter CLI 模式的命令哦https://www.cnblogs.com/poloyy/p/13227149.html利用已有的 .jtl 文件生成 html 报告jmeter -g report.jtl -o report-g 指定.jtl文件 -o 指定报告生成的文件夹 将.jtl文件转换为.html文件,并保存到report文件夹中 切记:report.jtl必须存在, report 目录...原创 2022-05-25 21:02:39 · 1685 阅读 · 0 评论 -
Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成
Window 环境准备安装 ant:安装 jenkins:Jenkins 配置 Ant进入插件管理安装 ant 插件进入Global Tool Configuration,安装 Ant默认会读取 ANT_HOME 环境变量设置好的 ANT 安装路径本机配置 ant修改 jmeter.properties修改成jmeter.save.saveservice.output_format=xml为了后面生成 html 报...转载 2022-05-23 11:27:22 · 472 阅读 · 0 评论 -
Jmeter系列(40)- 详解 Jmeter CLI 模式
什么是 CLI 模式CLI = Command Line,命令行模式,我们常说的 NON GUI 模式,无界面模式 真正做负载测试时,应该使用 CLI 模式运行,而不是 GUI启动 Jmeter GUI 时的提示使用 jmeter.bat 运行时会有一个 cmd 窗口官方也说了负载测试不要用 GUI 模式,GUI模式仅用于创建测试计划和调试脚本增加 Java 堆空间来满足你的测试环境(后面再讲解)用 CLI 模式的好处将系统大部分资CLI 模式可选参数原创 2022-05-23 11:26:25 · 1410 阅读 · 0 评论 -
Jmeter系列(39)- Jmeter 分布式测试
为什么要做分布式Jmeter 本身的局限性一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿、无响应等情况,这是受限于 Jmeter 其本身的机制和硬件配置(内存、CPU等) 由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现 JAVA 内存溢出的错误,导致测试脚本本身就有瓶颈JVM 堆内存的局限性Java 应用的 jvm 堆内存 heap 受压力机硬件限制,虽然我们可以调整原创 2022-05-23 11:25:59 · 1139 阅读 · 0 评论 -
Jmeter系列(38)- 详解性能监控工具 nmon
前言做性能测试,服务器监控是至关重要的,前面也讲了通过 ServerAgent 去监控服务器 这一篇博文将详细讲解 nmon 监控工具nmon 官方介绍nmon是一种在 AIX 与各种 Linux 操作系统上广泛使用的监控与分析工具 它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面 它可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用excel分析工具(nmon analyser)进行数据的统计分析nmon 可监控的数据类型CPU使用率 ..原创 2022-05-23 11:25:30 · 3070 阅读 · 0 评论 -
Jmeter系列(37)- 详解 ForEach控制器
前言ForEach 控制器一般和用户自定义变量/JDBC结果变量一起使用,用于可以遍历读取相关的返回值 该控制器下的 Samplers 和控制器都会被执行一次或多次,每次读取不同的变量值 ForEach 控制器和正则提取器是个好搭档,因为正则提取出来的变量值会用_分隔,而 ForEach 可以省略_ForEachForEach 界面介绍字段含义字段 含义 Input Variable Prefix 输入变量名的前缀,默认为一个空字符串作为前缀。..原创 2022-05-23 11:24:46 · 813 阅读 · 0 评论 -
Jmeter系列(36)- 详解 Loop Controller 循环控制器
前言这应该是最简单的控制器了,我们快速过一遍线程组结构树线程属性循环控制器就一个需要了解的字段:循环次数,可以填具体的次数,也可以勾选永远 如果勾了永远,即使线程组的循环次数设置了次数,也会一直循环 这里填了 5 次,线程数 = 5,所以总共发出去的请求为 5 * 5 = 25运行结果...原创 2022-05-23 11:24:19 · 1555 阅读 · 0 评论 -
Jmeter系列(34)- 详解 Counter 计数器
简单介绍计数器的作用:循环递增生成数字 计数器使用 long 来存储值,因此取值范围是-2 ^ 63到2 ^ 63-1 可以在线程组任意地方添加计数器计数器计数器界面介绍字段介绍字段 含义 Starting value 初始值,long 整型,默认 0 Increment 每次迭代的递增值,默认 0,表示不增加 Maximum value 最大值,包含此值 Number format 数字可选格式 Expor...原创 2022-05-23 11:13:48 · 1281 阅读 · 0 评论