当前位置: 首页 > news >正文

JMeter元件简介与JMeter测试计划

《JMeter核心技术、性能测试与性能分析(编程与应用开发丛书)》(张永清,张永松)【摘要 书评 试读】- 京东图书

JMeter元件简介

JMeter元件是使用JMeter来完成性能测试的基础,是整个JMeter的核心。JMeter是由很多个不同种类的元件来共同组成的,每个元件具有不同的功能,编写JMeter的性能测试脚本就是将多个功能不同的元件串联起来完成一个性能测试场景的过程。如图3-1所示,图中展示的就是JMeter中常用到一些元件的种类。每个不同种类的元件可以在性能测试中起到不同的作用,通常需要不同的元件来共同协作,才能完成一个性能测试场景。

图3-1 JMeter元件使用

测试计划

JMeter 测试计划是JMeter中最底层的逻辑运行容器,是用来描述和组织一个性能测试脚本和测试场景的前提。所有的JMeter元件都必须运行在一个测试计划下面,如图3-2所示。

图3-2

从图中可以看到,测试计划主要包括:

(1)测试计划的名称和注释:整个测试计划命名的名称和对该测试计划的详细注释,通常可以自定义填写,当然建议最好能表达脚本的意义,方便将来对历史脚本进行追溯时,能知道当初编写性能测试计划及其脚本的作用。

(2)用户定义的变量:JMeter允许用户在测试计划中添加自定义的变量,这里定义的变量是整个测试计划中使用到的全局变量。

(3)独立运行每个线程组:由于在测试计划中,可以添加多个线程组,该选项主要用于控制多个线程组的执行顺序。当勾选该选项时表示每个线程组都是独立运行的。通常可以做到按照顺序来执行每一个线程组,比如先运行线程组A,等待线程组A运行完后再运行线程组B。如果不勾选该选项,表示每个线程组可以并行执行,如图3-3所示。

图3-3  线程组的执行

这个选项通常适用于混合场景的性能测试。如图3-4所示,我们以在淘宝商城购买商品为例。

  • 用户需要先登录然后再查询商品,而登录只需要做一次,因此,多个并发用户登录可以设置成一个线程组A,用于并发完成用户的登录。
  • 用户登录后,就可以查询商品或者提交订单了,所以查询商品和提交订单可以分别设置为线程组,而且这两个线程组可以并行运行。
  • 由于登录时,每个用户只需要执行一次,并且通常都是先登录,然后再去查询商品或者提交订单,所以登录、查询商品和提交订单之间通常建议设置成串行执行。

图3-4  淘宝商城购买商品示例

(4)主线程结束后运行tearDown线程组:表示是否当线程组停止运行时继续运行tearDown线程组。一般很少用到该选项。

(5)函数测试模式:表示是否保存性能测试的响应结果数据或者性能样本数据。如果勾选此选项,通常会消耗比较大的本地磁盘IO资源。一般不建议勾选,除非是在做性能测试脚本调试时,需要特殊定位问题才建议勾选,并且在问题定位完成后,就去掉该选项的勾选。

(6)添加目录或jar包到ClassPath:用于向JMeter中添加第三方的jar包,在前面已经提到JMeter底层是基于Java语言开发的,这个功能就是用于向JMeter中添加第三方的外部jar包。比如,我们需要通过JDBC的协议对SQL Server数据库进行性能压测,但是由于JMeter自身没有自带连接SQL Server数据库的驱动jar包,所以就需要用到这个功能来添加一个SQL Server的驱动jar包,以完成通过JDBC协议来对SQL Server数据库做性能压测。


文章转载自:

http://WG5N0Ail.fdxhk.cn
http://bWS8yX5O.fdxhk.cn
http://ebOpfi5E.fdxhk.cn
http://XO3lmsM9.fdxhk.cn
http://JrDalqM3.fdxhk.cn
http://onePqQjv.fdxhk.cn
http://RNOUYa8r.fdxhk.cn
http://dUqJM1M3.fdxhk.cn
http://6xHCS2UO.fdxhk.cn
http://g2VK4HCa.fdxhk.cn
http://mUc2ppUl.fdxhk.cn
http://MuzSCN6z.fdxhk.cn
http://QkEvsMw0.fdxhk.cn
http://hN3exOlY.fdxhk.cn
http://bbJCbCPA.fdxhk.cn
http://3gZcTfPC.fdxhk.cn
http://yYALevDe.fdxhk.cn
http://aBEH8dc6.fdxhk.cn
http://wlfpdAmI.fdxhk.cn
http://VeoCtFLU.fdxhk.cn
http://6WC0wpaa.fdxhk.cn
http://hVZKf4aq.fdxhk.cn
http://EqdmXs4p.fdxhk.cn
http://HNzX1pSC.fdxhk.cn
http://hb8SiUYz.fdxhk.cn
http://yzQxaCTZ.fdxhk.cn
http://zdP9JCVx.fdxhk.cn
http://GIyHvmte.fdxhk.cn
http://BFaxXQIv.fdxhk.cn
http://qV5KdlQN.fdxhk.cn
http://www.dtcms.com/a/385881.html

相关文章:

  • 陪诊小程序:让医疗关怀触手可及
  • n*n矩阵方程组Ax=b,使用Eigen矩阵库常用解法介绍
  • IvorySQL 4.6:DocumentDB+FerretDB 实现 MongoDB 兼容部署指南
  • UART,IIC,SPI总线(通信协议)
  • 记录一次小程序请求报错:600001
  • 光谱相机的新兴领域应用
  • GO学习记录十——发包
  • OpenLayers数据源集成 -- 章节十六:XML图层详解:OpenStreetMap数据的动态加载与智能样式渲染方案
  • vector 模拟实现 4 大痛点解析:从 memcpy 到模板嵌套的实战方案
  • tuple/dict/list 这三个数据类型在取值时候的区别
  • 用Python实现自动化的Web测试(Selenium)
  • Spring Boot 2.5.0 集成 Elasticsearch 7.12.0 实现 CRUD 完整指南(Windows 环境)
  • 第九章:使用Jmeter+Ant+Jenkins实现接口自动化测试持续集成
  • 使用IP的好处
  • 育碧确定《AC影》3月20日发售并分享系列游戏首发数据
  • 容器热升级机制在云服务器零停机部署中的实施规范
  • 贪心算法应用:时间序列分段(PAA)问题详解
  • 微信小程序开发教程(十五)
  • 语音DDS系统架构与实现方案:车机与手机语音助手的差异分析
  • 手机群控平台的工作效率
  • DBAPI免费版对比apiSQL免费版
  • node.js在vscode中npm等出现的一个问题
  • node.js学习笔记:中间件
  • Debian更新安全补丁常用命令
  • LeetCode:6.三数之和
  • 号称用rust重写的sqlite数据库tursodb与sqlite及duckdb性能比较
  • cuda stream
  • 云计算在云手机中的作用
  • C++STL学习:unordered_set/unordered_map
  • RTOS 任务状态与调度机制详解