IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> JMETER录制脚本,脚本增强,参数化,作用域和执行顺序 -> 正文阅读

[开发测试]JMETER录制脚本,脚本增强,参数化,作用域和执行顺序

录制脚本
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,准备脚本:
多线程组实现,每个线程组下有不同的请求,一个注册,一个登录,按照实际设置线程属性,添加跟线程组同级别的同步定时器。

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

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

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

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:40:57  更:2022-05-12 16:41:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:41:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码