JMeter介绍:一个非常优秀的开源的性能测试工具。
从性能工具的原理划分:
Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:
- 负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
- 用户运行器:通常是一个脚本允许引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
- 资源生成器:用于生成测试过程中服务器、负载机的资源数据。
- 报表生成器:根据测试中霍地的数据生成报表,根据可视化的数据显示方式。
测试计划元件
Threads (Users)线程 用户
- setup theread group
- teardown thread group
- thread group (线程组)
逻辑控制器,包括两类元件,一类是用于控制test plan中sampler节点发送请求的逻辑顺序的控制器,常用的有if控制器、switch Controller、Runtime Controller、循环控制器等。另一类是用来组织可控制sampler节点的,如 事务控制器、吞吐量控制器。
配置元件(Config Element)
配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler
和 TCP Request Sampler等类型的配制元件可以修改Sampler的默认数据。(如,HTTP Cookie Manager 可以用于对HTTP Request Sampler的cookie进行管理)
定时器(Timer)
定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里面的“思考时间”。JMeter定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
前置处理器(Per Processors)
用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID。
后置处理器(Post Processors)
用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath Extractor 则可以用于提取响应数据中通过给定XPath值获得的数据。
断言(Assertions)
断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。
监听器(Listener)
这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。图形结果、查看结果数、聚合报告等,都是我们经常用到的元件。