[jmeter]快速入门

前言

以压测一个api为例。假设有一个非常简单的api http://192.168.1.111:8080/,只是返回 helloworld 字符串。

准备

  1. 打开 jmeter,新建测试计划
  2. 在测试计划上右键 -> 线程 -> 线程组。还是在测试计划上右键 -> 监听器,添加查看结果树、汇总报告、聚合报告。
  3. 在线程组上右键添加取样器 - HTTP请求,填写服务器地址、端口号和url

  1. 点击测试计划,再点击菜单栏的保存,然后执行测试
  2. 执行完成后,点击查看结果树,即可查看到api响应结果。
  3. 以上为单元测试,查看api结果是否正确。接下来执行一个100并发的压测。
  4. 先在查看结果树、汇总报告和聚合报告上右键点击清除
  5. 点击线程组,配置并发数和压测时间

  1. 保存测试计划,点击运行。运行完成后,一般关注聚合报告和汇总报告中的平均值、中位值、异常率和吞吐量,如果安装了插件,一般还要关注TPS指标。
  • 聚合报告示例

  • TPS示例

web框架压测

顺带压测了几个web框架,分别是python的fastapi、sanic,以及go的gin、hertz。服务端和jemeter用的都是一台电脑,jemeter的压测数都为1000,四个框架都只是返回一个helloworld字符串,控制台日志也都关闭。fastapi和sanic的worker数量都设置为CPU核数。

  • python之fastapi的压测结果。fastapi是我个人比较喜欢的一个python web框架,尤其喜欢自带的swagger文档,调试起来非常方便。压测的吞吐率四舍五入一下是1w,正好做一个基准。

  • python之sanic的压测结果。sanic的设计比较像flask,性能比fastapi稍好些,大概是fastapi的3倍左右。

  • go之gin的压测结果。gin算是go web开发比较入门级的框架了,性能大概是fastapi的5.8倍。

  • go之hertz的压测结果。hertz是字节跳动开源的一个go web框架,性能比gin框架稍高,大概是fastapi的6.3倍,但个人更喜欢gin,gin的编码看起来比hertz稍微简洁一些。

posted @ 2023-02-11 14:23  花酒锄作田  阅读(129)  评论(0编辑  收藏  举报