Jmeter的结构体系拆分为三维空间,如图:
X1~X5:是负载模拟的一个过程,使用这些组件来完成负载的模拟;
X1:选择协议,模拟用户请求,检查服务器响应是否正确,然后收集结果信息;
X2:完善测试脚本部分,包括参数化,关联等;
X3:控制测试脚本业务逻辑;
X4:集合点,模拟用户并发;
X5:用户数,一个线程代表一个用户;
Y1:包含负载模拟部分,负责模拟用户请求;
Y2:可以理解为检查点,结果验证部分,负责验证结果正确性;
Z:可以理解为监控器,负责结果的收集,监听器不仅可以放在线程组之内,也可以放在线程组之外;
一:取样器
模拟用户操作,向被测服务器发送请求,接收服务器的响应信息;如图
二:断言
可以理解为loadrunner检查点,结果验证部分,负责验证结果正确性。复杂的断言可以通过beanshell,
三:监听器
负责结果的收集。jmeter监听器有两个任务:1:添加结果监听,保存测试结果到文件,结果文件可以保存本地供以后分析查看、2:展示结果,jmeter可以以表格或者图形的形式展示结果。常用到的监听器如图
取样器、断言、监听器组合在一起就可以模拟用户请求,验证结果,记录结果
四:前置处理器
如果请求发送前需要做环境或者参数的准备工作,可以用前置处理器来完成。常用的有连接数据库的JDBC preprocessor.
五:配置元件
jmeter的参数化是通过配置元件来完成,该元件为取样器提供预备数据,比如CSV Date Set Config,该元件可以模拟从文件中读取测试数据。
六:后置处理器
后置处理器用来处理服务器的返回结果,jmeter的关联就是通过后置处理器完成的。比如:正则表达式提取器。
前置处理器、配置元件、后置处理器都是为取样器提供数据支持的。
七:控制器
对元件的执行逻辑进行控制。例如:登陆后进行操作,那么用户只需要登陆一次,则在编写登陆脚本是设置仅一次控制器;事物控制器用来控制事物,事物响应时间是我们衡量业务性能的主要指标。
八:线程组
线程组就是用来模拟大量用户负载情况,可以设置线程数(一线程一用户)、设置运行时长等。多场景运行时可以设置多个线程组,相当于loadrunner中不同的group。