当前位置: 首页 > news >正文

jmeter接口测试[-面试篇-]

1 . 使用jmeter请求接口【背在一起】

  1. 线程组、
  2. 取样器(http请求)------- HTTP信息头管理器 ------HTTP请求默认值
  3. 监听器(察看结果树)

【HTTP请求】中,添加接口的请求方法、url,请求体。

其他:

  • 配置元件【用户定义变量】存一些变量值。
  • 请求前,参数处理、可以使用【前置处理器-JSR223预处理程序】,使用groovy语言,比如密码的MD5加密处理  (具体代码可以问c知道)
import java.security.MessageDigest

// 定义要加密的字符串
def password = "${password}"

// 创建 MessageDigest 实例并指定算法为 MD5
MessageDigest md = MessageDigest.getInstance("MD5")

// 将字符串转换为字节数组并更新摘要
md.update(password.getBytes("UTF-8"))

// 获取加密后的字节码数组并转换为十六进制表示形式
byte[] digest = md.digest()
String hashValue = digest.encodeHex().toString()

// 将加密后的值存储到 JMeter 变量中
vars.put("encryptedPassword", hashValue)

log.info("原始密码: ${password}")
log.info("加密后的密码: ${hashValue}")

 提取响应体信息

要用到后置处理器

  •      【json提取器】,json路径写法是$开头(可以现在察看结果树中测试)如果是对象中, 就 点属性,如果是数组, 就是 [0],  还可以 $.. 后面两个点,直接到下一层去找
  •   正则表达式提取器】, 可以获取字符串中某截数据

2. 请求接口如何判断是否正确(断言)【背在一起】

        添加【断言-响应断言】

3. jmeter工具中可以怎么设置变量。【背在一起】

使用变量用${}, 定义变量有:

  • 【-测试计划-】元件
  • 【-配置元件-用户自定义变量-】元件
  • csv数据  文件参数化--------
    • 【配置元件 -- csv数据 文件设置】
    •  进行数据驱动,可以是多个参数

7. jmeter中操作mysql数据库【背在一起】

  • 【配置元件】-JDBC连接配置器
  • 【取样器】-JDBC请求
    • sql中可以使用变量
    • 可以获取查询结果
    • 可以写更新语句、删除语句

其他问题

4. jmeter怎么录制脚本

测试计划 --非测试元件---http代理服务器  (没在用)

还可以使用badboy录制,后导出jmeter格式。(也没咋用)

5. 定时器说说

固定定时器(Constant Timer)的主要功能是在同一线程内的请求之间引入固定的延时。通过这种方式,可以模拟更真实的用户行为

同步定时器,可以设置集合一小组用户,后并发请求。 若设置了超时时间,不为0,那么如果到了超时时间,没有等到那么多用户数,也会把已经集合的并发出去。

(线程组中,假如设置了100个线程,ramp-up时间为10秒,同步定时器可以指定 10个线程以小组)

注意:

  • 【同步定时器】要放到要同步请求的前面
  • 确保同步数 < 总线程数
  • 100个线程,ramp-up时间为10秒 表示按约0.1秒/个的间隔逐步启动。  即大约 1秒启动10个

6. 非GUI执行.jmx文件

注: 改属性:jmeter.properties 其中 jmeter.save.saveservice.output_format=csv

注: -o 后面的报告文件,不支持覆盖。每次需要给一个新的

         -l  生成的  xxx.jtl   可以被覆盖


# 先生成 jtl
jmeter -n -t  xxxx.jmx  -l xxx.jtl      # 生成jtl再生成html  , -n 表示非gui
jmeter -g xxx.jtl  -o    ./tmp/xxxreport1    # 注要有 tmp , xxxreport是要新创建的
#  jmeter -n -t xxx.jmx -l ./jtl/xxx.jtl    # 也可以加个目录


# 直接生成html
jmeter -n -t xxx.jmx -l xxxx.jtl  -e -o ./tmp/xxxxreport2    

相关文章:

  • 【YOLOv8改进 - C2f融合】C2f融合SCConv :即插即用的空间和通道重建卷积
  • 我的uniapp自定义模板
  • 基于SpringBoot + Vue 的药店药品信息管理系统
  • Yolo v4 (Darknet) Mac M2 安装与运行
  • kmp算法的实现
  • 测试专项3:算法测试基础理论速查手册
  • Spring Boot 整合 Apache Flink 教程
  • 二. JAVA数据类型与变量
  • 软考中级-软件设计师 准备
  • OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板
  • 2025-03-20 学习记录--C/C++-C 库函数 - toupper()、tolower()、 isspace()
  • Python(冒泡排序、选择排序、插入法排序、快速排序,算法稳定性)
  • 双碳战略下的电能质量革命:解码电力系统的健康密码
  • 服务的拆分数据的迁移
  • Springboot项目搭建(9)-分页与文件上传
  • 中国历史文化名城分布矢量数据
  • 一份1000元机器人开发资金计划表
  • QT编程之PCM音频处理
  • ruoyi 小程序使用笔记
  • 基于CVX优化器的储能电池调峰调频算法matlab仿真
  • 海外市场,押注中国无人驾驶龙头
  • 上海比常年平均时间提前12天入夏,明天最高气温可达33℃
  • 张汝伦:康德和种族主义
  • 坚持吃素,是不是就不会得高血脂了?
  • 中央宣传部、全国妇联联合发布2025年“最美家庭”
  • 美国与卡塔尔签署超2435亿美元经济及军事合作协议