JMeter体系结构

简介

JMeter是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作。

JMeter体系结构

X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟

Y1:包含的是负载模拟部分,负责模拟用户请求

Y2:结果验证部分,负责验证结果正确性

Z:负载结果的收集

JMeter基本原理:建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。

X1取样器:用来模拟用户操作,向服务器发出HTTP请求、WebService请求或者Java请求等。取样器的访问路径:【测试计划】->【线程组】->【Sampler】

X1断言:用来验证结果是否正确,即用一个预设的结果与实际结果匹配。断言的访问路径:【测试计划】->【断言】

X1监听器:收集JMeter的测试结果:(1)添加结果监听,并保存测试结果到文件(2)展示结果。访问路径:【测试计划】->【监听器】

取样器、断言、监听器组合完成发送请求、验证结果、记录结果三项工作。

X2前置处理器:请求发送前环境或者参数的准备工作。访问路径:【测试计划】->【前置处理器】

X2配置元件:完成JMeter的参数化,记录服务器的返回数据。即它为取样器提供预备数据,然后由取样器发出请求。访问路径:【测试计划】->【配置元件】

X2后置处理器:处理服务器的返回结果。访问路径:【测试计划】->【后置处理器】

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

X3控制器:访问路径:【测试计划】->【线程组】->【逻辑控制器】

X4定时器:为了真实模拟用户负载,需要模拟这些请求在同一时刻发送,定时器具备这种集合的功能。访问路径:【测试计划】->【线程组】->【定时器】

X5线程组:模拟大量用户负载的情况。一线程一用户,通过设置运行的线程数来模拟用户,还可以设置运行时长、定时运行等。访问路径:【测试计划】->【Threads(Users)】

JMeter运行原理:在JMeter中以线程的方式来运行。JMeter支持远程运行。

远程运行逻辑:

(1)远程负载机首先启动Agent程序,待控制机连接

(2)控制机连接上远程负载机

(3)控制机发送指令(脚本及启动命令)启动线程

(4)负载机运行脚本,回传状态(包括测试结果)

(5)控制机收集结果并显示

JMeter测试计划要素:JMeter中一个脚本即是一个测试计划,也是一个管理单元。

(1)要素一:脚本中测试计划只能有一个

(2)要素二:测试计划中至少要有一个线程组

(3)要素三:至少要有一个取样器

(4)要素四:至少要有一个监听器

JMeter与LoadRunner异同:

(1)LoadRunner是性能测试领域的王者,标准制定者;JMeter是后起之秀。

(2)LoadRunner是C语言开发,支持Java、VB、C#;JMeter是纯Java开发,支持多种Java脚本语言。

(3)LoadRunner费用高,JMeter免费;JMeter没有LoadRunner强大的录制功能。

(4)LoadRunner兼容性更好,支持市面上几乎所有的应用的性能测试。

JMeter运行逻辑:

(1)利用取样器模拟用户请求;使用配置管理器做一些数据及环境的准备;使用后置处理器对响应的数据做处理

(2)控制运行;使用线程组来设置运行场景,利用逻辑控制器来控制业务

(3)收集结果,利用断言来验证测试结果,利用监听器来收集显示测试结果

全栈性能测试修炼宝典-JMeter实战笔记(三)的更多相关文章

  1. 全栈性能测试修炼宝典-JMeter实战笔记(二)

    性能测试初体验 性能测试实质:利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决:找出系统性能变化趋势,为后续的扩展提供参考 测试分类 测试内容中,负载测试.压力测 ...

  2. 全栈性能测试修炼宝典-JMeter实战笔记(一)

    了解性能测试 性能测试不仅能够定位.分析问题,还要把握系统性能变化趋势:性能测试工程师能够帮助解决性能问题,搞定测试过程中的各种不合理配置,给出专业的优化建议. 第一章 性能方向职业发展 软件测试职业 ...

  3. 全栈性能测试修炼宝典--Jmeter实战(三)

    JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...

  4. 《全栈性能测试修炼宝典JMeter实战》学习记录

    说明:原书中jmeter版本为2.x,我的笔记中截图为5.x

  5. 全栈性能测试修炼宝典--Jmeter实战(二)

    性能测试初体验 1.测试分类 从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试.压力测试.性能测试.大数据量测试.恢复测试.内容泄露测试.竞品测试(比较测试)和可靠性测试. ...

  6. 全栈性能测试修炼宝典--Jmeter实战(一)

    性能测试方向职业发展 1.软件测试发展路线 我们可以暂且把软件测试职业路线分为3个方向,分别是业务路线.技术路线.管理路线:4个象限,分别为执行层.中层.中高层过渡.高层. (1)业务路线 常见业务路 ...

  7. 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)

    点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...

  8. mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法

    版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...

  9. 【慕课网实战】Spark Streaming实时流处理项目实战笔记三之铭文升级版

    铭文一级: Flume概述Flume is a distributed, reliable, and available service for efficiently collecting(收集), ...

随机推荐

  1. 神经网络高维互信息计算Python实现(MINE)

    论文 Belghazi, Mohamed Ishmael, et al. " Mutual information neural estimation ."  Internatio ...

  2. Python之excel第三方库xlrd和xlwt

    Python读取excel表格的库xlrd,首先安装xlrd: pip3 install xlrd 代码: #!usr/bin/env python3 #!-*-coding=utf-8 -*- '' ...

  3. C# 递归算法获取下级子级 2种方法

    第一种 直接实体添加Children 实体类 public class DepartmentItem { /// <summary> /// 部门Id /// </summary&g ...

  4. Redis 设计与实现:数据库

    本文的分析都是基于 Redis 6.0 版本源码 redis 6.0 源码:https://github.com/redis/redis/tree/6.0 服务器中的数据库 Redis 服务器将绝大部 ...

  5. [Python] iupdatable包:Timer 类使用介绍

    iudatable包是我对常用函数进行的封装后发布的一个python包,教程汇总目录: [Python] iupdatable包使用说明 安装 iupdatable 包 pip install iup ...

  6. JAVA 实体类List<Entity >转 List<Map>

    public static <T extends IdEntity> List<Map<Object,Object>> EntityConvertMap(List& ...

  7. 【Go】四舍五入在go语言中为何如此困难

    四舍五入是一个非常常见的功能,在流行语言标准库中往往存在 Round 的功能,它最少支持常用的 Round half up 算法. 而在 Go 语言中这似乎成为了难题,在 stackoverflow ...

  8. Node 跨域问题 Access to XMLHttpRequest at 'http://localhost:8080/api/user/login' from origin 'http://localhost:808

    人不可能踏进同一条河流,我可以一天在同一个问题上摔倒两次. 这次是跨域问题,都是泪,教程提供的服务端代码虽然配置了文件,但是依然是没有解决跨域问题,依然报错 Request header field ...

  9. 每日一个linux命令5 -- rm

    rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命 ...

  10. KDiff3 Merge工具的使用 极简教程

    www.swack.cn - 原文链接:KDiff3 Merge工具 1.软件安装 下载链接:KDiff3-64bit-Setup_0.9.98-2.exe 安装KDiff3 git config - ...