录制脚本
1、 badboy 录制脚本辅助测试

下载并且安装好 badboy 软件
在badboy中录制操作测试的内容: 保存 file – > export to jmeter,保存为 .jmx格式。

注意:badboy中录制的脚本,不是一行行代码,是web 请求对象

在jmeter中打开: 检查请求
添加监听器
修改各项属性
调试脚本
脚本优化增强

2、 jmeter 作为代理服务器录制脚本(了解)
1) jmeter – > 测试计划 – 》非测试元件 – 》 http 代理服务器

在代理服务器中设置过滤条件,去掉图片,css,js 等请求

..js.|..css.|..jpg.|..gif.|..ifc.


2) 在浏览器中设置代理服务器(注意端口号)
如果,jmeter代理服务器没有启动,网络不可以使用了。

Jmeter 其他常见的元素说明
配置元件:脚本中格式,数据进行统一设置,统一管理,例如:http 请求默认值

定时器:控制线程如何执行测试,操作和操作之间等待的时间,比如,同步定时器,用来实现真正的并发。

前置处理器:用于实际请求发出之前对即将发生的请求进行特殊处理。
例如:参数化

后置处理器:用于请求发出之后得到服务器的响应结果进行处理。一般都用于提取响应结果中特定的数据,例如:关联

断言:用于检查测试中得到的响应数据是否符合预期结果,这个断言一般都是在调试脚本过程中使用,性能测试的时候,断言需要禁用。

逻辑控制器:主要是控制测试中请求节点发送请求的逻辑顺序。

性能测试实际上是在测试不同场景下软件的性能,性能测试设计的实际是测试场景,这些场景必须要符合实际软件运行的情况……

脚本增强
逻辑控制器
事务:tps :每秒事务的处理量,这是表达系统处理能力的性能指标,即每秒处理的消息数,点击率。
Jmeter 通过逻辑控制器体现 – 》事务控制器

      逻辑控制器 –》 仅一次控制器,使用于并非是测试对象,但是是前置条件的请求。

比如测试场景:

1、 打开首页(只一次就好)
两种实现方式:
1) 单独的线程组中,单独设置线程属性:1,运行1次,这个线程组建议使用 setup线程组;
2) 都是放在主线程组,添加一个逻辑控制器(仅一次控制器),只运行一次的请求必须放在这个控制器当中。
2、 测试登录的性能(4个用户,连续运行30秒)

线程属性设置:线程数 4 ,循环次数:永远+调度器,持续运行5秒

定时器
集合点:作用,一般用来测试瞬间并发的压力的,目的就是实现真正的并发测试。在Jmeter中集合点是通过定时器来实现的。

 集合点:同步定时器,可以实现真正的并发。“先到的人在集合点等后面的人,等大家都到齐了就一起走。”适合的场景:秒杀,12306网站10点放票等等。


集合的策略:人都到齐了一起走(全部集合),集合参与人数=线程数。
每多少人到了,就一起走(部分集合),可能出现的问题:一直等不到后面的人,必须要设置超时等待时间。

设置定时总结:模拟用户组的数量,表示几个虚拟用户参与集合
0 表示所有用户都参与集合,不分组,即全部集合完毕再进行下一步。
0<设置数<线程总数,表示按照设置的这个数,几个一组集合,那么就会有可能最后一组出现一直无法等到满足集合的情况,就会一直等,因此需要设置超时等待时间,否则会一直等下去,不结束。
设置数>线程数,表示集合人数超出了线程数了,也需要设置超时等待时间,否则一直不开始运行,无法结束。

   超时等待时间的设置:timeout, 如果设置为 0 ,就表示无限等待,如果出现最后一直无法满足集合数量,将一直等下去,一直等到系统的最大值才释放(不可取)Timeout>0,表示结合过程中,最后一组虚拟用户无法达到就和数量,再等待多少时间,就不等了,就自己运行完成。

思考时间:即,用户在页面操作停留的时间。作用,一般都是模拟用户的真实行为,让每个用户的操作有一定的差异,如果有了思考时间,就会初体现虚拟用户之间差异,同时也可以降低对服务器的堆积的时间,在jmeter中通过定时器当中固定定时器或者是随机定时器来体现思考时间。
固定定时器:固定停留时间(间隔),即上下请求发出的时间间隔是固定的。
高斯随机定时器:随机停留(间隔),每个虚拟用户在发出请求时,都是先找随机时间进行间隔停留的。
统一随机定时器。
参数化
参数化的作用:让数据变得不一样,模拟实际情况,每个线程(虚拟用户)的数据都是不一样的,就要进行参数化。

参数化实现过程(步骤):
1、 判断哪些数据需要实现参数化;
2、 设置参数(变量):新建变量,即定义参数(起名称),准备参数的值(重点,难点)
3、 用参数来代替脚本中需要实现参数化的数据。

1)用户定义的变量
特点:自定义变量,这个变量只有一个值,但是这个值是可以发生变化的,适用于 ip地址,欢迎语等的,只有一个值的数据。变量的值可以是任意类型。

测试计划页面 – 》用户定义变量
配置元件 – 》用户定义的变量

2)前置处理器:用户参数
前置处理器: 在请求发出之前,对请求中的数据进行特殊处理。
迭代:需要执行验证的操作再执行一次,就是一个迭代,即被测试操作每执行一次,就是一个迭代。

特点:指定了用户和参数之间的关系,适用于数量比较少的参数化,用户和参数之间有特定的关系。

前置处理 – 》用户参数


3) CSV文件设置(配置元件中)
前提:必须先准备参数值文件,.csv文件或者.dat 文件
适用范围:大批量用户参数化,并且参数值要有一定的规律(利用excel表格准备参数值)
通过参数文件参数化,可以实现大批量数据的参数化,并且每次运行的数据可以不一样

比如 : 100个参数值,有虚拟用户 50个 ==》 50个用户,每个用运行2次
20个虚拟用户 == 》 每个用户运行5次
100 个虚拟用户 ==》每个运行1次

注意:dat 文件:excle 表格准备参数值,文件另存为文本格式(制表符分隔).txt,找到另存好的文件,修改后缀名.dat,特别注意:变量值和变量值之间必须使用 ,(英文逗号间隔)

参数文件中的标题行没有实际的意义,加不加都可以,注意在文件设置的时候,变量名称是从文件左向右依次取不同的列的值。

4) Tools :函数助手

Jmeter 中提供了很多的内置函数,调用之前确保选择正确的函数。

csvread 函数

前提,需要先准备好csv参数文件,注意参数文件中,不要有标题行。
Tools  函数助手 –》csvread函数,参数值取值列 从 0列开始计算,0表示第一列,1表示第二列,从左向右依次类推。

_random 随机函数

作用:指定一个最小值,指定一个最大值,在这个范围内随机取值。

作用域和执行顺序
作用域(范围):出于不同的级别,受控制的范围和可控制的范围时不一样的,特别是定时器。

 例如:如果希望定时只对一个请求生效,就将定时器放在这个请求下,作为请求的子节点;

如果定时器作用于多个请求,那么就将定时器放在请求的同级别,该级别所有请求都受定时器影响。

比如测试场景:
测试500人登录的性能 – 》在线数 500 ,并发数没有要求,脚本不需要添加定时器

测试 500人并发登录的性能 –》 在线500,并发 500,准备脚本叫:单线程组实现,线程属性500,一个登录请求,添加同步定时器

如果是想要多线程组实现(线程数合计500),每个线程组下都要一个登录请求,即需要实现多线程组,多请求并发,添加跟线程组同级别的同步定时器。

测试500 人登录的性能,300人实现并发 – 》在线数500,并发数300,准备脚本,单线程组实现,添加同步定时器,参数设置分组设置 300 人参与集合

测试300人登录的并发,同时200人在注册 –》在线数500,并发数500,准备脚本:
多线程组实现,每个线程组下有不同的请求,一个注册,一个登录,按照实际设置线程属性,添加跟线程组同级别的同步定时器。

结论:并发操作,不一定都是同一个操作,很多时候,并发都是不同的动作一起操作。
如果有多个定时器,在相同范作用范围内,会按照从上至下的顺序依次执行。

常见测试计划中各个元素执行的顺序:在同一个作用域范围下(同级别)执行顺序如下:

配置元件
前置处理器
定时器
取样器
后置处理器
断言
监听器

JMETER录制脚本,脚本增强,参数化,作用域和执行顺序相关推荐

  1. 性能测试(二)—— JMeter元件作用域和执行顺序、JMeter示例、JMeter参数化

    目录 一.JMeter元件作用域和执行顺序 1. 元件的基本介绍 2. 元件作用域 3. 元件执行顺序 二.JMeter使用示例 1. JMeter第一个案例 2. 重点组件 2.1 线程组 2.2 ...

  2. Unity脚本在层级面板中的执行顺序测试3

    断断续续的写了3篇,以后有时间可以做成一个系列了 前面2篇测试了GameObject的顺序,以及Awake和OnEnable的时机: Unity脚本在层级面板中的执行顺序测试1 http://www. ...

  3. 从零开始学前端:作用域、执行顺序 --- 今天你学习了吗?(JS:Day9)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:函数 - 今天你学习了吗?(JS:Day8) 文章目录 从零开始学前端:程序猿小白也可以完全掌握!-今天你学 ...

  4. jmeter录制手机脚本

    整体分为两部分进行设置,首先设置jmeter,然后设置手机,下面分别来讲两个端的设置 一.jmeter的设置 1.启动jmeter,然后测试计划上,点击右键,添加线程组,用于保存录制的脚本 2.添加H ...

  5. Jmeter 录制手机脚本

    添加一个线程组 添加一个HTTP 代理服务器 录制手机时,需要配置手机代理: 先找到开启jmeter的服务器地址,我的是本机开启的jmeter 在doc界面中输入ipconfig 找到本机ip.我得是 ...

  6. JMeter基础之组件的作用域与执行顺序

    对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低性能测试学习的热情,算我们熟悉了所有元件以及元件上的参数了,我们也不知道如何将其组合成我们想要描 ...

  7. JMeter元件作用域和执行顺序

    目标: 1.熟悉元件之间的作用域 2.掌握元件执行顺序 名词解析: 元件:多个类似功能组件的容器统称 组件:实现独立某个功能的统称(类似于函数) 线程组:模拟用户的 配置元件:在测试之前,对测试环境或 ...

  8. 【虫师--系列】JMeter基础之--元件的作用域与执行顺序

    来自: http://www.cnblogs.com/fnng/archive/2012/12/27/2836506.html    作者:虫师 前面有介绍过jmeter的元件类别,对于新手来说,jm ...

  9. mysql脚本编写与案例_MySQL语句执行顺序和编写顺序实例解析

    select语句完整语法: SELECT DISTINCT FROM JOIN ON WHERE GROUP BY HAVING ORDER BY LIMIT 执行顺序: from →join →on ...

  10. Jmeter录制app脚本

    前期准备 电脑安装Jmeter:手机:wifi; 操作步骤: 1.启动Jmeter 2."测试计划"中添加"线程组": 3."工作台"中添加 ...

最新文章

  1. Android 自定义 圆环,Android自定义view实现圆环效果实例代码
  2. 遍历boost::fibers::unbuffered_channel< unsigned int >的测试程序
  3. cadence 添加自己设计的pad方法
  4. android q测试机型,小米9安卓Q系统刷机包开启测试 小米Android Q适配机型一览
  5. Activemq MQTT 简单消息推送示例
  6. HDU 4859 海岸线(最大流最小割)
  7. js 的强制 类型 转换cast, 伪对象?
  8. 快速实现对接京东EDI系统
  9. 拥有16年开发经验,我都使用了什么工具?[最近更新:2017-10-12]
  10. Ubuntu设置静态IP地址的几种方法
  11. 计算机二级考风考纪主题班会,2021年我国计算机二级考试基础概述.doc
  12. 痛心:三天痛别八位院士!中科院院士、著名药学家蒋华良英年早逝,终年57岁...
  13. 分布式系统下的幂等性问题如何解决?
  14. 玩一玩微信公众号开发(二) 管理凭据和自定义菜单
  15. php微信当面付,微信当面付(c#源码)
  16. EZ USB Suite工程导入
  17. python打开chrome浏览器自动登录网站并发表说说批量
  18. 华为存储系统运维管理
  19. QTableWidget 常见用法总结(一)
  20. 被“短信嗅探”盯上 一觉醒来一无所有?

热门文章

  1. Pycharm更换主题
  2. Linux系统安装三菱编程软件,如何安装三菱plc编程软件gx developer
  3. 《惢客创业日记》2019.05.20(周一)向技术大牛请教(二)
  4. UE4导入字体 ttf
  5. InnoDB存储引擎的数据存储方式(存储模式)
  6. 高通msm8909 平台camera 系统软件架构
  7. 2017年美国大学生数学建模竞赛E题O奖65123论文解读
  8. Python 操作 DB2 库_亲测可用
  9. 带你快速实现【C语言】之三子棋(简易版)
  10. 三类医疗器械ERP系统软件排行榜