Jmeter性能测试简介

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Jmeter 性能测试简介

文档作者:胡丽霞

日期:2017/1/11

文档修订记录

1、概述

性能测试作为测试重要内容一致,其重要性不可忽略,然而性能测试的方式有很多,有些可以手工实现,有些需要借助工具。测试页面的响应时间我们可以使用Httpwatch,或者模拟大批量数据,自己估算时间,然而多个用户并发操作测试如果不借助工具似乎很难实现。业内提供了很多性能测试的工具,综合考虑,Jmeter 经济实用,并且容易掌握,应对简单的性能测试足以。

Jmeter可以对接口做功能测试以及性能测试,本文主要介绍Jmeter一些简单的性能测试操作。

2、适用对象

本文主要对Jmeter做简单的介绍,适用于测试人员使用此工具做接口简单的性能测试,同时也适合开发人员调试接口性能。仅为工具入门做参考。

3、工具介绍

3.1 工具下载

可以到Jmeter的官网下载最新版本:/

或者可以用此安装包:

apache-jmeter-3.1.zip

3.2 工具安装

此工具是一个免安装包,只需要将其解压,到bin目录下执行jmeter.bat文件即可打开工作界面,进行测试,如下图;Jmeter能够正常打开的前提是环境中需要有JDK。

3.3 Jmeter的工作界面

工具界面简洁明了,其中菜单栏中涉及的主要操作基本上提到了工具栏,当在工具栏中找不到对应操作时再返回菜单栏查找。

工作区域也分为工作目录树形结构和主要区域,树形目录方便归类查询,使用过程更便捷,管理更加便利。接下来在使用过程中介绍一些常用的操作。

3.4 Jmeter关键组件

3.4.1 组件的功能介绍

在树形菜单测试计划节点或者工作台节点点击右键,会出现如下一些组件:

以下做简单归纳:

1、Threads:这个组件主要用来控制Jmeter并发时产生线程的数量,在它的

下一级菜单下只有一个组件(线程组),可以这么理解每个线程就是一个虚拟的用户。所有的其他类型组件必须是(线程组)节点的子节点。我们测试就是从线程组开始的;

2、配置单元:和Sample组件一起工作,主要用来配置Sample如何来发起请

求访问服务器,这个东西的主要特点是可以把一些Sample的共同配置放在一个元

素里面方便管理,配置单元是有作用域的。作用域和树的那个关系一样越是上级节点的作用域越大,越是接近叶子节点的作用域就越小,可以复写上级作用域的配置;

3、定时器:这个主要是用来调节(线程组),控制线程每次运行测试逻辑(比如说:发出请求)的时间间隔。当然这个下面还有很多类型的定时器,他们主要功能就是调节时间间隔,但个个组件之间的策略有很大不同。

4、Sample :可能上图中没有出现Sample,需要在线程组上添加才可以,见

Sample表示客户端发送某种格式或者规范的请求到服务端,如Http请求;

5、断言:意思是指对于Sample完成了请求发送之后,判断一下返回的结果

是否满足期望。

6、监听器 : 这个组件不同于平时在Web编程的那种监听器,他是伴随着Jemeter测试的运行而从中抓取运行期间的数据的一个组件,经常使用的是聚合报

告组件,可以看到一些性能相关的数据。

3.4.2 组件作用域介绍

取样器Sample没有作用域,其它元件的作用域根据其所在节点决定其作用域。其它元件可以和Sample是同一级,也可以成为Sample的子级,但是逻辑控制器可以和Sample是同一级,也可以是Sample的父节点。

3.4.3 组件执行顺序

配置元件-> 前置处理程序->定时器->取样器->后置处理程序->断言->监听器注意点:

1、前置处理器、后置处理器和断言等元件公能对取样器作用,因此,如果

在它们的作用域内没有任何取样器,则不会被执行。

2、如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在

测试计划中的上下顺序一次执行。

4、实例操作

下面以模拟用户并发登录作为事例进行简单的介绍。

4.1 新建线程组

使用Jmeter测试从线程组开始,就像前文提到一个线程组相当于一个用户,模拟多个用户进行一个操作就配置多个线程组即可。

右键点击工作区域左边的树形菜单节点“测试计划”,添加—Threaders (Users)—线程组:

4.2 设置相关参数

并发登录需要模拟多个用户,这里的一个线程是一个用户,那么模拟多个用户就需要做相关配置,如下图:

上图圈出来的几个都是比较常用的,下面做简单介绍:

名称:可以修改线程组的名称,根据实际需要进行修改,如此处改为“并发登录”;

线程数:虚拟用户数,一个虚拟用户占用一个进程或者线程,设置多少个虚拟用户数在这里就设置多少个线程数;

准备时长:设置的虚拟用户数需要多长时间全部启动,如线程数为20,准备时长为10,那么需要10秒内启动20个线程;

循环次数:每个线程发送请求的次数,如果线程数为20,循环次数为100,那么每个线程发送100次请求,总请求数为:20*100=2000,如果勾选了永远,那么所有线程会一直发送请求,一直到停止脚本运行。

4.3 添加请求

请求在上文中介绍的Sample中添加:

Sample是与服务器进行交互的单元,通常一个Sample工作如下:

向服务器发送请求;记录服务器响应数据;记录相应时间信息

下图是建立的Http请求:

HTTP请求的参数介绍:

名称:一个Sample的名称,根据实际需要修改为对应名称

服务器名称或IP:HTTP请求发送的目标服务器名称或者IP地址

端口号:目标服务器的端口号

协议:发送HTTP请求的协议,如http或者https,默认为http

方法:发送Http请求的方法,如GET,POST,HEAD,PUT,DELETE,OPTIONS,TRACE 路径:目标URL(不包括主机和端口号)

自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

相关文档
最新文档