Jmeter性能测试简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 自动重定向到新的页面。