概述
什么是jmeter?
阿帕奇公司基于java开发的性能测试工具。
环境配置
启动jmeter
结构及原理
元件:指jmeter工具菜单中的一个子菜单,比如http请求、事务控制器等
组件:一组元件的集合,比如逻辑控制器中包含:事务控制器、循环控制器、仅一次控制器等,他们都是元件,被归类在逻辑控制器。
X1~X5:负载模拟的过程,使用这些组件来完成负载的模拟
Y1:负载模拟部分,模拟用户请求
Y2:结果验证部分,负责验证结果的正确性
Z:负责结果的收集,可以放在线程组之内也可以放在线程组之外,因此他们之间是相交的
体系结构—X1
取样器:
访问路径:【测试计划】——【线程组】——【取样器】
作用:模拟用户操作,向服务器发出http请求、Java请求或者web Service请求等
断言:
访问路径:【测试计划】——【断言】
作用:验证结果是否正确
监听器:
访问路径:【测试计划】——【监听器】
作用:1.添加结果监听,可以保存文件;2.展示结果,以表格或者图形的形式
体系结构——X2
前置处理器:
访问路径:【测试计划】——【前置处理器】
作用:环境或者参数的准备工作
使用场景:在对数据库操作前向建立一个数据库连接
配置元件:
访问路径:【测试计划】——【配置元件】
作用:为取样器提供预备数据
使用场景:1.脚本的参数化配置;2.自动记录服务器的返回数据,如cache信息
后置处理器:
访问路径:【测试计划】——【监听器】
作用:对响应数据做处理
使用场景:处理服务器的返回结果,利用正则表达式提取器进行登录的SessionID的提取
体系结构——X3X4X5
控制器:
访问路径:【测试计划】——【线程组】——【逻辑控制器】
作用:满足一些场景的逻辑控制需求
使用场景:例如用仅一次控制器控制登录次数;
定时器:
访问路径:【测试计划】——【线程组】——【定时器】
作用:满足一些场景的控制需求
使用场景:模拟请求在同一时刻发送,并发负载请求
线程组:
访问路径:【测试计划】——【线程组】——【定时器】
作用:一线程代表一个虚拟用户,模拟大量用户负载
测试片段:
访问路径:【测试计划】——【测试片段】
作用:可以用来辅助做脚本备份和复用,类似脚本开发中模块化
JMeter运行原理
基本原理:以线程方式运行;建立一个线程池,通过多线程运行取样器来模拟产生大量负载,在运行过程中通过断言来判断结果的正确性,通过监听器来收集记录测试结果。
~取样器:模拟用户请求
~如果取样器有参数化需求:通过处理器来实现
~如果有关联需求:通过后置处理器来实现
~要模拟开发:就用定时器来实现
~要设置运行场景,如多少用户、运行多长时间;通过设置线程组来实现
~根据实际业务场景,控制执行逻辑:通过逻辑控制器来实现
Jmeter远程运行逻辑
~控制机:用多台JMeter负载机进行性能测试时,被选中作为管理机的那台机器。控制机也可以参与脚本的运行。
~负载机:向被测试应用发起负载的机器。
~远程运行逻辑:
1.远程负载机首先启动agent程序,待控制机连接;
2.控制机连接上远程负载机;
3.控制机发送指令(脚本和启动命令)启动线程;
4.负载机运行脚本,回传状态(包括测试结果);
5.控制机收集结果并显示。
http协议内容补充
(1)测试计划:
每个脚本都可以认为是一个测试计划,也是Jmeter脚本的根节点;
1).设置用户全局变量。
2).可以独立运行每个线程组,否则默认会同时运行所有线程组(存在多个的情况下);
3).主线程结束后运行tearDown线程组。用来关闭主线程后运行tearDown程序来正常关闭线程组(本次测试运行的线程,迭代完成后关闭处理);
4).函数测试模式。性能测试过程中不建议开启,因为过程中记录的数据比较多影响测试效率。一般用在调试脚本的时候开启此选项;
5).添加目录或jar包到Class path。建议放到Jmeter安装路径的lib目录下,%JMETER_HOMElib目录下。
(2)线程组:
是模拟虚拟用户的发起点,在此可以设置线程数、运行时间及运行次数,还可以定义调度时间与运行时长。
(3) HTTP信息头管理器:
管理HTTP头信息,可以找到User—Agent、Accept、Accept—Language等信息。一般出于安全考虑,信息头会比较复杂。
(4)HTTP请求元件:
最后
以上就是生动春天为你收集整理的jmeter简介的全部内容,希望文章能够帮你解决jmeter简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复