JMeter的结构图及基础原理:

        这是一个三维空间,三维坐标轴分别是X、Y、Z。

        X维度实际上是描述的是不同的组件,这些组件是独立的个体,我们依靠这些组件完成性能测试中负载的模拟,这些组件分别是:

  • X1 采样器(Sampler):采样器用来向服务器发送 HTTP 请求,并接受服务器的响应数据;JMeter 的采样器有很多种原件(采样器称为组件,其中的具体一种采样器如 HTTP 采样器称为元件),基本涵盖了常见的协议,如HTTP、FTP、JAVA、JMS、LDAP、MAIL、MongoDB、SMTP、SOAP、TCP、JUnit等;

  • X1 断言(Assertions):断言用来验证结果是否正确,即判断请求是否成功、返回数据是否符合要求等,通过预设的结果和实际返回的结果进行比较,匹配到了就说明断言成功,JMeter的断言组件也有多种元件,如响应断言、XML断言、BeanShell断言;

  • X1 监听器(Listener):监听器用来收集测试结果,监听器有两个任务,即添加结果监听和展示结果,监听器组件也有多种元件,常见的如查看结果树、聚合报告;

采样器+断言+监听器,组合在一起就可以完成发送请求、验证结果、记录结果这样的工作;

  • X2 前置处理器(Pre Processors):前置处理器用来完成请求发送前的一些环境或者参数的准备工作,比如操作数据库前需要建立一个数据库连接;

  • X2 配置原件(Config Element):配置原件用来为采样器提供预备数据,比如做参数化,生成动态数据,或从文件中读取测试数据等;

  • X2 后置处理器(Post Processors):后置处理器用来处理服务器响应中的数据,比如获取登录后的session_id,后置处理器一般放在采样器之后;

前置处理器+配置元件+后置处理器,都是采样器提供数据支持的,而采样器关注的是业务逻辑。

  • X3 控制器(Logic Controller):控制器用来控制采样器的执行逻辑,如执行顺序、执行次数等,各种控制器组合在一起,也能完成各种业务上的奇葩需求

  • X4 定时器(Timer):定时器用来完成集合的功能,比如为了足够真实地模拟用户负载,会需要模拟这些请求在同一个时刻发送,定时器也有很多种类的元件;(多用于并发测试)

  • X5 线程组(Threads):线程组用来模拟大量用户负载的情况,可以设置运行的线程数(一个线程一个用户)、运行时长、定时运行等;

        Y维度实际上是对性能测试进行了一个划分,Y1是负责模拟用户请求的部分,Y2是负责验证结果正确的部分,因为这两部分同时需要线程组,所以是相交的。

        Z维度只有一个监听器(Listener),监听器用来负责结果收集,监听器不仅可以放在线程组之内,也可以放在线程组之外,所以监听器与它们是相交的。

猜你喜欢

转载自blog.csdn.net/weixin_44240224/article/details/129863891
今日推荐