中文旅游网站模板下载,宁波市江北区建设局网站,做网站需要有公司吗,网站名称更改需要多久软件测试 —— jmeter#xff08;2#xff09; HTTP默认请求头#xff08;元件#xff09;元件作用域和取样器作用域HTTP Cookie管理器同步定时器jmeter插件梯度压测线程组#xff08;Stepping Thread Group#xff09;参数解析总结 Response Times over TimeActive Thre… 软件测试 —— jmeter2 HTTP默认请求头元件元件作用域和取样器作用域HTTP Cookie管理器同步定时器jmeter插件梯度压测线程组Stepping Thread Group参数解析总结 Response Times over TimeActive Threads Over time聚合报告测试报告性能分析响应时间错误率可靠性吞吐量 上一次我们简单介绍了一下jmeter和简单使用了一下jmeter今天我们继续介绍一下jmeter中的其他插件
HTTP默认请求头元件
我们之前创建了一个HTTP请求我们的手动输入信息 如果我们有很多的HTTP请求每一个我们都要手动输入的话那就太麻烦了所以我们可以默认配置HTTP的默认请求
在测试计划上右击 里面填上相应的信息 这个时候我们可以把原来HTTP请求中信息抹掉 这个时候点击运行 并且我再添加HTTP请求都是会按照我们默认请求值里面的信息配置
元件作用域和取样器作用域
如果我们此时再创建一个线程组添加HTTP请求 这个时候HTTP请求3会报错 我们发现HTTP请求3没有按照之前的配置填入信息但此时我把HTTP请求默认值给它拉到外面 此时请求通过了这就说明我们改变了HTTP请求默认值元件的作用范围。 这就要谈到元件和取样器的作用范围了 元件作用域只对它的子节点有作用 取样器(sampler)元件内组件不依赖其他元件就可执行因此取样器不存在作用问题
HTTP Cookie管理器
我们还有另外一个元件HTTP Cookie管理器 HTTP Cookie管理器像Web浏览器⼀样存储和发送Cookie。如果HTTP请求并且响应包含cookie,则Cookie管理器会⾃动存储该cookie,并将其用来于将来对该特定网站的所有请求。每个JMeter线程都有自己的cookie存储区。因此正在测试使用cookie存储会话信息的⽹站,则每个JMeter线程都将拥有自己的会话。此类Cookie不会显⽰在Cookie管理器显⽰屏上,可以使⽤查看结果树监听器查看。
缓存配置可选择standard(标准)或compatibility(兼容的),当然也可以手工添加⼀些cookie.添加了HTTP Cookie管理器后会自动存储并发送Cookie。
同步定时器
我们看到右上角的黄色三角形符号 点击之后会进入到界面这个时候我们再次运行 我们就可以看到各个线程的执行情况我们看到所有的线程并不是同一时间准备好的这样我们无法模拟并发的场景这个时候我们要添加同步计时器
模拟用户组的数量和线程组的数量是一致的。这里注意一下配置好之后放到全局范围我们再来看 我们发现两个线程组是同时启动的这样就可以模拟并发场景了。
jmeter插件
如果我们还想要安装其他的插件我们就要安装一下小蝴蝶 点击这个跳到对应官网 https://jmeter-plugins.org/install/Install/ 下载好了之后把插件移动到lib下的ext下 关闭jmeter之后再次打开右上角就会多了一个小蝴蝶的标志 点击进去就可以搜索下载对应的插件 我们先安装一个线程组的插件 点击下方的Apply就会安装好了重启之后我们右击查看关于线程组的元件多了两个 然后我们安装一下extra帮助我们看到结果
梯度压测线程组Stepping Thread Group
右击添加梯度压测线程组Stepping Thread Group 我们来解释一下这几个参数是啥意思 这张图显示了JMeter中线程组Thread Group的调度参数配置。以下是各个参数的详细解析
参数解析 This group will start [number] threads: 设置为 100表示这个线程组将启动100个虚拟用户threads。 First, wait for [number] seconds: 设置为 0表示在启动任何线程之前等待0秒。这意味着线程会立即开始执行。 Then start [number] threads: 设置为 0表示在等待时间结束后立即启动0个线程。这里设置为0意味着不会立即启动任何线程。 Next, add [number] threads every [number] seconds, using ramp-up [number] seconds: 设置为 20 threads every 3 seconds, using ramp-up 3 seconds 表示每3秒增加20个线程并且每个线程的启动间隔为3秒。例如在第3秒时启动第一个线程在第6秒时启动第二个线程以此类推直到所有20个线程都启动完毕。 Then hold load for [number] seconds: 设置为 6表示在所有线程启动后保持负载即所有线程都在运行6秒。 Finally, stop [number] threads every [number] seconds: 设置为 20 threads every 10 seconds表示在保持负载6秒后每10秒停止20个线程。例如在第7秒时停止前20个线程在第17秒时停止接下来的20个线程以此类推直到所有线程都停止。 总结 初始阶段立即启动0个线程。每3秒增加20个线程每个线程的启动间隔为3秒。 负载保持阶段在所有线程启动后保持负载6秒。 停止阶段每10秒停止20个线程直到所有线程都停止。 为了能够看到启动了梯度压测线程组的变化我们也得添加一些监听器
Response Times over Time
右击添加Response Times over Time 这样我们在启动的时候就会在这上面看到实际的情况记得往线程组中添加请求
Active Threads Over time
我们还可以添加Active Threads Over time来查看线程的活动情况
聚合报告
从聚合报告可以看到性能测试过程中整体的数据变化
指标说明Samples发起的 HTTP 请求调用数Average平均响应时间单位为毫秒Median请求调用响应时间的中间值也就是 50% 请求调用的响应时间单位为毫秒90%Line90% 请求调用的响应时间单位为毫秒95%Line95% 请求调用的响应时间单位为毫秒99%Line99% 请求调用的响应时间单位为毫秒Min请求调用的最小响应时间单位为毫秒Max请求调用的最大响应时间单位为毫秒Error%调用失败的请求占比。调用失败一般指响应断言失败或者请求调用出错ThroughputTPS/QPS每秒处理的事务数KB/sec每秒网络传输的流量大小单位为 KB。这个指标是以网络传输的大小来衡量网络的吞吐量
测试报告
JMeter测试报告是⼀个全面而详细的文档它提供了关于测试执行结果的详细信息帮助用户全面评估系统的性能并进行性能优化。
生成性能测试报告的命令
Jmeter -n -t 脚本文件 -l 日志文件 -e -o ⽬录
-n 无图形化运⾏
-t 被运行的脚本
-l 将运行信息写入志文件后缀为jtl的日志文件
-e 生成测试报告
-o 指定报告输出目录执行成功之后会有对应的报告文件
性能分析
通过三大指标来分析性能问题
响应时间
定义响应时间是指从客户端发出请求到接收到服务器响应的整个过程所需的时间。
瓶颈指示如果响应时间超过了要求这可能意味着系统已经到达了其处理能力的极限或存在其他性能瓶颈。
注意事项 分析在多少线程的情况下发生了响应时间超标的情况。注意响应时间的变化趋势以确定是否存在系统不稳定的问题。 响应时间变化的原因 系统不稳定系统有时快有时慢可能是由于资源竞争、负载不均等因素导致。并发压力增大随着并发用户的增加响应时间可能会逐渐变长表明系统在高负载下的性能下降。 错误率可靠性
定义错误率衡量的是系统在高并发场景下能否正常处理业务请求的能力。通常要求达到极高的可靠性标准如99.99%或更高。
错误率高的原因 接口请求错误API调用失败可能是由于参数错误、网络问题等。服务器无法继续处理当服务器达到其处理极限时可能导致错误率上升。这可能是由于代码质量问题、内存泄漏或其他硬件资源限制。后端系统限流、熔断、降级为了保护系统的稳定性可能会对某些服务实施限流措施或者在检测到异常时采取熔断和降级策略。 什么是熔断、降级 熔断防止系统因某个服务的故障而整体崩溃。例如在电商平台上用户支付时若发现某支付渠道如微信支付失败率突增或超时严重可以临时将该支付方式熔断即停止使用这一渠道以保护系统的其余部分。 降级主动关闭一些非核心功能确保核心功能的正常运行。例如腾讯视频在出现问题时用户名默认显示为“腾讯用户”这是一种降级方式使用兜底名称进行展示以保证基本服务的可用性。 吞吐量
定义吞吐量指的是单位时间内系统能够处理的请求数量。一般而言吞吐量越大性能越好。
吞吐量变化规律 波动很大这代表系统性能不稳定可能存在资源分配不合理等问题。慢慢变高再趋于稳定这种模式通常与并发量强相关。随着并发量从小到大逐渐增加吞吐量也会相应增长直到达到一个稳定的水平。慢慢变低并发量也减少了这可能是性能测试接近尾声人为减少并发量的结果但也可能是系统变得卡顿响应时间变慢从而导致单个线程发起的并发量减少。