jmeter变量函数以及抓包用法
抓包
代理服务器: 自己启动一个代理服务器
本地,要使用代理服务器的ip和端口,使用自己启动的代理服务器
操作步骤
- 添加线程组
- 测试计划 > 非测试元件 > http代理服务器
一定要修改 修改为** 测试计划>线程
ip就是你自己电脑的ip,port是可以修改,默认8888
目标控制器,**一定要修改 修改为** 测试计划>线程组
如果要抓取https信息时,就必须使用证书
执行抓包
脚本功能增强
关联: 前面接口的响应信息,有动态值,作为后续接口的参数参数
我需要将手机号码,发生变化,可以通过 变量来进行控制,
变量: 用户定义变量,用户参数 ---全局变量,作用于整个‘**测试计划**
在启动运行时,获取一次值,在运行过程中,不会动态获取值,在运行过程中,值一直都不变
用户变量
取一次值,在运行过程中,不会动态获取值,在运行过程中,值一直都不变
用户参数 作用域: 作用于当前线程组或当前的取样器,在启动运行时,获取一次值,在运行过程中,还会动态获取值
在每次运行过程中 ,值会动态变化
模拟注册和登录场景
使用用户定义变量注册 登录5次,最终可以成功登录多少个?
答案是: 1次register-success 5次login-success (因为用户定义变量 ,获取一次值,在运行过程中,不会动态获取值,在运行过程中,值一直都不变)
使用用户参数 变量注册 登录5次,最终可以成功登录多少个?
答案是:5次注册成功,0次登录失败 ,因为 用户参数 在运行过程中会动态获取值
迭代: 一个线程组下所有的接口,全部执行完1次,才算1个迭代
迭代选项
所以5次都可以登录成功
函数
双下划线开头 函数名称,严格区分大小写
比较重要的函数
- + ${__counter(,)} 计数器
- + ${__dateTimeConvert(,,,)} 时间格式转换
- + ${__digest(,,,,)} **加密** 简单加密
- + ${__intSum(,,)} 整数相加函数
- + ${__P(,)} **获取属性函数**
- + ${__property(,,)} **获取属性函数**
- + ${__setProperty(,,)} 设置**属性函数**
- + ${__Random(,,)}
- + ${__RandomString(,,)}
- + ${__threadNum} 获取线程号函数
- + ${__time(,)} 获取**当前时间戳函数**
- + ${__timeShift(,,,,)} 数据格式化
- + ${__V(,)} **拼接**函数