一、apache jmeter 相关特点
- 开源
- GUI
- 多语言
- 多线程框架
- 支持各种测试方法
- Web: HTTP, HTTPS, SOAP
- 数据库: JDBC, LDAP, JMS
- Mail: POP3
- 旨在分析和衡量web应用程序和各种服务的性能和负载功能行为
二、Jmeter 的工作流程
三、jmeter的基本组件
1、测试计划--test plan
测试计划包含执行脚本的所有步骤。
- 测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行
- 运行前需保存测试计划
- 以.jmx后缀名保存,基于开放测试的格式吗,可用文本编辑器启动
- 可整个计划保存,也可单个片段保存,后期应用
2、线程组--thread group
线程组表示JMeter在测试期间将使用的线程组
- 线程组名称。
- 线程数(您正在测试的用户数)。
- 加速时间(您希望允许线程组从0到3个用户的时间)。
- 循环计数(应该循环测试的次数)。
- 调度程序复选框(“线程组”面板底部的复选框用于启用/禁用额外字段,您可以在其中输入测试持续时间,启动延迟,运行的开始和结束时间)。
2、控制器--controllers
【采样器---samplers】
允许JMeter将特定类型的请求发送到服务器的组件。它模拟用户对目标服务器的页面的请求。
采样器是必须将组件添加到测试计划中的,因为它只能让JMeter知道需要将哪种类型的请求发送到服务器。 请求可以是HTTP,HTTP(s),FTP,TCP,SMTP,SOAP等。
- FTP请求
- HTTP请求(也可用于SOAP或REST Web服务)
- JDBC请求
- Java对象请求
- JMS请求
- JUnit测试请求
- LDAP请求
- 邮件请求
- 操作系统进程请求
- TCP请求
【逻辑控制器---logic controllers】
控制线程中采样器处理顺序的流程。 它还可以更改来自其子元素的请求的顺序。
- 运行时控制器
- IF控制器
- 事务控制器
- 录音控制器
- 简单控制器
- while控制器
- Switch控制器
- ForEach控制器
- 模块控制器
- 包括控制器
- 循环控制器
- 仅一次控制器
- 交错控制器
- 随机控制器
- 随机顺序控制器
- 吞吐量控制器
3、监听器---listeners
当JMeter的采样器组件被执行时,监听器提供JMeter收集的关于那些测试用例的数据的图形表示。它便于用户在某些日志文件中以表格,图形,树或简单文本的形式查看采样器结果
- 图表结果
- 样条曲线可视化器
- 断言结果
- 简单的数据编写者
- 监控结果
- 分布图(alpha)
- 聚合图
- 梅勒展示台
- BeanShell监听器
- 总结报告
- 示例结果保存配置
- 图表完整结果
- 查看结果树
- 汇总报告
4、计时器---timer
定义在每个请求到达时间等待的终止
- 同步定时器
- JSR223 时间
- BeanShell 时间
- 高斯随机定时器
- 统一随机定时器
- 恒定吞吐量计时器
- BSF时间
- 泊松随机时间
5、预处理器元素---pre processors
预处理器元素在采样器发出请求之前执行,如果预处理器附加到采样器元素,那么它将在该采样器元素运行之前执行。预处理器元素用于在运行之前修改样本请求的设置,或更新未从响应文本中提取的变量
- JDBC预处理器
- JSR223预处理器
- RegEx用户参数
- BeanShell预处理器
- BSF预处理器
- HTML链接解析器
- HTTP URL重写修饰符
- HTTP用户参数修饰符
- 用户参数
6、配置元素---config element
配置元素的工作与采样器的工作类似。但是,它不发送请求,但它允许修改采样器发出的请求。
这是一个简单的元素,您可以在其中收集所有采样器的关联配置值,如webserver的主机名或数据库URL等。配置元素只能从放置元素的分支内部访问。
- Java请求默认值
- LDAP请求默认值
- LDAP扩展请求默认值
- 密钥库配置
- JDBC连接配置
- 登录配置元素
- CSV数据集配置
- FTP请求默认值
- TCP采样器配置
- 用户定义的变量
- HTTP授权管理器
- HTTP缓存管理器
- HTTP Cookie管理器
- HTTP代理服务器
- HTTP请求默认值
- HTTP标头管理器
- 简单的配置元素
- 随机变量
7、后处理器元素---post processors
在发出采样器请求之后执行后处理器元素。 如果后处理器连接到Sampler元素,那么它将在该sampler元素运行之后执行。后处理器最常用于处理响应数据,例如,为了将来目的而提取特定值
- CSS/JQuery抽取器
- BeanShell后处理器
- JSR223后处理器
- JDBC后处理器
- 调试后处理器
- 正则表达式提取器
- XPath抽取器
- 结果状态操作处理程序
- BSF后处理器
8、断言
- 响应断言
- json断言
- 大小断言
- Jsr233断言
- xpath断言
- 比较断言
- 断言持续时间
- html断言
- Md5hex断言
- SMIME断言
- xml断言
- Xml schema 断言
- beans hell断言
9、函数
JMeter函数可以称为特殊值,可以填充测试树中任何Sampler或其他元素的字段。
JMeter中函数的语法:
${__functionName(var1,var2,var3)}
- __ functionName匹配函数的名称,圆括号围绕发送给函数的参数。
- 逗号,务必使用“\”对其进行转义,例如:${__time(EEE\, d MMM yyyy)}
- 函数和变量始终区分大小写
未完。。。