一.jmeter 体系结构
1.名词解释
元件 jmemter工具菜单中的一个子菜单,如http请求,事务控制器等,就是一个元件。
组件 一组元件的集合,比如逻辑控制器中有事务控制器,仅一次控制器等,这些都是hi元件,但他们被归类到逻辑控制器中,逻辑控制器就是组件。
2.体系机构
X 空间分五个维度,
x1 取样器,
x2 前置处理器,配置元件,后置处理器,
x3 控制器,
x4 定时器
x5 线程组
X1~X5 就是一个负载模拟的过程,使用这些这件来远程模拟。
Y 空间分两个维度
Y1 包含负载模拟部分
Y2 断言,负责验证结果
Z 监听器 负载结构的收集。
3.jmeter原理
其原理就是建议一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。
5. jmeter 组成部分
取样器:用来模拟用户操作,向服务器(被测系统)发出HTTP请求,Webservice请求或者Java请求等,并接受服务器响应数据。
断言:用来验证结构是否正切 就是用一个预设的结果与实际结果匹配,匹配到则成功,反之失败。
监听器
Jmeter 的测试结果需要添加监听器来收集,他有两个任务
*添加结果监听
*展示结果
取样器 ,断言,监听器组合在一起就可以帮组我们完成发送请求,验证结果及记录三项工作了。
前置处理器
在测试脚本的开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,这个我们就可以在前置处理器中完成
配置元件
性能测试中为了模拟大量用户操作我们往往需要参数化,Jmeter的参数化可以通过配置元件来完成,比如CVS DATA SETCONFIG,他可以从文件中读取数据
后置处理器
后置处理器一般放在取样器之后,用来处理服务器的返回结果,比如要在服务器中取出一个字段之类的操作
前置+后置+配置元件,都是为取样器提供数据支持的。
控制器
一些业务逻辑上的规则 ,可以通过控制器来处理,比如一个请求循环几次之类的
定时器
为了足够真是的模拟用户的负载,我们有时会需要模拟这些请求在同一时刻发送,这个我们就可以通过定时器来完成。
线程组
性能测试需要模拟大量用户负载情况,就可以用线程组来完成
Test Fragment
作用:1 在脚本开发过程中可以用来备份或原件
2 旗下的元件可以被模块控制器调用,可以利用他来模块化请求。
工作台
不直接参与运行
二.jmeter 运行原理
jmeter 是以线程的方式来运行的,通过线程组来驱动多个线程。
jmeter 支持远程运行
控制机:运行多台jmeter 负载机进行性能测试时,被选中作为管理机的那台机器就是控制器。
负载机:向被测试应用服务器发起负载的机器,控制机同事也是一台负载机。
远程运行逻辑:
远程负载机首先启动Agent程序,待控制机连接;
控制机连接上远程负载机;
控制机发送指令启动线程;
负载机运行脚本 ,回传状态;
控制机收集结果并显示。
三.jmeter 测试计划要素
Jmeter 中一个脚本就是一个测试计划,也是一个管理单元
测试计划要素如下:
脚本中测试计划只能有一个;
测试计划中至少要有一个线程组;
至少要有一个取样器;