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(,)} **获取属性函数**

在其他线程组使用该函数,可以跨线程使用 动态的用户参数

执行结果:

 

  • 78+ ${__property(,,)} **获取属性函数**
  • + ${__setProperty(,,)} 设置**属性函数**
自定义的函数
使用设置属性方法
属性显示中有对应信息
执行后属性被引入
  • + ${__Random(,,)}
  • + ${__RandomString(,,)}
  • + ${__threadNum} 获取线程号函数
  • + ${__time(,)} 获取**当前时间戳函数**
  • + ${__timeShift(,,,,)} 数据格式化
  • + ${__V(,)} **拼接**函数

Q: 动态属性:一直存在?还是朝生夕死?

A: 动态属性,是在运行过程中产生的,关闭jmeter,就是自动释放了。

Q:jmeter中,多个启用线程组,在执行时,默认是并行执行

勾选后 会默认进行串行执行

A:在性能测试中,我们不会勾选测试计划中 独立运行每个线程组

 

posted @ 2022-11-02 19:13  成子吃橙子  阅读(65)  评论(0编辑  收藏  举报