压测工具哪家强,LR? jmeter?locust? wrk 全方位对比
创始人
2025-05-30 06:28:18
0

当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?locust?还是loadrunner呢?今天,我将根据自己使用经验,针对jmeter、locust、wrk和loadrunner常用的性能测试工具进行简单介绍和对比。

首先,四者基本对比图:

由于loadrunner为商业收费模式,对于公司级测试使用而言涉及到授权问题,因此,本文暂不对loadrunner进行详细讨论。

02  wrk

wrk是轻量化的http性能测试工具,采用线程+网络异步IO模型,网络异步IO可以使得系统使用很少的线程模拟大量的网络连接以增大并发量、提高压力。

 优点:

  • 操作简单、易于使用

缺点:

  • wrk只支持http协议类型请求(如get、post等),但若是需要执行get之外的http类型请求需要使用者自行编写lua脚本;

  • 只允许单机测试,不支持多机分布式压力测试,因此wrk适合性能基准测试,对于模拟上万的用户并发测试显得有点力不从心;

  • 测试结果简单,无详细图表解析,举例如下;

wrk测试结果输出:

03  jmeter

 jmeter同样采用线程并发机制,但其主要依靠增加线程数提高并发量,当单机模拟数以千计的并发用户时,对于CPU和内存的消耗比较大。

与上述wrk相比,jmeter本身具有以下优点和缺点——

优点:

  • 界面可视化操作,可以使用录制脚本方式对较为复杂的用户流建模,还可以创建断言来验证测试行为是否通过;

  • 表格、图形、结果树等多类可视化数据分析和报告输出,举例如下;
    jmeter聚合报告及表格查看结果:

  • 支持http、ftp、tcp等多种协议类型测试;

  • 支持分布式压力测试,但对于上万的用户并发测试需要多台测试机支持,资源要求比较大;

  • 可以用于测试固定吞吐量下的系统性能,例如在100QPS(QPS:每秒查询率)下系统的响应时间和资源消耗;

缺点:

jmeter的GUI模式消耗资源较大,当需要测试高负载时,需要先使用GUI工具来生成XML测试计划,然后在非GUI模式下导入测试计划运行测试,并且关闭不需要的侦听器(收集数据与展示测量的组件),因为侦听器也会消耗掉本用于生成负载的大量资源。测试结束后后,需要将原始结果数据导入GUI以才能查看结果。

04  locust

locust是一个简单易用的分布式负载测试工具主要用来对网站进行负载压力测试。locust使用python语言开发,测试资源消耗远远小于java语言开发的jmeter。且其支持分布式部署测试,能够轻松模拟百万级用户并发测试。

与jmeter和wrk相比,locust具有以下优缺点:

优点:

  • 不同与wrk和jmeter使用线程数提高并发量,locust借助于协程实现对用户的模拟,相同物理资源(机器cpu、内存等)配置下locust能支持的并发用户数相比jmeter可以提升一个数量级;

  • 相比wrk对复杂场景测试的捉襟见肘和jmeter需要界面点击录制复杂场景的麻烦,locust只需用户使用python编写用户场景完成测试;

  • 不同与jmeter复杂的用户使用界面,locust的界面干净整洁,可以实时显示测试的相关细节(如发送请求数、失败数和当前发送请求速度等);

  • locust虽然是面向web应用测试的,但是它可以用来测试几乎所有系统。给locust编写一个客户端,可以满足你所有的测试要求;

缺点:

  • 同wrk一样,locust测试结果输出不如jmeter的测试结果展示类型多;

locust测试结果:

05  总结

本文简单介绍和对比了wrk、jmeter及locust三种性能测试工具,希望能给大家带来基础的认识。此外让我们最后一起来看看面临以下测试需求,我们应该如何在三者中进行选择:

① 我想使用界面操作的形式对我的系统做性能测试,并且希望我的测试数据有个良好的可视化展示方式;

  • 建议使用jmeter工具

② 我想要对我系统的http rest接口进行性能测试,但是我之前没有进行过任何测试,我不知道我的系统QPS是个什么样的水平;

  • 建议使用wrk工具

③ 我想对我的系统模拟用户操作进行复杂场景的性能测试;

  • 建议使用locust工具

④ 我想测试我的系统在一定QPS情况下,一段时间内的性能指标(cpu消耗、内存消耗等);

  • 建议使用jmeter工具

⑤ 我想使用匀速请求的方式,对我的系统进行性能测试;

  • 建议使用jmeter或locust工具

⑥ 我想体验编程的乐趣,自己编写脚本进行性能测试;

  • http请求:wrk,使用lua语言编写脚本;

  • locust,使用python语言编写脚本;

或者,just do it by yourself,自己选择编程语言编写性能测试脚本。

06  附录

wrk 使用参数说明:

  • 参数-c(connection,线链接数)与操作系统文件句柄数相关

    -c不能超过文件句柄数设置,开始测试前应保证系统可用端口数大于-c设置;

  • 参数-t(--thread,线程数)与操作系统cpu核数有关

    -t不宜设置过大,过大的线程数设置反而会因线程调度反而使性能降低。如下图所示,操作系统为8核cpu:相同连接数和测试时长条件下,不同线程数对同一系统REST接口测试,从测试结果可以看出当thread=8(与cpu核数一致)时系统性能测试结果最佳,性能波动最小;

 8核cpu:相同连接数和测试时长条件下,不同线程数对同一系统REST接口测试结果对比图

【资源分享】 

下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!

相关内容

热门资讯

银行职工因贪污罪获刑后留任,在... 新京报记者 刘锦涵 制作 礼牧周 ▲新京报我们视频出品(ID:wevideo) 近日,农发行福建福鼎...
黄金创40年来最大单日跌幅!金... (来源:劳动报) 转自:劳动报 1月31日,国际金银价格同步大跌,创40余年来最大跌幅。国内金饰价...
“一人公司”近来何以兴起? 2026年开年,“一人公司”发展备受关注。这种新型创业模式正在上海、北京、江苏等地悄然兴起,凭借低成...
寒武纪预计 2025 年净利润... 消息,AI 芯片企业寒武纪今日发布 2025 年年度业绩预告: 经财务部门初步测算,公司预计 2...
和讯投顾徐剑波:ETF买入法! 这轮牛市是机构主导的ETF牛市,选对ETF往往比选股更加赚钱。那么如何投资ETF?今天教给大家一个非...
君乐宝上市申请已递交,国内乳品... 2026年 1月19日,中国领先的综合乳制品企业君乐宝乳业集团股份有限公司正式向香港联交所递交主板上...
大涨!马斯克,突传大消息!重磅... SpaceX的“赚钱能力”曝光。 据最新消息,世界首富埃隆·马斯克旗下的商业航天公司SpaceX去年...
原创 顶... 2025年微博之夜定档于2026年2月5日北京线上直播,这场已经走过二十多年风雨的互联网年度盛典,因...
体检查出肺结节?3个日常行为正... 太原龙城中医医院科普:如今越来越多人在体检中发现肺结节,看到报告上的“阴影”便忧心忡忡。其实研究表明...
记者观察丨美联储下任主席提名揭... 在经过长达一年反复挑选后,美国总统唐纳德·特朗普终于做出决定,提名凯文·沃什为下一任美联储主席,接替...
首饰金,一夜大跌上百元!金价暴... 【导读】多家首饰品牌金价出现大幅下跌 中国基金报记者 忆山 随着国际金价急速下跌,国内首饰金价也迎来...
原创 一... 一个亲自参观过我国稀土提炼工厂的日本人在社交平台发文,竟然毫不客气地指出,无论是日本还是美国,都几乎...
环球网财经系列专访 1月27日至28日,全国贸促工作会议暨中国贸促会第六届全国委员会第六次会议在京召开。 会议指出,“...
默茨警告:“大国世界”要来了,... 【文/观察者网 熊超然】当地时间1月29日,德国总理默茨在德国联邦议院发表其任内的第二次施政声明。在...
路透解析“马斯克集团”:Spa... SpaceX 凤凰网科技讯 北京时间1月31日,据路透社报道,长期以来,埃隆·马斯克(Elon Mu...
启动“二改” 永辉在京完成21... 北京商报讯(记者 赵述评 实习记者 毛思怡)1月31日,永辉超市北京龙湖长楹天街店经一个多月闭店调改...
《宜宾散装白酒连锁经营规范》团... 近日,由宜宾市酒类协会牵头归口、宜宾安宁酒厂主导起草,四川谊宾酒业、宜宾学院、劲牌南溪酒业等多家本地...
印度牙医博士打造全印首款人形机... 2026 年 1 月 23 日,印度浦那的 Muks Robotics 正式宣布,自主研发的社交人形...
金银价创新高,引发全球“贵金属... 【环球时报记者 倪浩 环球时报特约记者 甄翔】连日来,国际市场金银价格持续大涨。1月29日当天,亚太...
财经观察丨“爱你老己”背后的消... 新华网北京1月31日电岁末年初,一句“爱你老己,明天见”席卷社交网络,成为年轻人自我关怀的新表达。热...