从传统性能测试转向云压测保障高并发,用云压力测试工具如何完成测试任务

知梧 442 2023-06-12

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

本文关于企业必须从传统性能测试转向云压测保障高并发,用云压力测试工具如何完成测试任务。

近几年,中国互联网实现了超高速的发展。阿里巴巴双十一每秒钟最高要处理28万个订单,国内很多直播平台的并发在线人数已经突破1000万,甚至很多在线教育平台的并发访问量都突破了百万的数量级。如果企业的IT系统扛不住这些流量的冲击,就会带来无法估量的损失。所以越来越多的中大型企业开始意识到,保障系统能够承担高并发请求,为用户提供优质的服务体验,已经成为企业最为核心的竞争因素。来自谷歌的调研数据表明,如果网站打开慢每500毫秒,用户访问量可能下降20%。如果企业不幸发生宕机事件,甚至会造成数以亿计的经济损失。但是,我们也必须认识到,整个IT系统涉及的层面非常之大,网络层、服务器资源、操作系统、应用和很多组件的异常都可能导致性能问题。那么如何才能迅速定位到造成这些故障的根本原因呢?性能测试,就是找到异常原因的一个最佳途径。

性能测试的重要性传统的性能测试,是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。在互联网发展的早期,这种模式几乎能够满足大多数企业的需求,但是移动互联网时代,整个IT基础设施已经变得更加复杂,而且对系统的稳定性提出了更高的要求,传统性能测试已经有点「捉襟见肘」了。传统性能测试在当前应用环境下的短板现在很多中大型互联网公司的业务量急剧上升,很多用户已经突破千万,网站动辄十几万甚至百万的访问量,这就导致整个IT系统的架构愈发复杂,很多公司的分布式CDN节点已经超过4000个,用户的对外服务带宽突破10Gbps。在这种背景下,如果还使用传统的性能测试方式,已经远远达不到企业发展的需求。而且传统压测的人力成本、资源成本、时间成本、费用成本十分高昂。此外,市场上现有的Loadrunner、Jmeter等工具操作复杂,学习成本非常之高,测试人员不易掌握。而且某些并发的测试工具license授权费用超过百万,令绝大多数企业望而却步。很多企业也想开发自己的开源性能测试软件,但是搭建超过10000的用户并发系统,需要做大量的应用代码改造。而且整个过程往往需要数月之久,还需要大量的人力成本,风险极高,一般只适合阿里巴巴、腾讯、美团这样大型互联网公司。

云压测产品横空而出2005年「云压测」概念被提出,伴随云计算技术快速发展,使用云资源实现弹性、可扩展、自由伸缩分布式压力产生模式横空出世。特别是近几年,随着Saas概念的普及与发展,以Soasta、OneCPT为代表的云压测产品已经成为传统测试行业最为强劲的对手。云测试是利用云端的资源一站式完成性能测试,用户无需再购买包括服务器、机房在内的多种资源,从而能够节省大量的资源成本和人力成本。在Gartner的测试工具魔力象限中,Soasta与众多传统测试工具厂商已经开始并驾齐驱。而One CPT云压测平台,也是目前国内目前屈指可数的、唯一可以与Soasta对标的云压测厂商。

为什么越来越多的企业开始使用云压测?相较于传统的性能测试方案,云压测具备以下4个方面的优势:简单易用:云压测的脚本3分钟就可以生成,因为测试资源全部部署在云端,可以实现秒级启动,同时能够实现测试数据的秒级回传。规模化部署:绝大多数云压测厂商的测试节点都能够覆盖全球,实现基于位置的按需定制,像OneAPM CPT还可以实现全链路真实节点,达到千万级的并发请求。全栈监控:云压测产品都是基于分布式的云计算服务,能够基于位置快速进行响应,还能够实现同步监控数据回溯,达到全栈监控数据采集,全面覆盖网络层、服务器层、操作系统层以及应用层。性价比较高:这也是最重要的一点,SaaS服务天然具备灵活的优势,云压测产品都可以按需计费,也不需要硬件部署,很容易实现一体化测试管理服务,而且团队之间也可以实现编组协同,大大提升工作效率。其实早在2012年,伦敦奥组委就已经成为全球首个云压测最大的用户,截止到2013年,全球已经有上万家企业开始广泛使用云压测。不过因为多种原因,直到2014年,云压测概念才开始在中国落地,阿里云虽然在国内最早使用了云压测技术,但是无法支持本地化部署。2015年OneCPT云压测平台发布一经发布,很快就获得市场和资本的青睐。一方面是OneAPM经过8年的技术沉淀与积累,产品和技术层面遥遥领先于对手;另一方面,OneCPT支持本地化部署,而且实现了全链路数据测试,真正能够帮助企业带来非常「直观」的价值。

电商巨头亚马逊曾经做过一份数据调研,如果电商网站的速度每下降100毫秒,营业额将减少1%。其实无论是电商网站,还是转型中的传统企业,亦或是高速成长的中小企业,IT系统所承担的角色已经愈发重要,而网站和系统的稳定性、高可用性、高并发都是衡量一个IT基础设施最为重要的几项因素。现在,很多企业的业务发展较快,用户访问量可能瞬时变大,如果系统无法处理较短时间内的大量用户涌入,就会造成宕机。此外,如果数据库连接数到达上限,用户请求无法及时处理,也会给企业发展造成无法估量的损失。在这种背景下,越来越多的企业开始重视性能测试,必须将各种潜在的性能问题,提前扼杀在摇篮中。


用云压力测试工具,如何完成一次测试任务

Cloud Performance Test 云压力测试平台(以下简称:CPT)可以提供一站式全链路云压力测试服务,通过分布式压力负载机,快速搭建系统高并发运行场景,按需模拟千万级用户实时访问,并结合系统资源状态,评估系统承载能力,快速定位系统性能瓶颈。而测试任务是云压力测试平台的重要组成部分,脚本调试成功后,用户可以在测试任务页面选择压测脚本、编辑用户曲线、选择压测节点,保存后可以执行任务查看压测结果。

需要工具:进入睿象云官网,注册账户信息,找到“Cloud Performance Test 云压力测试平台”即可开始进行一次云压力测试之旅。

image.png

测试任务页面包含6个主要区域:01-测试任务新建、选择区,02-测试脚本选择区,03-用户曲线编辑区,04-压测节点选择区,05-压测节点编辑区,06-监测主机选择区,07-运行设置,08-任务执行;

image.png

测试任务新建、选择区

· 通过点击测试任务右侧的 new 或者 + 按钮,创建测试任务

image.png

测试脚本选择区

· 测试脚本选择区,显示脚本列表,右上角展示 已选择脚本数量/可选择脚本数量 ;

· 选择脚本后,可以点击 平均分配 按钮,平均分配脚本比例,也可以手动输入脚本比例;

· 脚本比例之和必须等于【100%】,否则无法保存测试任务。

image.png

用户曲线编辑区

用户曲线编辑区分为三个部分:第一部分是用户爬升区;第二部分是用户平台区,第三部分是用户下降区。

· 第一部分爬升区默认无法清除,系统根据用户数量和执行时间自动按照均分模式加载测试用户;

· 第二部分平台区用户需要与爬升区的最大用户数量相同,用户可根据实际测试需求自行设置执行时间,默认平台区执行时间为3分钟;

· 第三部分用户下降区,虚拟用户默认值为“0”不可修改,测试用户会根据实际退出时间自动计算退出当前全部测试用户。

· 虚拟用户目前只支持一段式和三段式模式,一段式:只有爬升区;三段式:爬升区+平台区+下降区

image.png

压测节点选择区

在压测节点选择区,可以在地图中点击选择需要发起测试的区域,其中深蓝色的区域为可选区域,选择后在右侧压测节点编辑区列表中自动添加已选择的压测节点;

image.png

压测节点编辑区

在压测节点选择区选择节点后,压测节点编辑区自动添加压测节点,添加后区域比例默认平均分配,如对区域比例有特殊需求,可以手动编辑区域比例。

· 区域比例之和必须等于【100%】,否则无法保存和执行测试任务。

image.png

监控主机选择区

监控主机列表会显示当前用户组下已经在服务端安装了 CPT-Monitor 服务组件的IP地址,测试过程中如果有监测被测服务资源的需求时只需开启监控按钮即可在任务执行过程中自动记录硬件资源类信息。

image.png

运行设置

运行设置可以设置:全局设置、域名解析设置、HTTP设置、Socket设置、WebSocket设置、MQTT设置、运行时错误设置共7项内容;

image.png

· 全局设置:

刷新频率: 执行任务过程中,曲线图数据刷新的频率,自定义时间可以输入5-30之间的整数;

监控粒度-事务: 执行任务后在指标统计中只能查看事务的执行数据;

监控粒度-组: 执行任务后在指标统计中可以查看事务和组的执行数据;

思考时间-开启: 脚本中设置的思考时间全部生效;

思考时间-关闭: 脚本中设置的思考时间全部失效不执行;

超时设置-按脚本内设置生效: 任务执行中的超时时间按照脚本中的配置执行;

超时设置-按场景全局参数设置生效: 任务执行过程中的超时时间按照当前任务界面的配置执行.

· 域名解析设置:

测试脚本中的域名全部按照该界面中替换的IP地址访问执行

· HTTP设置:

HTTP版本:根据被测系统选择对应的http版本,默认为http1.1;

HTTP连接状态: 根据被测系统选择对应的http连接状态,默认为短连接;

HTTP连接超时时间: 执行任务过程中连接服务器时间超过选择的时间,即判定为连接超时,默认3秒;

HTTP响应超时时间: 执行任务过程中选择时间内未收到服务器返回的请求,即判定为响应超时,默认3秒;

HTTP步骤超时时间: 执行任务过程中,单请求步骤选择时间内未连接/接收请求,即判定为超时,默认3秒.

· Socket设置:

Socket连接超时时间: 执行任务过程中连接服务器时间超过选择的时间,即判定为连接超时,默认3秒;

Socket发送超时:执行任务过程中选择时间内未收到服务器连接回复,即判定为发送超时,默认3秒;

Socket接收超时: 执行任务过程中选择时间内未收到服务器返回的数据,即判定为接收超时,默认3秒;

Socket步骤超时时间: 执行任务过程中,单请求步骤选择时间内未连接/接收请求,即判定为超时,默认3秒.

· Websocket设置:

Websocket连接超时时间: 执行任务过程中连接服务器时间超过选择的时间,即判定为连接超时,默认3秒;

Websocket请求超时: 执行任务过程中选择时间内未收到服务器连接回复,即判定为发送超时,默认3秒;

Websocket步骤超时时间: 执行任务过程中,单请求步骤选择时间内未连接/接收请求,即判定为超时,默认3秒;

主动心跳: 长时间无交互时自动检查,勾选后自动收发检查连接状态.

· MQTT设置:

心跳间隔: 以秒为单位,定义服务器端从客户端接收消息的最大时间间隔,默认3秒。应用服务会在业务层次检测客户端网络是否连接,不是TCP/IP协议层面的心跳机制(如开启SOCKET的SO_KEEPALIVE选项)。在一个心跳间隔内,客户端发送一个PINGREQ消息到服务器,服务器返回PINGRESP消息,完成一次心跳交互,结束后等待下一轮;

MQTT连接超时时间: 执行任务过程中连接服务器时间超过选择的时间,即判定为连接超时,默认3秒;

MQTT请求超时: 执行任务过程中选择时间内未收到服务器连接回复,即判定为请求超时,默认3秒;

MQTT步骤超时时间: 执行任务过程中,单请求步骤选择时间内未连接/接收请求,即判定为超时,默认3秒.

· 运行时错误设置:

错误统计-开启:开启状态下,所有类型请求出现错误时全部统计为错误;

错误统计-关闭: 关闭状态下主请求、post请求出现错误时统计为错误,元素类请求出现错误时统计为告警;

错误处理-持续运行: 虚拟用户执行过程中出现错误时,该用户继续执行后续操作直到本次脚本执行完成;

错误处理-停止运行: 虚拟用户执行过程中出现错误时,立刻停止该用户的全部后续操作终止运行;

错误处理-重新迭代: 虚拟用户执行过程中出现错误时,该用户重新回归到起点开始执行新一次操作.

任务执行

测试任务无论有任何内容做了修改都需要点击 保存 按钮,保存后可以点击 立即执行 和 定时执行 ;

点击 立即执行 ,执行过程中在CPT压力节点区域分布界面出现滚动条,滚动条执行到100%页面会自动跳转到报告界面,如果出现执行任务失败任务会自动停止;

image.png

以上就是小编为大家整理的从传统性能测试转向云压测保障高并发,用云压力测试工具如何完成测试任务的相关内容。

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)睿象云软件分析、比较及推荐


上一篇:性能测试能力提升-全链路压测,实施全链路压测的关键点有哪些?
下一篇:负载测试是什么?浅谈一下性能测试、压力测试和负载测试
相关文章

 发表评论

暂时没有评论,来抢沙发吧~