一、 JMeter入门脚本
学习例子
向百度发送请求
- 添加测试计划,默认会有一个测试计划
- 添加线程组
在测试计划上右键 ==> 添加 ==> 线程(用户) ==> 线程组 - 添加HTTP请求
在线程组上右键 ==> 添加 ==> 取样器 ==> HTTP请求 - 配置HTTP请求
名称:发送百度请求
协议:http
服务器名称或IP:www.baidu.com
HTTP请求方法:GET
- 添加察看结果树
在线程组上右键 ==> 添加 ==> 监听器 ==> 察看结果树 - 运行测试计划
点击工具栏的启动按钮,保存之后,在察看结果树查看记录的请求响应结果。
二、 JMeter测试计划元件
测试计划(Test Plan)
描述一个性能测试,包含本次测试所有相关功能。
测试计划相当于一个项目,所有功能请求都是基于测试计划的。
线程组(Threads(Users))
线程组就相当于是业务流程(功能)。线程组名称就相当于业务名称。
说明如下:
属性 | 含义 |
---|---|
线程数(Number of Threads) | 虚拟用户请求数量 10就相当于10个用户在发送请求 |
Ramp-Up时间(秒) | 多少秒之内执行完请求 |
循环次数 | 循环的线程数的次数 勾上永远,需要手动手动停止 |
HTTP请求
HTTP请求相当于是一个接口。
取样器(Sampler)
作用:向服务器发送请求,并记录响应信息和响应时间。
支持不同类型的sampler,支持不同协议的请求。例如:HTTP请求,FTP请求,TCP请求等等。
逻辑控制器(Logic Controller)
逻辑控制器包括两类,一类是用于控制取样器的执行顺序,例如:如果(If)控制器、Switch控制器、Runtime控制器、循环控制器等。一类是用来组织取样器节点的,例如:事务控制器、吞吐量控制器。
配置元件(Config Eelement)
用于提供对静态数据配置的支持,主要是用于做参数化。
例:CSV Data Setconfig可以将本地数据文件形成数据池(Data Pool)。
定时器(Timer)
用于操作之间设置等待时间,例如:取样器与取样器之间设置一个等待时间。
前置处理器(Per Processors)
用于实际请求发出之前对即将发出的请求进行特殊处理
后置处理器(Post Processors)
用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似loadrunner中的关联)
断言(Assertions)
用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。
监听器(Linstener)
对测试结果做可视化的展示和处理的,常用的有察看结果树、图形结果、聚合报告等。
三、 JMeter运行原理
- jmeter是运行以线程的方式运行的
- jmeter GUI模式运行测试脚本对电脑本身的资源消耗较大,无法实现大的并发和压力测试
- 电脑资源有限,所以使用jmeter命令行模式来实现高并发和压力测试
- 使用jmeter GUI模式主要目的是编写和调试jmeter测试脚本
四、 JMeter测试计划要素
- 测试计划只能有一个(所有的测试脚本都是在测试计划下编辑的)
- 在测试计划中至少有一个线程组
- 在线程组中至少有一个取样器
- 在测试计划中必须要有监听器(查看响应结果等)