【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?

这篇具有很好参考价值的文章主要介绍了【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

wrk

优点

缺点

jmeter

优点

缺点

locust

优点

缺点

总结

资料获取方法


前言

当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?locust?还是loadrunner呢?

今天,笔者将根据自己使用经验,针对jmeter、locust、wrk和loadrunner常用的性能测试工具进行简单介绍和对比。首先,四者基本对比图:

. loadrunner jmeter locust wrk
分布式压力 支持 支持 支持 不支持
单机并发能力
并发机制 进程/线程 线程 协程 线程
开发语言 C/Java Java Python C
报告与分析 完善 简单图标 简单图表 简单结果
授权方式 商业收费 开源免费 开源免费 开源免费
测试脚本形式 C/Java GUI Python C
资源监控 支持 不支持 不支持 不支持

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

wrk

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

优点
  • 操作简单、易于使用,

使用方式例如:

./wrk -c 1000 -t 8 -d 10s http://www.baidu.com

主要包括以下参数:

  • -t(--thread) 需要模拟的线程数;
  • -c(connection) 需要模拟的连接数;
  • --timeout 超时的时间;-d(--duration) 测试的持续时间
缺点

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

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

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

wrk测试结果输出:

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

jmeter

jmeter同样采用线程并发机制,但其主要依靠增加线程数提高并发量,当单机模拟数以千计的并发用户时,对于CPU和内存的消耗比较大。与上述wrk相比,jmeter本身具有以下优点和缺点:

优点

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

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

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

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

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

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

缺点

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

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测试结果:

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

总结

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

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

建议使用jmeter工具

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

建议使用wrk工具

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

建议使用locust工具

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

建议使用jmeter工具

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

建议使用jmeter或locust工具

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

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

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

附录

wrk 使用参数说明

①参数-c(connection,线链接数)与操作系统文件句柄数相关,-c不能超过文件句柄数设置,开始测试前应保证系统可用端口数大于-c设置;

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

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

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


资料获取方法

【留言777】

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?,软件测试,接口测试,jmeter,jmeter,自动化,程序人生,软件测试,软件测试工程师,测试工具

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~文章来源地址https://www.toymoban.com/news/detail-623205.html

到了这里,关于【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 性能测试工具 Locust + Boomer In Docker

    目录 前言: 背景 启动 Locust-master Boomer 调试模式启动 boomer locust worker 模式启动 get 请求 post 请求 指定请求头 直接使用 curl 命令 动态读取 csv --json-value-type 说明 Locust 是一种开源的性能测试工具,可以帮助我们快速地进行网站、应用程序等的性能测试和压力测试。Boomer 是一种

    2024年02月15日
    浏览(45)
  • jmeter 性能测试工具的使用(Web性能测试)

    1、下载 该软件不用安装,直接解压打开即可使用。 2、使用 这里就在win下进行,图形界面较为方便 在目录apache-jmeter-2.13bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。主界面如下: 3、创建线程组 测试计划--右键——》添加——》hreads——》线程组 设

    2024年02月10日
    浏览(71)
  • 初识性能测试工具Jmeter

    (1)Jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi; (2)Java运行环境下载地址:https://www.oracle.com/java/technologies/downloads/; (3)JAVA尽量配置到环境变量中去; (4)Jmeter解压出来; (1)Windows的点击jmeter/bin/下的jmter.bat; (2)mac和linux点击jmeter.sh; (3)点击Options—

    2023年04月08日
    浏览(61)
  • JMeter性能测试工具详解

    1、JMeter简介 Meter 是轻量级的接口性能测试工具,同时具备一定程度的接口自动化测试能力。 JMeter 支持多协议,其中较适合测试使用公有协议(如 HTTP、JDBC 等)的服务或模块,特别适合 B/S 结构的后台性能系统。 JMeter 有大量第三方插件,也可以比较方便的编写适合自己使用

    2023年04月08日
    浏览(61)
  • 性能测试—Jmeter工具

    开源平台 :metersphere 1. 术语介绍 响应时间(Response time) :对请求作出响应所需要的时间。 在互联网上对于用户响应时间,有一个普遍的标准。 2/5/10秒 原则。 并发用户数(concurrent users) :在同一时间段内访问系统的用户数量。 吞吐量(Throughput) :单位时间内系统处理的客户请求

    2024年02月13日
    浏览(53)
  • 自动化测试工具之 Jmeter性能测试

    1.性能测试概念: 通过自动化测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试 2.性能测试条件 系统基础功能测试验证完成 系统趋于稳定 3.性能测试基本流程 需求分析 (1)系统信息调研 (2)业务信息调研 (3)性能需求评估   判断是否进行

    2023年04月09日
    浏览(70)
  • 性能测试工具:如何学习JMeter?

    JMeter是一个广泛应用于Web应用程序性能测试与负载测试的开源负载测试工具,学习JMeter则可以协助软件测试工程师更好地进行自动化性能测试与负载测试,本文就来介绍下如何学习JMeter。 1. 应用场景 (1) Web应用程序、数据库服务器、FTP服务器、SOAP和RESTful Web服务的性能测试和

    2024年02月02日
    浏览(67)
  • 性能测试工具Jmeter学习和使用

    摘要 : 在日常的开发中,软件测试人员能够对程序进行功能上的测试以确保用户的正常使用,但对于一个需要发布在服务器上供多用户同时使用的软件而言,还需要模拟多用户同时使用的场景,对站点进行性能测试。但安排100个人同时访问测试站点显然是不可行的,此时就

    2024年01月18日
    浏览(58)
  • 性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

    目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列)

    2024年02月15日
    浏览(61)
  • 性能测试工具 Jmeter 做 Http 接口测试 :编写自定义函数

    目录 一、 前言 二、 编写自定义函数的步骤 1. 新建一个工程,导入 jmeter jar 包。 2. 新建 package:stressTest.functions 3. 新建一个类继承 AbstractFunction,重写以下方法: 4. 打包 5. 将打出来的 jar 包拷贝至 jmeter 的目录: 6. 运行

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包