Jmeter介绍&安装

  • Jmeter介绍&安装已关闭评论
  • 74 views
  • A+
所属分类:运维实战

Jmeter介绍&安装

1. Jmeter概述

1.1 Jmeter是什么

»Apache组织开发的基于Java的压力测试工具

»100%纯Java开发、完全的可移植性

»可以用于测试静态和动态资源

»多协议——http/ftp/socket/Java/数据库(JDBC)

»完全多线程,jmeter已线程的方式来用户的并发访问的

»高可扩展性

PS:在控制台打印输出:测试计划→线程组→sampler→beanshell sampler:system out.print(${var})

性能测试流程:

需求分析:熟悉这个项目是做什么的,用户在在程序上是如何操作的,哪些是重点,哪些是重要业务流程,这些就是需求分析需要做的事。了解完需求分析时候呢,我们进入的就是性能指标制定,比如说响应时间啊,吞吐量啊就是在这个环境定义的,为什么药定义这些指标呢,因为我们性能测试要有一个目标,因为一个软件啊,他总归有一个性能瓶颈,我们要定义他,假如满足一百个并发就OK了,前面我们了解了业务流程,也了解了性能指标,接下来需要做的就是脚本开发,可以自己写脚本,也可以利用工具,工具也有多种选择,看你对哪一种工具比较熟悉,如jmeter啊,loadrunner啊等等;脚本开发完毕之后,我们进入场景设置,脚本在开发完成之后啊,不能直接应用于性能测试,我们要有调试,有设置的过程,设置场景主要跟第一步需求分析关联,符合用户在软件上的使用流程,用户经常做哪些操作,我们就把这些操作作为性能测试的重点;场景设置完成后就监控部署,如服务器硬件,中间件,数据库等等,把他监控起来,只有监控起来才能发现他的运行状态,对后面的调优提供依据等等,监控一定要有,监控部署完成之后进入测试执行,第一阶段,基础测试,少量的用户跑一边,看有没有问题,先解决问题后进入正式的性能测试,性能执行完了后进入性能分析,结合之前的监控数据进行分析了,分析完之后就进入性能调优了,性能调优完成后就进入下一轮性能执行,这是一个循环的过程。

常见系统应用分层:

显示层(view):web、Android、IOS、H5

逻辑控制处(controller):API

数据存储层(model):MySQL、MongoDB、Redis

性能指标定义:

事务:从发起请求到收到从服务端返回的响应的一个闭环,一个事务可能包含多个请求

TPS(transaction per second):每秒钟系统能够处理的事务数

响应时间:从发起请求到收到从服务端返回的响应的一个闭环所花费的时间

并发:没有严格意义上的并发,并发总有先后,有时间差,可能是一毫秒,一微妙等,所以并发讲的是一个时间范围,比如一秒内

并发用户数:同一单位时间内对系统发起请求的用户数

吞吐量:一次性能测试过程中网络传输的数据量的总和

吞吐率:单位时间内网络上传的数据量

点击率:表示用户每秒向服务器发起的请求数,一次鼠标单击可能会发起多个请求,最佳或理想状态下随着用户数的增加而上升

资源使用率:如CPU,内存,网络等

性能测试需求分析:

明确测试指标:哪些是重点关注指标,指标定义是什么,把定义明确了,不要产生分歧,指标要求是什么

明确测试场景:紧跟业务挂钩,明确哪些是重点业务,指标评审,场景评审,用例评审

同行业比较、业务预期(跟产品、市场沟通)

性能测试工具对比:

Jmeter介绍&安装

1.2 JDK安装及版本对应

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK版本要求:

»JMeter2.x—最低jdk1.6

»JMeter3.0/3.1—最低jdk1.7

»JMeter3.2/3.3—最低jdk1.8

1.3 JMeter下载及安装n

JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi

系统要求:Java开发,可跨平台

Windows:apache-jmeter-xx.zip

Linux/Mac:apache-jmeter-xx.t

1.4 JDK环境变量配置n

1.4.1计算机右键→属性→高级系统设置→环境变量n

1.4.2新建变量JAVA_HOME,变 量 值 填 JDK 安 装 的 D:Javajdk1.7.0_76_x64n

1.4.3编辑Path变量,在末尾加%JAVAHOME%in;%JAVAHOME%jrein

1.4.4打开cmd输入javac验证是否配置成功

1.5 JMeter环境变量配置

1.5.1计算机右键→属性→高级系统设置→环境变量

1.5.2新建变量JMeter_HOME,变 量 值 填 JMeter 安 装 的 路 径 , 如D:apache-jmeter-3.3

1.5.3编辑Path变量,在末尾加%JMeter_HOME%in

1.5.4打开cmd输入jmeter --version验证是否安装成功

Jmeter介绍&安装

1.6 Jmeter目录介绍

/bin-可执行文件、配置文件

/bin/examples - CSV样例

/bin/report-template -报告模板

/bin/templates -脚本模板

/doc - Jmeter API文档

/extras -扩展插件目录,提供了对Ant的支持

/lib -插件目录,存放Jmeter所依赖的外部jar

/lib/ext - Jmeter依赖的核心jar包、插件包

/lib/junit - junit测试脚本

/Licenses– 许可证书

/Printable_docs -用户使用

1.7 Jmeter配置文件

»jmeter.bat

»jmeter.properti

1.8 Jmeter各大组件介绍

1.8.1 测试计划Testplan

»测试的起点

»其他所有组件的容器

»用来描述性能测试

»所有内容基于一个测试

1.8.2 取样器sampler

»真正干活的

»发送请求到服务器,并等待服务器的响应

»按照其在测试树中的顺序去执

»受逻辑控制器控制

»支持多种协议

»支持二次开发

1.8.3 逻辑控制器LogicController

»控制sampler发送请求的逻辑 、顺序

»控制sampler本身

»模拟复杂逻辑

常用:

ForEach控制器、如果(IF)控制器、循环控制器、随机控制器、事务控制器、吞吐量控制器

1.8.4 配置元件Config Element

»静态数据配置

»配置默认属性、信息

»不会向服务器发送任何请求

»仅对所在测试树分支有效

»放在sampler之前

一个例外!--用户自定义变量(User Defined Variables)此组件无论放在哪里,它定义的变量都会被整个线程所

1.8.5 定时器Timer

»设置请求间的时间间隔

»思考时间:定时器、随机定时器

»集合点:Synchronizing Time

1.8.6 前置/后置处理器

»前置处理器

发出请求(Request)前对即将发出的请求进行特殊处理如:Sample Timeout

»后置处理器

对采样器发出请求后得到的服务器响应(Response)进行处理如:正则表达式提

1.8.7 断言Assertions

»判断取样器是否正常工作

»判断请求响应是否正确

»判断结果是否符合预期

»相当于LR的检查点l

常用:jp@gc - JSON Path Assertion、响应断言、断言持续时间

1.8.8 监听器Listener

»收集整理测试结果

»将测试结果数据进行处理并展示

»生成XML、CSV等形式的文件供后续分析

常用:图形结果、察看结果树、聚合报告、用表格察看结果、保存响应到文件

1.8.9 组件执行顺序

»配置元件(Config Element)

»前置处理器(Pre Processors)

»定时器(Timer)

»取样器(sampler)

»后置处理器(Post Processors,只在有结果可用情况下执行)

»断言(Assertions,只在有结果可用情况下执行)

»监听器(Listener,只在有结果可用情况下执行)

1.8.10 组件作用域

靠测试计划的树型结构中元件的父子关系确定原则:

»采样器(sampler):元件不和其它元件相互作用,因此不存在作用域的问题

»逻辑控制器(Logic Controller):元件只对其子节点中的取样器和逻辑控制器作用

»除采样器和逻辑控制器元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对其父子节点起作用

»除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar