性能测试实战(五):参数化+关联
一、变量的定义与引用
1、怎么命名变量名称
建议使用 字母、数字或下划线(不要使用数字开头)
2、用户定义的变量
全局变量,可以跨线程组被引用,在脚本启动运行时,获取一次值,在运行过程中,不会动态获取值
3、用户参数
局部变量,启动脚本时获取一次值,在运行过程中,还会动态获取值
4、引用
${变量名称}
二、函数
函数(双下划线开头+函数名称+小括号+参数间使用英文逗号)
java中的方法
Jmeter的函数
Jmeter自带函数:在函数助手中可以直接使用
扩展函数:需要引入第三方jar包,才能在函数助手中找到和使用,但有些找不到文档
Tools -> 函数助手 -> 选择函数 -> 生成函数
用法:字符串直接跟上函数 相当于字符串的连接 ,例如 182$...
思考:在做性能测试时,我们要注册用户,每次注册的账号都是不一样的,然后我想要用新注册的账号去登录,我怎么让新注册的账号,能登陆成功?
实验一:采用用户定义的变量,因为它只获取一次值,但只有第一次成功,但多次使用时,会出现注册不了的情况:
如果在线程组下面,直接添加用户自定义变量 用户参数 (值使用随机函数,动态生成),实际满足不了要求(用户定义变量注册成功一次,后面的用户登录不了;用户参数注册成功没登陆失败)
实验二:如果把用户参数放在注册接口下面,则每次注册的账号都不一样,注册都能成功,登录,于注册的账号一致,每次也都能登录成功了 可采用该方式
实验三:如果把用户定义变量放在注册接口下面,不能满足要求
实验四:如果把用户参数,放在线程组下面,同时,勾选用户参数中的【每次迭代更新一次】可采用该方式
每次注册的号码都发生了变化,注册都成功,注册和登录,在一个线程组下面,是1个迭代整体,两个接口都执行完才完成1次完整的迭代,所以,在一个迭代内部,我们注册和登录用户的账号是同一个账号,所以,也能成功
迭代一次 VS 循环一次
迭代一次:是线程组下所有的取样器执行完1次
循环一次:只是对其内部循环体进行循环,不包含外部循环
1、随机函数 __Random
2、计数器函数 __counter VS 计数器元件
只能实现简单加1
如果想要自定义步长的加减法,需要使用配置原件>计数器元件
计数器元件
自定义步长
设置了最大值,当运行过程中超过了最大值,就会从起始值开始循环
【与每个用户独立跟踪计数器】每个线程都有自己独立的计数器
3、读取CSV函数 __CSVRead VS CSV文件设置
只能实现简单的读取,不建议使用
4、时间函数
(1)时间格式转换 __dateTimeConvert
(2)随机日期函数 __RandomDate
(3)当前时间戳获取 __time
(4)时间偏移函数 __timeShift
5、加密函数 __digest
要实现复杂加密,需要写代码,但不要使用beanshell,因为性能低,请使用jsr223元件
jsr223支持多种语言,如python2、js、java等
需要引入加密的算法jar包时,需要开发提供,并放到jmeter的lib文件夹下
6、整数3加法运算 __intSum
7、运行简单代码的函数 __grocvy VS __jexl3
8、获取属性函数 __P VS __property
9、设置属性函数 __setProperty
属性:.properties结尾的文件
静态属性
动态属性
10、拼接函数 __V
我定义了 user_1 user_2 user_3 三个变量
我想在脚本中,循环的时候,依次使用这三个变量的值
可能会想到拼接的方式,如${user_$m},但这种方式不生效
解决上述问题可以这样使用: ${__V(user_ ${m},)}
三、关联
1、如果想要从响应信息为json格式的数据中提取出想要的数据,请优先选择json后置处理器
2、后置处理器,对响应数据进行处理
常用:json提取器、正则提取器
3、json表达式
$ 开头,接上节点名称,多个节点之间用英文 “.” 连接 (绝对值写法)
$.. 节点名称 (相对路径写法)
4、关联
指的是前一个请求的动态响应值,作为后续接口的传入参数
性能测试实战(五):参数化+关联相关推荐
- # istio 实战 五 网格可视化 - kiali
系列文章 istio 实战 一 Kubernetes 中快速搭建 istio istio 实战 二 bookinfo 部署 istio 实战 三 智能路由 istio 实战 四 权重路由以及监控 is ...
- [原创].NET 分布式架构开发实战五 Framework改进篇
原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...
- OpenCV C++案例实战五《答题卡识别》
OpenCV C++案例实战五<答题卡识别> 前言 一.图像矫正 1.源码 二.获取选项区域 1.扣出每题选项 2.源码 三.获取答案 1.思路 2.辅助函数 3.源码 4.效果 总结 前 ...
- 《Web性能测试实战》性能测试用例模板
<Web性能测试实战>性能测试用例模板 <LoadRunner性能测试实战>图书配套性能测试课程: 1.性能测试入门与虚拟用户开发基础(点击进入) ...
- 《WEB性能测试实战》之WEB性能测试分析
性能测试的结果分析是性能测试的重中之重.在实际工作中,由于测试的结果分析比较复 杂.需要具备很多相关的专业知识,因此常常会感觉拿到数据不知从何下手.这也是我学习性能 测试过程中感觉比较尴尬和棘手的事, ...
- Android组件化实战五: APT的高级用法JavaPoet
Android 组件化实战一: Gradle基础语法 Android 组件化实战二: 项目部署 Android组件化实战三: 模块之间的交互 Android组件化实战四: APT的介绍与使用 Andr ...
- ATTCK实战系列——红队实战(五)
ATT&CK实战系列--红队实战(五) 文章目录 ATT&CK实战系列--红队实战(五) 前言 靶场搭建 网络配置 外网渗透 内网渗透 内网信息收集 msf反弹shell 设置路由 探 ...
- 【在线专家问答】 - WEB性能测试专家 唐勇 与您分享《性能测试实战经验》
[在线专家问答] - WEB性能测试专家 唐勇 与您分享<性能测试实战经验> http://www.automationqa.com/uchome/space.php?uid=1& ...
- Jmeter性能测试实战教程系列-搭建分布式性能测试环境(五)
Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具 ...
最新文章
- liunx服务(Nginx服务器 web服务器源码包和rpm 服务平滑升级)
- Linux内存管理 (4)分配物理页面
- java 类持久化_Java 持久化之 -- IO 全面整理(看了绝不后悔)
- MOON.ORM 3.5 MYSQL的配置及使用方法(最新版免费下载使用.欢迎加盟)
- Redis 如何实现主从复制
- 《CCIE路由和交换认证考试指南(第5版) (第1卷)》——导读
- webpack笔记_(1)_webpack 安装
- CentOS 7 (RHEL 7)服务管理命令的变化
- 十一、JAVA接口的定义和使用
- 解决微软应用商店打不开 代码: 0x80131500
- 论物理学与技术革命之间的关系
- sharepoint文档库文件下载
- 超级实习生计划学习笔记——Redis字符串
- 百万点赞怎么来?Python批量制作抖音的卡点视频原来这么简单!
- 手动压缩Outlook PST和OST文件
- 电容容量越大越好吗?
- elo匹配算法c语言,匹配算法全面解析:采用国际通用“ELO等级分系统”
- 旋钮编码器c代码_旋转编码器EC11驱动
- Python免费的家庭视频监控系统(1)
- warning警告问题解决1
热门文章
- oracle材料成本发票价差,ORACLE ERP 成本核算会计信息归纳
- SuperMap iServer 重置密码
- msm8953 uart配置
- mysql计算百分比_mysql – 如何计算百分比?
- QC1.0、QC2.0、QC3.0、QC4.0协议介绍
- excel锁定单元格不能修改_3步让表格只能输入不能修改,保护表格格式,快速搞定数据汇总...
- php对接建行h5网页支付
- mySQL 2008安装MOF无法连接_SQL Server 2008安装失败,提示MOF编译器无法连接WMI服务器,该如何解决.谢谢!...
- 20220606 关于矩阵的Young不等式
- 计算机中的查找快捷键,Excel搜索快捷键如何在excel中快速找到所需信息