通知:即日起,禁止携带Note 7登机,且不得作为航空货物托运或承运
06-17
压测工具/平台有哪些?压力测试,即压力测试,是对各种服务对象进行压力测试,获取服务达到或超过预期负载时系统的运行情况,进而确定系统在峰值负载或超过预期负载下的处理能力。最大负载。
压力测试工具,顾名思义,就是用来进行压力测试的工具。常用的工具有ab、jmeter、LoadRunner、wrk等。
由于整个压测过程中存在以下问题: 时间成本:每次测试都需要新的生产环境,成本太高,而且几乎每个环节都需要人工支持 数据成本:脚本、测试数据、压测机器、测试报告无法累积风险成本:测试用例较多,生产压测缺乏平台流程管理,人工执行非常容易出错。自动化问题:自动化性能基线没有统一平台支持,测试过程依赖人工监控,覆盖不全面,问题定位困难。
为了解决上述问题,更好地满足自身/用户的压测需求,很多公司在开源压测工具的基础上进行了二次开发,集成了压测流程控制、压测任务管理和自动化等功能。绩效基线。
集成在一起形成一个可以支持各种个性化压测需求的分布式业务系统,即压测平台。这篇文章主要讲什么?用户在选择压测平台时,普遍关心几个问题。
一是压力能否稳定提升以满足用户需求;第二,进行压测的成本有多高,比如运营成本、学习成本、资源成本等;有些用户可能还对报表输出有要求。也就是说,当谈到压力测试平台时,我们最关心的两个问题是:这个工具/平台能满足我们的测试需求吗?工具/平台能否可靠地将压力增加到指定水平?这个工具/平台的压力测试需要多少钱?工具/平台之间的对比这里对比的平台/工具是阿里云的性能测试平台PTS、华为云的性能测试服务CPTS、瑞祥云的云压测平台CPT,这三个云压测平台以及k6、Apache JMeter分别是两个压力测量工具。
为什么选择他们?因为这三个压测平台都接受个人用户对其平台进行压测,而部分云压测平台,如腾讯云的WeTest压测大师、串口科技的ForceCop、压测宝等,暂时只接受企业用户进行压测,并且定价和服务是根据企业用户自身情况定制的,不能以个人评价。这两种压力测试工具,一种是比较流行的JMeter,另一种是新兴的测试工具k6。
1. 这个工具/平台能满足您的测试需求吗? 我们来对比一下各个工具/平台支持的协议,如下表: 压测工具/平台支持的协议 性能测试平台 PTS HTTP、HTTPS、WebSocket、TCP、UDP、Dubbo、Mqtt 性能测试服务 CPTS HTTP、HTTPS 、TCP、UDP云压测平台 CPTHTTP、HTTPS、Socket、WebSocket、Mqtt JMeter HTTP、FTP、JDBC、SOAP、LDAP、TCP、JMS、SMTP、POP3、IMAPK6 HTTP 1.1、HTTP 2、WebSockets、gRPC、SOAP、REST 2. 工具/平台能否可靠地将压力增加到指定水平? 对于云压测平台来说,由于这个指标中的“稳定”并不容易评估,而且这些平台的官方文档一般都规定了他们能达到的最大并发量,所以我对比了这些平台的价格,发现那就是比如说,我们比较的是用户需要花多少钱才能达到一定的并发度?性能测试平台PTS(阿里云) 套餐详情: 性能测试服务CPTS(华为云) 套餐详情: 云压力测试平台CPT(锐翔云) 套餐详情: 通过以上数据,可以得出下表: 阿里云PTS 华为云CPTS 瑞翔云CPT 元/10万VUM/年 从这个角度来看,华为云的服务是最经济的选择。 对于压力测试工具来说,一般有两个指标可以比较:运行测试时消耗了多少资源?相同配置下压测工具能支持多少并发? 也就是说,我们需要考虑压测工具产生并发时的资源成本有多高,能够产生多少并发。
1.消耗的资源 JMeter消耗的资源远远多于k6。它往往需要多个负载生成器来生成负载,并且需要更高的内存。
相比之下,JMeter 占用 MB 内存,而 k6 占用 MB 内存。来源:Rafaela Azevedo 来源:Rafaela Azevedok6 是用 go 语言编写的。
Go语言是一种编译语言。它不需要像Java那样在运行前进行解释,这意味着go本身就是以性能为目标构建的。
对于压力测试工具来说,最简单、最常见的生成并发的方式就是将虚拟用户分配给一个核心或一个线程。这个解决方案有一个缺陷:当虚拟用户等待响应或执行 sleep() 时,线程也会被阻止处理其他工作。
在 k6 中,每个虚拟用户运行在一个 goroutine 上,而不是一个线程上。 Goroutine 由 Go Scheduler 控制,它通过允许“工作窃取”和在线程之间交换工作来智能地重用空闲线程。
分配工作以提高整体性能并显着降低内存利用率。一个运行k6的线程不会超过kb,但是像JMeter这样的JVM线程默认使用1MB内存,这会给堆带来巨大的压力。
——来自比较k6和JMeter进行负载测试2。根据文档,JMeter平均可以实现10%左右的并发量。
如果需要更高的并发,需要搭建分布式JMeter测试;但如果给k6同样的资源,k6可以产生数万个并发。造成这种情况的原因有几个,一是因为 k6 占用内存较少,因此可以运行更多并发并产生更高的负载,二是 k6 对硬件资源的处理方式与其他负载工具不同,单个 k6 进程可以有效高效所有 CPU 核心的利用率;总体而言,k6的单个实例可以产生0-0并发。
3. 这个工具/平台的压力测试费用是多少? 这里,压测成本大致分为: ①学习成本:指从第一次接触工具/平台到熟练使用所需要的时间;安装是否简单;是否存在外部依赖;社区支持是否充足; ② 运营成本:指工具/平台 平台的运营是否简单,能否通过插件扩展新功能?用脚本语言编写脚本是否容易维护?插件支持的功能\工具吗? PTS(阿里云) CPTS(华为云) CPT(瑞翔云) JMeter k6 安装方便 --- 不需要,Java 是外部依赖,需要提前安装 --- Java 免费 ☆☆☆☆ ☆☆ ☆☆☆☆☆ 免费免费支持脚本 jmx、json、yaml jmx、json -jmx JavaScript 脚本编写方式 GUI 设置、上传脚本文件 GUI 设置、上传脚本文件 GUI 设置、上传脚本文件 GUI 设置 代码编写和维护难度容易 容易 简单 中等 困难,脚本冗长 中等,脚本简洁 插件支持 --- 插件丰富 可用插件不多 支持分布式测试 是 是 是(可付费服务支持) 测试可监控 是是 是 是,添加监听 否(可付费服务支持) 人脸人群 测试人员友好 测试人员友好 测试人员友好 测试人员友好 开发人员友好 社区丰富程度 ☆☆☆ ☆☆☆ ☆☆ ☆☆☆☆☆ ☆☆☆☆ 不同的工具/平台有不同的优势 工具/平台肯定会有自己的优势和特点。我们按照价格从低到高的顺序来解释一下:JMeter & k6、CPTS(华为云)、PTS(阿里云)、CPT(瑞翔云)。
按操作从简单到复杂的顺序排序:PTS(阿里云)&CPTS(华为云)、JMeter、k6、CPT(瑞祥云) 注:瑞祥云的操作最为复杂。虽然有UI界面,但是它的设计不是很人性化,比如讲一下上传脚本的功能,用户上传脚本失败后,并没有提示系统需要什么格式的脚本。
相比之下,使用其他工具/平台,您可以通过自己的探索来完成基本操作。按社区丰富度由高到低排序:JMeter、k6、PTS(阿里云)、CPTS(华为云)、CPT(瑞祥云)。
对于压力测试工具:JMeter的特点是UI界面,对测试人员友好 可以执行复杂的压力测试场景,包括不同的协议 可以为每个测试编写完整的场景 可以以经济高效的方式进行分布式压力测试 可以利用监听器 内置- 在预先准备的报告中拥有丰富的文档成熟社区中的k6的特点包括极快的安装速度、不需要其他依赖项、最大化性能和效率以及需要更少的内存空间。脚本是纯代码,可以减少歧义,并且可以进行版本控制,以便团队可以更轻松地创建脚本。
对于压测平台:阿里云PTS的特点是社区文档丰富,但价格较高。华为云CPTS的特点是价格较低,可以满足主要的压测需求。
瑞祥云CPT的特点是它主要提供运维服务。压力测试服务可以与其他产品(如报警、监控服务)结合使用,但价格相对较高。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-21
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用