Jmeter TCP和Http性能测试_01
一:需求分析
(1) 云平台可支持2000个网关设备每隔1s主动上报数据并附带每隔10s上报心跳(通过TCP协议)和2000个在线用户对云平台Web页面给进行增删改查操作(通过Http协议)。
(2) web前端响应时间不超过5s。
(3) 持续12h云平台无异常。
二:测试策略
(1) 因为是多并发的场景,所以这里我们借助Jmeter(免费)和Java脚本来进行测试。
(2) 用户并发数量上千,建议采用Jmeter分布式的环境部署。
三:测试方法
(1) 这里我们使用负载压力测试的方法,通过给云平台慢慢的增加压力,看看云平台所能承受的最大负载。
(2) 负载压力测试一般都需要结合特定的场景,我们这里设定的场景是2000个网关上报报文给云平台(通过TCP协议)和2000个用户对云平台Web页面给进行增删改查操作(通过Http协议)。
四:环境部署
我们这里采用Jmeter分布式的环境部署,1台机器既当控制机又当客户机,3台机器当客户机,这样每个客户端最大只需要负载500个线程。具体怎么部署大家可以网上搜索就不再这里赘述了。
五:编写脚本
为了方便演示,我这里使用2个用户,每个用户下有1个传感器(TCP方式给云平台上报数据和心跳)、1个执行器(Http方式给云平台下发指令0关闭或1开启)
(1)创建线程组
(2)CSV文件数据配置
CSV文件的数据(文件要设置成UTF-8格式)
(3)Http请求头管理
(4) 网关设备与云平台建立连接
(5) 提取响应的状态
(6) 判断连接是否成功建立,如果成功建立的话执行之后的操作
(7)创建循环控制,使其一直上报数据
(8) 传感器上报的数据是随机的
(9)上报数据
(10)设置定时器,每隔1s上报一次数据
(11)从1-10开始计数,次数大于10时从1开始重新计数。
(11)当计数大于等于10时,执行http请求操作(关或开操作)
(12)http下发命令请求(0或1)
(13)心跳上报(也是每隔10s上报一次)
(14)断言
(15)响应信息
16.查看报告
六:报告分析
后续…
七:瓶颈的定位及性能调优
后续…