全栈性能测试修炼宝典-JMeter实战笔记(三)
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实战笔记(三)的更多相关文章
- 全栈性能测试修炼宝典-JMeter实战笔记(二)
性能测试初体验 性能测试实质:利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决:找出系统性能变化趋势,为后续的扩展提供参考 测试分类 测试内容中,负载测试.压力测 ...
- 全栈性能测试修炼宝典-JMeter实战笔记(一)
了解性能测试 性能测试不仅能够定位.分析问题,还要把握系统性能变化趋势:性能测试工程师能够帮助解决性能问题,搞定测试过程中的各种不合理配置,给出专业的优化建议. 第一章 性能方向职业发展 软件测试职业 ...
- 全栈性能测试修炼宝典--Jmeter实战(三)
JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...
- 《全栈性能测试修炼宝典JMeter实战》学习记录
说明:原书中jmeter版本为2.x,我的笔记中截图为5.x
- 全栈性能测试修炼宝典--Jmeter实战(二)
性能测试初体验 1.测试分类 从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试.压力测试.性能测试.大数据量测试.恢复测试.内容泄露测试.竞品测试(比较测试)和可靠性测试. ...
- 全栈性能测试修炼宝典--Jmeter实战(一)
性能测试方向职业发展 1.软件测试发展路线 我们可以暂且把软件测试职业路线分为3个方向,分别是业务路线.技术路线.管理路线:4个象限,分别为执行层.中层.中高层过渡.高层. (1)业务路线 常见业务路 ...
- 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)
点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...
- mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记三之铭文升级版
铭文一级: Flume概述Flume is a distributed, reliable, and available service for efficiently collecting(收集), ...
随机推荐
- 图解 IP 基础知识!
我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer IP 协议 路由器对分组进行转发后,就会把数据包传到 ...
- kubeadm部署k8s
Kubernetes技术已经成为了原生云技术的事实标准,它是目前基础软件领域最为热门的分布式调度和管理平台.于是,Kubernetes也几乎成了时下开发工程师和运维工程师必备的技能之一. 官方文档 ...
- python三大流程
一.三大流程 1. 顺序:按照顺序依次逐行执行代码的过程.自左向右,自上而下 2. 分支:程序按照不同的条件执行不同的处理代码的过程. 分支分为单分支,双分支,多分支 经常用到的分支结构是if语句 i ...
- MVC中Autofac的使用
参考博文 https://www.cnblogs.com/liupeng/p/4806184.html https://blog.csdn.net/qq_37214567/article/detail ...
- 类似818tu.c微信小说分销系统设计之多公众号网页授权自动登录源码分享
/** 转载请保留原地址以及版权声明,请勿恶意修改 * 作者:杨浩瑞 QQ:1420213383 独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...
- 点名小辣辣,带你入门 JMeter (。・∀・)ノ゙
什么是 JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态 ...
- java Stream学习笔记
1.Stream与io无关. 2.Stream和用普通的循环没有太大区别,甚至时间复杂度更高,代码可读性差(通常代码行数更少). 3.流操作就是把循环要做的任务单独抽取出来,最终通过编译在一起. 来看 ...
- JDBC(六)—— 数据库事务
数据库事务 事务 一组逻辑操作单元,使数据从一种状态变换到另一种状态 事务处理 保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式. 当在一个事务中执行多个操作时,要么所有事 ...
- 前台生成JSON
方法一 :在后台需要转换String - json let param = new URLSearchParams(); param.append('username', this.username) ...
- JavaDailyReports10_18
学习内容:HTML基本知识 1.通常标记具有默认属性,当一个标记中只有标记名时,使用默认属性. 2.HTML标记有两种:单标记和双标记,单标记的语法格式: <标记名称/> 3.不同的属性 ...