需求
下面有3个场景,思考一下在jmeter里面如何设计
场景1:有一个项目,500用户同时登录,响应时间能达到多少
场景2:考勤打卡,最大吞吐量能达到多少(每秒最大能完成多少笔打卡业务)
场景3:银行业务,如果需要支持1分钟内完成3000笔取款操作,平均每秒能支持多少用户同时取款完成
压力模式
性能测试中的压力模式有两种。
第一种是并发用户模式(虚拟用户模式)
并发用户是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。从客户
端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目
标并发,也就是 jmeter 里面的线程数。
第二种是RPS 模式(吞吐量模式)
RPS(Requests Per Second)是指每秒请求数。RPS 模式即“吞吐量模式”,通过设置
每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力。
场景设计
场景一分析
场景一就是典型的并发用户模式。
我们在用jmeter设计第一种场景的时候,可以用线程数去模拟并发用户。如下图
设置500线程去模拟500用户;一次迭代表示每个线程的请求只发起一次;集合点500表示这500线程将在同一时间发起请求
场景二分析
场景二就是典型的吞吐量模式了。
为什么要设计这种模式呢?因为我们通常谈到压力都是从客户端去考虑的,也就是先知道并发用户数有多少,然后再去发起压力。但是如果不知道并发数的话,我们是不是就没有办法去测试了?所以后来从阿里衍生出了一个RPS模式,就是绕过并发数的计算,直接通过吞吐量去直接衡量服务端的性能。吞吐量是衡量系统性能的唯一标准
设计第二种场景的时候,我们就需要考虑吞吐量了。我们一般通过负载测试来找到吞吐量的拐点。
负载测试:持续稳定地增加系统的负载,测试系统性能的变化,找出系统瓶颈和性能拐点
如果用rps压力模式的话,这里所谓的增加系统负载,就是指的增加每秒请求数。如下图rps定时器
下图表示我在60s内将rps稳定的加到400/s
下图表示监听到的tps数据
场景三分析
场景三其实也是一种吞吐量模式,但是这里的吞吐量不再是完成的请求数,而是完成的业务数,或者叫事物
业务时间
支撑1分钟内的3000笔取款操作,这里的意思就是1分钟内完成3000笔取款的业务。怎么才算完成业务呢?事实上我们一笔取款机取款业务的完成时间需要从打开页面发起请求开始计算,到响应完成,然后取款机给出结果让用户看到为止,中间还要包括思考时间。所以单笔取款业务时间=浏览器渲染时间+连接时间+思考时间+服务处理时间
平均并发数
我们知道了一分钟完成3000笔业务的需求,业务时间也可以计算出来。那么平均并发数是什么意思?这里的平均并发数指的是平均每秒有多少用户同时取款完成,才能达到这个一分钟3000的业务量。假设我的服务处理+浏览器渲染时间是2s,思考时间是8s。计算平均并发数的公式如下:
平均并发=(单笔业务时间*业务总量)/业务时间= (10 X 3000)/60=500/s
也就是说,平均每秒有500个用户取款,能达到我的预期业务量场景设计如下图
需求下面有3个场景,思考一下在jmeter里面如何设计场景1:有一个项目,500用户同时登录,响应时间能达到多少场景2:考勤打卡,最大吞吐量能达到多少(每秒最大能完成多少笔打卡业务)场景3:银行业务,如果需要支持1分钟内完成3000笔取款操作,平均每秒能支持多少用户同时取款完成压力模式性能测试中的压力模式有两种。第一种是并发用户模式(虚拟用户模式)并发用户是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用
并发
数
,
线程
数
,吞吐量,每秒事务
数
(TPS)都是性能测试领域非常关键的
数据
和指标。
那么他们之间究竟是怎样的一个对应关系和内在联系?
测试时,我们经常容易将
线程
数
等同于表述为
并发
数
,这一表述正确吗?
本文就将对性能领域的这些关键概念做一次探讨。
文章可能会比较长,希望您保持耐心看完。
1. 走进开封菜,了解性能
①老王开了家餐厅
我们的主角老王,在M市投资新开业了一家,前来用餐的顾...
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
1. 关于
线程
组参
数
线程
组:即一个
线程
组实例里面包括多个串行的请求或动作。一个
线程
组的从启动到结束的时间取决于你
线程
中的步骤
数
量。
线程
数
:即用户
数
,在Ramp-up时间内(包括循环),简单把
线程
数
理解为
并发
数
其实不是很准确,理解为同时在线用户
数
更好。
Ramp-up
同一时刻 100 个同学去访问学生管理系统的查询所有学院信息功能,统计高
并发
情况下平均响应时间以及错误率(高
并发
)
1、搭框架,测试计划,
线程
组,取样器,结果树(局限性),指定
线程
组的
线程
数
属性值为 100
2、添加定时器 synchronizing timer(集合点组件)
3、运行并查看结果查看:聚合报告组件,可以对结果汇总分析
1、添加
线程
组,
线程
数
设置100:
1. 在
JMeter
安装目录bin文件夹下打开工具(安装方法见本人另外一篇博客http://blog.csdn.net/isnameq/article/details/77440424),如下图
2. 新建一个
线程
组
3. 新建一个HTTP请求,这里给这个请求重命名为getCarType,设置Http请求的IP、端口、路径
测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。测试任务开始前,检查各项测试资源。
–产品功能需求文档;
–产品原型图;
–产品效果图;
–行为统计分析定义文档;
–测试设备(ios3.1.3-ios5.0.1;Android1.6-Android4.0;Winphone7.1及以上;Symbian v3/v5/Nokia Belle等);
–其他。1)测试人员每天需对所测项目发送测试日报。
线程
组A为登录操作,只需要登录一次,登录后进行新建操作,需要
并发
,这样,新建操作需要放在新的
线程
组B中,而新建又要用到登录后得到的token,所以就存在A中登录接口返回的token值传给编程组B的情况。
解决方案:
在
线程
组A内,将token变量使用“__setProperty”函
数
设置成
jmeter
的全局变量,在另一个
线程
组中通过"__property"/"__P"函
数
调用。
Concurrency Thread Group提供了用于配置多个
线程
计划的简化方法
该
线程
组目的是为了保持
并发
水平,意味着如果
并发
线程
不够,则在运行
线程
中启动额外的
线程
和StandardThread Group不同,它不会预先创建所有
线程
,因此不会使用额外的内存
对于上篇讲到的Stepping Thread Group来说,Concurrency Thread Group是个更好的选择,因为它允许
线程
优雅地完成其工作
Concurren.
报错 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated
29693
报错 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated
Black_hairy:
jmeter 的线程数与压力模式
m0_69382521:
charles安装证书并信任证书,仍然无法获取手机上的请求
亚索不会吹风: