由于接入业务方及日调用量的增加,现需对几个接口进行压力测试,以满足线上要求.

由于Jmeter是开源的,而且基本上可以完成公司正常的测试要求,所以Jmeter这一款软件才是我认为的最佳的压力测试工具.

首先是jmeter软件的安装,jmeter是基于java的,所以首先本地需要有Java环境。

具体java环境的安装与环境变量配置可见: https://blog.csdn.net/Beat_Boxer/article/details/85236393

验证java环境是否安装成功:

☆☆☆☆java -version 和  javac 都成功方可成功

☆☆☆☆温馨提示:jmeter4.0需要jdk8及以上java版本

下面就是Jmeter的下载     下载地址 http://jmeter.apache.org/download_jmeter.cgi

下载安装jmeter后,进入bin目录下,运行jmeter.bat即可进入jmeter客户端

如果想在cmd中直接运行jmeter,可以配置Jmeter环境变量

参照:https://blog.csdn.net/Beat_Boxer/article/details/86498847,jmeter环境变量的配置

如果需要汉化版,可以参照该文档:https://blog.csdn.net/Beat_Boxer/article/details/86504864

Jmeter里面需要了解结果概念

1、Test plan 测试计划,所有的测试工作都要基于测试计划来进行,一个测试项目中只能有一个的测试计划,测试计划在整个项目中充当的是一个全局设置的作用;

2、

①Thread 线程组,代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,

在线程组面板里有几个输入栏:

依次是:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有100个线程,Ramp-Up = 1秒,那么线程的启动时间间隔为1/100=0.01秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

线程组为很多线程的一个集合,在项目中可以有多个的线程组,线程组主要是建立一组线程集中对一个请求进行测试,比如说你想测试T1和T2两个接口,这时候你就可以通过创建两个线程组来完成这个任务

②Setup thread group 
初始化的线程,每个线程只执行一次,用于执行预测试操作 ;Setup thread group 执行测试前 进行定期线程组执行活动。 
线程内显示内容与线程组一致。

③Teardown Thread group 
做些清理工作,每个线程只执行一次,用于执行测试后动作。 线程内容与线程组一致。 
Teardown Thread group执行测试结束后执行定期的线程组(类似Loadrunner的测试完毕后对应的清除信息的脚本)

3、线程组创建完成下面就来介绍一下最核心的部分,创建请求部分;

一般都是在线程组==》添加==>Sampler(取样器)==》添加对应的请求(例如:Java请求,http接口请求等)

取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、Java、ftp请求等等。

4.选择对应的Java请求或者http接口进行配置之后然后进行压测

此时

点击运行也不能有结果显示,需要添加监听器Listener

5.添加监听器Listener:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

常见的监听器:

聚合报告、用表格查看结果、查看结果树、图形结果

聚合报告:我们能够从聚合报告中获取相关的测试结果,这个也是我们分析结果的主要依据,这个显示的是同一请求

聚合报告关键词解释:

Label :各个模拟测试的名称
Samples :各个测试的样本总数
Average :每个请求的平均响应时间
Median :中值,即50%请求的平均响应时间
90%Line :90%请求的响应时间
Min :最小响应时间 ,Max :最大的响应时间
Error% :错误响应的概率。即无法响应的概率。
ThroughPut :吞吐量 -- 默认情况下表示每秒完成的请求数(Request per Second)。
Received KB/Sec :每秒从服务器端接收到的数据量。

查看结果树:这个跟表格查看结果有点相似,但是比起根据有详细的发送请求的信息,以及返回的结果可以查看

图形结果:

6.Jmeter的分布式测试(优缺点)此部分借鉴https://blog.csdn.net/chenleixing/article/details/43418185

下面是分布式测试的使用方法,即使用一台机器控制多台机器给目标机器产生压力。由于Linux和Windows上的方法有些不一样,这里说下Linux下是怎么来配置的。

首先总控的机器我们叫master,产生压力的肉鸡我们叫JmeterServer,待我们测试的系统我们叫Target.

第一步:启动JmeterServer。我们可以找到Jmeter/bin 目录下的jmeter-server这个脚本,运行即可,当然如果你需要调整这个测试负载产生服务器的内存等性能参数的话,我们修改这个脚本jmeter中的内存参数。

第二步 : 修改Master机器上jmeter/bin目录下的jmeter.properties文件,修改remote_hosts=localhost:1099,localhost:2010这个为你自己的JmeterServer的实际IP,如果有多台可以用逗号分开。

第三步 : 启动master jmeter,运行测试脚本的时候选:运行 --> 远程运行 --> 选择IP 或者 运行所有远程。JmeterServer就会运行Master机器上设定的运行脚本了。

【jmeter】 --- jmeter使用详解相关推荐

  1. JMETER目录结构详解

                                                                 JMETER目录结构详解 JMETER安装完成之后会有很多目录文件,我们对JM ...

  2. 性能测试基础之JMeter聚合报告详解

    提示:聚合报告组件的使用和察看结果树组件的使用方式相同.本篇文章主要是详细的介绍一下聚合报告组件内容,不做示例演示. 1.聚合报告介绍 在使用JMeter进行性能测试时,聚合报告(Aggregate ...

  3. JMeter基础 — JMeter聚合报告详解

    提示:聚合报告组件的使用和察看结果树组件的使用方式相同.本篇文章主要是详细的介绍一下聚合报告组件内容,不做示例演示. 1.聚合报告介绍 在使用JMeter进行性能测试时,聚合报告(Aggregate ...

  4. jmeter ---实战(详解)

    1,  jmeter 录制脚本需要设置ie 代理服务器:设置完成后,关闭浏览器,重新打开就生效了. 如果录制完了之后,回放时报错, 可以尝试清除浏览器缓存后,重新录制脚本. 工作台--http代理服务 ...

  5. JMeter入门教程详解

    简介 这边文章是一菲专门写给想了解性能测试和JMeter的小白,适合对这两者了解很少的朋友们,如果已经有使用经验的请绕道,别浪费时间. 下面我们将介绍JMeter的使用场景,如何安装.运行JMeter ...

  6. jmeter 线程执行顺序_性能测试之jmeter逻辑控制种类详解一

    逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...

  7. JMeter部分功能详解

    JMeter 介绍: 一个非常优秀的开源免费的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工 ...

  8. JMeter响应断言详解

    响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter ...

  9. 史上最全jmeter逻辑控制器案例详解

    在jmeter中逻辑控制器可以控制采样器(samplers)的执行顺序.由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了.放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被 ...

  10. 性能测试之JMeter函数助手详解

    1.函数助手介绍 在性能测试过程中,为了模拟真实的用户,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化. JMeter中的配置元件与前置处理器都能帮助我们实现参数化,为了能够更好的帮助 ...

最新文章

  1. [c#]解决方案:需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
  2. python提供的默认的构造方法是什么_Python面试常见问题,__init__是构造函数吗?...
  3. python学习笔记七
  4. Linux 精通Linux的“kill”命令
  5. 18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?
  6. HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
  7. 小强的HTML5移动开发之路(43)——JqueryMobile页眉、工具栏和标签栏导航
  8. 海天味业打造高端调味品领衔食品美味
  9. 吴恩达机器学习作业4(python实现)
  10. (配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题
  11. 如何关闭苹果Mac上的触控板功能防止误触?
  12. oracle 负载均衡连接方式常用SQL语句备忘录
  13. 问题:宇视摄像机如何对接第三方录像机
  14. 戴尔电脑网卡远程唤醒wake on lan
  15. The diagram must contain a powergui block. The block must be named powergui matlab simulink 报错
  16. 2017网易校招:不要二
  17. MySQL3:连接查询、子查询及正则表达式查询
  18. 报错:Error in get(“GO2ONT“, envir = GO_DATA) : object ‘GO2ONT‘ not found
  19. android 方向传感器应用
  20. 实习每日总结_20161220

热门文章

  1. WEB 网页增加 数字盲水印
  2. 数据库:数据类型、数据项、数据元素、数据对象、数据结构的概念与相互之间的关系
  3. ASCII转十六进制小工具
  4. 二次方程计算器-字符串处理
  5. count distinct
  6. Vue:el-dialog可拖拽
  7. MySql delete多表关联删除的使用方法
  8. 【实用工具】Visio画时序图组件
  9. 计算机电源好坏判断,怎么判断电源的好坏啊?
  10. 【Linux】Linux下怎么下载安装Chrome?