Locust学习笔记1-性能工具的选择

  引言

  一谈到性能测试,很多人都会想到Loadrunner和Jmeter这两款工具,其实Python也有一套性能测试工具——Locust。

  Locust是一款支持分布式开源的性能测试框架,基于Web界面实时监控性能数据。

  那么这些性能测试工具到底有什么区别,如何选择呢?

     性能测试相关技能

        业务理解、性能诊断、调优技能、经验、测试基础、编程、系统架构、数据库、操作系统原理、网络、工具应用

     核心原理

        基于协议、多线程、模拟真实场景

     性能测试分类

       负载测试:(不同用户级关注系统的响应时间有效用户数) =>更高负载就是 压力测试(更多用户更大的负载)--喝酒

       容量测试:不同数量级的数据

       配置测试:不同的配置下的搭配

       基准测试:先跑单个线程单个业务去得到一个参照的值 一个线程的最基本的值

       稳定性测试:连续运行保持一定合理的负载连续不断运行12小时以上看有没有问题

       并发测试:同一个时间点多个用户对同一个业务发起请求 同一个时间10个用户同时进行请求

    团队支持

      市场(场景)

      DBA(数据库瓶颈需要调优)

      运维(操作系统)

      开发(系统程序需要调优)

      测试、客户

   性能测试的流程

     分析:业务理解 需求分析 评估工作

     设计:模型 方案 脚本

     实现:脚本开发 环境 数据

     执行:运行测试 分析调优 测试报告

 工具对比

  LoadRunner Jmeter Locust Wrk Hyload
分布式压力 支持 支持 支持 不支持 支持
单机并发能力
并发机制 进程/线程 线程 协程 线程 协程
开发语言 C/JAVA JAVA Python C Python
报告与分析 完善 简单图表 简单结果 简单图表 简单图表
授权方式 商业收费(10WRMB+) 开源免费 开源免费 开源免费 开源免费
测试脚本形式 C/JAVA GUI Python C Python
资源监控 支持 不支持 不支持 不支持 支持
单机最大并发数

LR11超级license最高支持6.5w个并发

LR12支持50个

1000个 100W+ 未知 未知
优点

1、支持分布式部署

2、支持复杂业务测试

3、七层协议全部支持

4、支持多种语言

1、支持分布式部署

2、支持复杂业务测试

3、支持二次开发

 

1、支持分布式压测

2、支持复杂业务测试

3、单机并发高

4、Python脚本,web界面展示

1、操作简单 未知
缺点

1、商业工具贵

2、学习成本高

3、C/S架构使用不方便

4、Load不适用后端接口

1、硬件利用率较低

2、C/S架构使用不方便

1、测试报告过于简陋

2、测试过程中的监控无法看到

1、不支持windows

2、只支持http协议

3、只支持单机并发

4、结果简单

未知

 

  总结

  我们在接到性能测试需求的时候,应该以实际需求为基准来选择测试工具,任何工具都是辅助的,没有好坏之分,只有适合不适合的。比如你需要测试单机并发高的场景,可以选择Locust,也可以选择Jmeter和Loadrunner,只不过Locust更加适合测这种场景下的并发数。

  当然只要达到目的,在使用上也可以根据个人习惯来,比如有些人使用工具可以完成任务,有些人写脚本也可以完成任务。我们最终的目标是完成一次性能测试需求,而不是纠结工具的好坏与选择。

posted @ 2021-06-04 17:09  陈晓猛  阅读(128)  评论(0编辑  收藏  举报