关于Jmeter的这些概念你必须知道
掌握Jmeter已经是软件测试工程师的基本要求了,由于它免费开源,界面简洁,并且能够快速实现接口和性能的自动化测试,在互联网公司应用广泛,也是招聘需求里的一个高频技能了。
简介
Jmeter是apache组织使用纯java开发的一个开源免费测试工具,它可以实现接口和性能测试。
用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领 域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、 Java 对象、数据库、FTP 服务器, 等等。Jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回 了你期望的结果。
支持多平台linux/Windows/Mac。
软件下载及安装
软件包下载地址
Jmeter官网:http://Jmeter.apache.org/ Jmeter下载地址:http://Jmeter.apache.org/download_Jmeter.cgi
最新版本的已经到5.1.1,对应的JDK版本为1.8。
安装:
首先安装JDK,并且配置好环境变量,这个就不在赘述了。
在bin目录下,双击jmeter.bat。
目录简介
先大概了解下各个目录的作用
bin目录:
主要存放可执行文件,主程序的jar包,配置文件,日志文件等。
常用文件:
- jmeter.bat:windows下的应用启动文件。
- jmeter.sh:linux下启动文件。
- jmeter.log:应用运行的日志文件。
- jmeter.properties:系统配置文件,经常需要根据需要修改。
说明:
jmeter.bat/jmeter.sh:启动脚本中,可以对Jmeter的启动参数JVM堆内存大小进行配置,默认为512M,建议修改成1024M。
* setHEAP=Xms1024m-Xmx1024m*
docs目录:
存放Jmeter官方API文档,便于进行二次开发。
extras目录:
扩展插件目录,常用的是 Jmeter与ant集成的文件。
libext目录:
该目录存放的是Jmeter的插件或者扩展组件。Jmeter会自动在lib和ext下寻找需要的类。
一般扩展的依赖包,会打成jar包放入ext目录。
printtable_docs目录:
该目录存放的是官方用户手册。
Jmeter的体系结构
两个维度:
- X1到X5模拟一个负载请求的过程
- Y1完成请求的实现,Y2断言:实现请求结果的判断,Z监听器:实现结果收集,分析统计。
组件分类
- 测试计划(Test Plan):使用 Jmeter 进行测试的起点,它是其它 Jmeter 测试元件的容器。
- 线程组(Thread Group):代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
- 采样器(sampler):定义实际的请求内容,被线程组包含,比如HTTP请求、java请求等。
- 监听器(Listener) :响应结果的显示,统计等。
- 逻辑控制器(Logic Controller) :帮助用户控制Jmeter的测试逻辑及执行顺序。
- 断言(Assertions) :用来检查从服务器获得的响应内容是否符合预期。
- 配置元件(Config Element) :初始化默认值和变量,以便采样器使用。
- 前置处理器(Pre Processors)和后置处理器(Post Processors) :请求前后的处理操作。
- 定时器(Timer):为采样器设置等待时长。
原件库的执行顺序
- 配置元件
- 前置处理器
- 定时器
- sampler
- 后置处理器
- 断言
- 监听器
作用域
在Jmeter中,配置元件、定时器、前置处理器、后置处理器、断言、监听器都是用来辅助脚本功能实现的,都是 依赖于Sampler组件,这六类组件和Sampler之间就存在一个作用关系,即作用域。
作用域的原则
- 取样器(sampler):不与其它元件相互作用,所以不存在作用域的问题。
- 逻辑控制器(Logic Controller):只对其子节点中的采样器和逻辑控制器起作用。
- 除采样器和逻辑控制器元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对该sampler及子节点起作用。
- 除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点,包括内部节点。
在同一作用域范围内,有多个相同类型元件,则按照它们在测试计划中的顺序依次执行。
- 人工智能芯片是什么?有什么用?
- 柯洁食言“复出”再战AI:明年4月见分晓
- 深入探讨ASP.NET MVC的筛选器
- pytorch自然语言处理之Pooling层的句子分类
- su命令cannot set groups: Operation not permitted的解决方法
- 利用腾讯云 COS 云对象存储定时远程备份网站
- 腾讯云技术公开课:零基础入门高可用云端架构设计
- 包学会之浅入浅出Vue.js:开学篇
- 包学会之浅入浅出Vue.js:升学篇
- 一个只有99行代码的JS流程框架 (一)
- 【腾讯云的1001种玩法】试用腾讯云 Windows Server 2012 R2 镜像的几点经验分享
- 一个只有99行代码的JS流程框架(二)
- 看书的时候如何调试书中简单的C+代码?
- gcForest 集成学习方法的 Python 实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法