JMeter学习研究之三_ jmeter 脚本测试与主要组件介绍
一、测试录制好的Jmeter脚本
1.1 启动安装完的 JMeter压力测试工具 并打开刚刚生成的测试脚本,就可以用JMeter进行测试了,启动成功会打开如下界面。
1.2 打开JMeter会有一个默认的测试计划,点击文件-打开,选中录制的脚本文件如:WebXSample_addUser.jmx,打开脚本进行测试。注意:在打开此文件之前保存之前的测试计划
1.3 在线程组上添加监听器-聚合报告(用于分析测试结果)后,点击运行 -> 启动,开始测试,测试完毕后在聚合报告中就可以看到测试结果。一个简单的测试计划就完成了。
测试的聚合报告显示截图如下。
除了生产聚合报告显示,还可以添加结果树、表格查看结果等显示方式。
二、Jmeter主要组件介绍
2.1 测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.1.1 名称: 你可以为你的测试计划取一个有意义的名字。
2.1.2 注释: 对测试计划的注释。
2.1.3 用户定义的变量:用户可以自定义变量,在用到此变量的时候直接用 “${变量名}“ 引用即可。例:变量名=url,值=http://www.baidu.com,在需要http://www.baidu.com时直接用${url}即可。
2.1.4 Add directory or jar to classpath: 向类路径即%JMETER-HOME%\lib中添加目录及jar包。
2.2 线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
2.2.1 名称:为线程组起名字。
2.2.2 线程属性 -> 线程数: 设置发送请求的用户数目 ,即并发数。
2.2.3 线程属性 -> Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。
2.2.4 线程属性 -> 循环次数: 请求的重复次数,如果选择后面的forever(默认),那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入1,那么请求将执行一次,如果是0,会出现问题。
2.2.5 调度器配置 -> 启动时间: 测试计划什么时候启动,启动延迟会覆盖它。
2.2.6 调度器配置 -> 结束时间: 测试计划什么时候结束,持续时间会覆盖它。
2.2.7 调度器配置 -> 持续时间: 测试计划持续多长时间,会覆盖结束时间。
2.2.8 调度器配置 -> 启动延迟: 测试计划延迟多长时间启动,会覆盖启动时间。
2.3 取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求。
2.3.1 名称:HTTP请求的名字。
2.3.2 Web服务器 -> 服务器名称或IP、端口号,脚本录制时自动添加,也可以使用“用户自定义变量”。
2.3.3 HTTP请求: 用默认值即可。
2.3.4 同请求一起发送参数: 请求中的参数、值可以在此设置,需要用到参数化及动态数据关联,我们在后面专门介绍。
2.3.5 同请求一起发送文件: 我可以制定同请求一起发送哪个文件。
2.3.6 其他任务包括: 从HTML文件中获取所有内含的资源、用作监视器、Embedded URLs must match。
2.4 监听器(Listener)
监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。
我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图。
2.5 逻辑控制器(Logic Controller)
逻辑控制器(Logic Controller)可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
2.5.1 循环控制器可以设置请求的循环次数或永远循环(如果选中永远的话)。
2.5.2 事务控制器可以将多个请求放在同一个事务中。如果选中Gegerate parent sample,则聚合报告中只显示事务控制器的数据,而不会显示其中的各个请求的数据,反之则全部显示。
如图:
2.6 断言(Assertions)
断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
2.7 配置元件(Config Element)
配置元件(Config Element)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config
2.8 前置处理器(Pre Processors)和后置处理器(Post Processors)
前置处理器(Pre Processors)和后置处理器(Post Processors)负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。
2.9 定时器(Timer)
定时器(Timer)负责定义请求之间的延迟间隔。
==================================== end ====================================