1. 引言

在日常开发中,当完成一个接口开发时,需要对接口进行准确性测试,比如PostManSwagger等,但在接口上线运行前对其进行性能测试是很有必要的,就是所谓的接口压力测试。

压力测试就是考察当前软硬件环境下系统所能承受的最大负荷,并借助结果找出系统瓶颈所在。使用压力测试可以找到更难发现的问题,比如:内存泄漏,并发和同步。

有效的压力测试系统将应用一下这些关键条件:重复、并发、量级、随机变化。

2. 压力测试指标

2.1 性能指标

  • 响应时间(Response Time : RT

    响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间,下面熟悉一下结果名词:

  • HPSHits Per Second):每秒点击次数,单位是次/秒

  • TPSTransaction Per Second):系统每秒处理交易数,单位是笔/秒

  • QPSQuery Per Second):系统每秒处理查询次数,单位是次/秒

对于互联网业务,某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下,用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器单击请求。无论TPSQPSHPS,此指标是衡量系统处理能力非常重要的指标,越大越好。

一般情况下:

金融行业:1000TPS~50000TPS,不包括互联网化的活动
保险行业:100TPS~1000000TPS,不包括互联网化的活动
制造业:10TPS~5000TPS
互联网电子商务:10000TPS~10000000TPS
互联网中型网站:1000TPS~50000TPS
互联网小型网站:500TPS~10000TPS

  • 最大响应时间(Max Response Time):指用户发出请求或者指令到系统做出反应(响应)的最大时间

  • 最少响应时间(Mininum Response Time):指用户发出请求或者指令到系统做出反应(响应)的最少时间

  • 90%响应时间(90% Response Time):是指所有用户的响应时间进行排序,第90%的响应时间。

性能测试主要关注如下三个指标

  • 吞吐量:每秒钟系统能够处理的请求数、任务数,该值越大越好
  • 响应时间:服务处理一个请求或一个任务的耗时
  • 错误率:一批请求中结果出错的请求所占比例

3. JMeter工具使用

3.1 JMeter安装

官网: https://jmeter.apache.org/


需要注意的是:JMeter5.3版本要求Java8以上版本

3.2 压力测试

将下载的压缩包解压后,进入到bin目录中,双击执行 jmeter.bat,会进入到下面这个页面。

3.2.1 切换成中文

选项 > 选择语言 > 中文

3.2.2 添加线程组

添加线程组,创建模拟多少个并发用户

3.2.3 添加HTTP请求

创建完线程组后,再添加http请求,表示要对哪个接口进行测试

3.2.4 添加监听器

为需要压测的http请求添加监听器,用户生成测试结果

3.2.5 自动压测

3.2.6 查看结果

可以自行查看压测的结果

3.3 JMeter Address Already in use 错误解决

这个问题是Windows本身提供的端口访问机制引发的,Windows提供给TCP/IP链接的端口为1024-5000,并且要四分钟来循环回收它们,这样会导致我们在较短时间内跑大量的请求时将端口占满了。

解决方法:

  • cmd中,用regedit命令打开注册表

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Tcpip\Parameters

(1)右击parameters,添加一个新的DWORD,名字为MaxUserPort
(2)然后双击MaxUserPort,输入数值数据为65534,基数选择十进制,
如果是分布式运行的话,控制机器和负载机器都需要这样操作

  • 修改配置完毕之后,记得重启机器才会生效
  • TCPTimedWaitDelay:30,表示把端口回收时间从4分钟,改为30

使用JMeter进行压力测试相关推荐

  1. jmeter 高并发测试报告_使用 JMeter 进行压力测试

    原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...

  2. JMeter 进行压力测试并发测试步骤,及文件上传并发测试演示

    使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力,使我们能 ...

  3. 使用JMeter进行压力测试及参数设置

    使用JMeter进行压力测试(基础篇) 1.启动Jmeter 双击图中所示文件出现如下图所示即启动成功 2 新建测试计划 File------>new 2.1右键新建线程组 add-----&g ...

  4. 使用 JMeter 进行压力测试

    一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力,使我们能根据其做出一些应对措施.所以压力测 ...

  5. 如何用Jmeter做压力测试

    Jmeter是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试. 我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.下 ...

  6. 利用JMeter进行压力测试(1)(转)

    转自:http://www.cnblogs.com/game-over/archive/2010/01/08/1642685.html 压力测试以软件响应速度为测试目标,尤其是在较短时间内大量并发用户 ...

  7. liunx JMeter 进行压力测试

    启动脚本 jmeter.sh -n -t test.jmx -l result.jtl 参数说明 - h 帮助 -> 打印出有用的信息并退出 - n 非GUI模式 -> 在GUI模式下进行 ...

  8. jmeter压力测试_如何使用Jmeter进行压力测试?这篇入门讲解拿去不谢!

    一.下载安装jmeter 这里不多说了,大家可以自行下载. 二.运行jmeter.bat 在bin目录下,使用管理员方式运行jmeter.bat 随之会打开jmeter的GUI界面,注意不要关闭运行的 ...

  9. 不会压测?没关系,手把手教你用jmeter做压力测试及结果分析

    1.准备 测试之前需要先准备相关的工具,JMeter是运行在jdk下的一款压测工具,所以,要运行JMeter首选要安装jdk并配置环境变量,具体请自行百度jdk环境变量安装: 2.JMeter 是什么 ...

  10. Jmeter接口测试+压力测试

      jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先 ...

最新文章

  1. 如何通过深度学习,完成计算机视觉中的所有工作?
  2. python与R行列数据过滤(row column filtering):dplyr、 isnull、isna、drop、select、iloc、loc、isin、filter
  3. 程序与进程的区别,并发与并行的区别,多进程的实现原理
  4. ssh可以连接但sftp不可以连接解决方案
  5. 简单的DPDK介绍与分析
  6. ABAP源程序---发票校验明细表
  7. 百度关键词排名查询源码_章丘百度霸屏总部,关键词排名腾沃云
  8. 虚拟机下安装vmtool
  9. JavaScript 中 apply 、call 的详解
  10. Hadoop学习笔记(四):Shuffle阶段
  11. Hadoop step by step _ install and configuration environment
  12. C++ map转为vector
  13. 8芯网线中哪几根是有用的?
  14. This account is currently not available 解决办法
  15. Css3之画五角星跟六角星
  16. 软件腐化的七个特征之复杂性、重复性、晦涩性(设计模式原则的反面) (《敏捷软件开发》读书总结第三篇)
  17. 用网络命令关闭计算机,如何在win7用cmd命令关闭无线网络
  18. PyTorch基础之激活函数模块中Sigmoid、Tanh、ReLU、LeakyReLU函数讲解(附源码)
  19. throws和throw的作用
  20. SourceTree + Gerrit

热门文章

  1. 骑士人才系统4.0,5.0火车头数据抓取
  2. JAVA毕设项目-网上订餐系统(附:源码 论文 Sql文件)
  3. 百度换肤功能实现(vue)
  4. iOS 使用iPhone配置实用工具 创建桌面快捷方式
  5. 一点点矩阵知识1:由一个矩阵理论题目展开的关于矩阵的核(kernel)与像(Image)的讲解。
  6. ngix反向代理配置
  7. 全国31个省市2001-2017年平均受教育年限学习数据集
  8. 期货反跟单-镜像零滑点软件真有那么靠谱吗?
  9. win10中bochs仿真linux0.11环境快速搭建方法
  10. Java Web程序设计笔记 • 【第1章 Web应用程序】