性能_2 Jmeter脚本增强

一、写脚本注意事项(回顾):

  1. 协议: http,https必须写

  2. 域名或ip: 不能有/

  3. 请求方法: 看清楚接口文档

  4. 路径: 不要把 域名和ip再次

    路径中,前后空格要看清楚 %20 空格的urlencoded编码

  5. 内容编码: utf8

  6. 请求体编码控制:

    1. 内容编码

    2. 消息头

    3. 参数,勾选编码 urlencoded

  7. 响应乱码:

    1. 乱码原因: GUI的编码

    2. 修改配置文件

  8. 请求体:

    参数: form-data application/x-www-form-urlencoded

  9. 消息体数据: json xml,要特别注意:一定要添加请求头,Content-Type:application/json

二、脚本知识点延展:

  1. 没有接口文档?

    1. 可以通过抓包: F12 、fiddler、wireshark、Charles

    2. 第三接口:api接口

    3. swagger: 获取接口信息

  2. 录制脚本:

    badboy: 曾经很流行,现在已经不维护,已经被遗弃

    代理录制: 用于脚本参数比较多,或者用手动编写脚本,一时半会写不出来。代理服务器: 自己启动一个代理服务器,本地,要使用代理服务器的ip和端口,使用自己启动的代理服务器

    代理录制脚本:

      1. 添加线程组

      2. 测试计划 > 非测试元件 > http代理服务器

      3. ip就是你自己电脑的ip,port是可以修改,默认8888

    目标控制器,一定要修改 修改为 测试计划>线程组

    添加过滤器

  3. 启动代理服务器时,会出现一个证书的弹窗,如果要抓取https信息时,就必须使用证书

  4. 本地浏览器使用 代理服务器上网

三、脚本功能增强

  1. 关联: 前面接口的响应信息,有动态值,作为后续接口的参数

  2. 变量: 用户定义变量,用户参数

  3. 用户定义变量: 配置元件、测试计划,全局变量**

    作用域:作用于整个‘测试计划’

    在启动运行时,获取一次值,在运行过程中,不会动态获取值,在运行过程中,值一直都不变。

  4. 用户参数:前置处理器,局部变量

    作用域: 作用于当前线程组或当前的取样器

    在启动运行时,获取一次值,在运行过程中,还会动态获取值。

    如:定义用户变量

    var_user: 1888888888

    引用变量: ${var_user}

    jmeter的函数: 方法

    1888888${__Random(1000,9999,)}: 字符串的连接

    使用用户定义变量,设置5循环 register + login: 1次register-success 5次login-success

    使用用户参数,设置5循环 register + login: 5次register-success 0次login-success

  5. 迭代: 一个线程组下所有的接口,全部执行完1次,才算1个迭代,可以勾选每一次迭代循环一次就会出现5,5

  6. 函数:方法,双下划线开头,函数名称,严格区分大小写,tools>函数助手

  7. 重要的函数

    ${__counter(,)} 计数器

    ${__dateTimeConvert(,,,)} 时间格式转换

    ${__digest(,,,,)} 加密 简单加密

    ${__intSum(,,)} 整数相加函数

    ${__P(,)} 获取属性函数

    ${__property(,,)} 获取属性函数

    ${__setProperty(,,)} 设置属性函数

    ${__Random(,,)} 设置随机数

    ${__RandomString(,,)} 设置随机字符串

    ${__threadNum} 获取线程号函数

    ${__time(,)} 获取当前时间戳函数

    ${__timeShift(,,,,)} 数据格式化

    ${__V(,)} 拼接函数

posted @ 2023-05-01 13:27  Alisa-sweet  阅读(36)  评论(0编辑  收藏  举报