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

Jmeter使用 -1

1 接口测试

1.1 为什么要进行接口测试
  • 接口测试能够绕过前端校验,对后端的接口处理逻辑进行测试(数据的边界/格式/类型)

  • 在一些需要重复测试的需求中,接口自动化的效率比手工执行效率高

1.2 接口测试流程
  1. 熟悉API接口文档(接口业务,地址,端口,鉴权,入参,出参,错误码等信息)

  2. 编写接口用例后进行用例评审

  3. 执行用例

用例编写

  • 正例:输入正常的参数,接口能够正常返回

  • 反例:

    • 鉴权异常:Cookie / Token 为空/过期/错误

    • 参数异常:为空 / 长度异常 / 类型异常 / 边界异常 / 缺少必要参数

    • 其他异常:调用次数限制,分页场景

    • 兼容异常:接口被多端调用 ,版本兼容

2 Jmeter基础知识

2.1 Jmeter文件
  • Jmeter/bin/jmeter.properties 是Jmeter的全局配置文件(设置中文 / Cookie信息管理)

  • Jmeter/bin/jmeter.bat 是Jmeter的启动文件

2.2 Jmeter组件(执行顺序从上到下)
  1. 测试计划:存放测试线程组的容器

  2. 线程组:代表执行的用户数量

  3. 配置元件:配置请求信息(请求头,Cookie)

  4. 前置处理器:请求之前的操作

  5. 定时器:延时发送请求

  6. 逻辑控制器:处理请求逻辑

  7. 取样器:发送请求的最小单元

  8. 后置处理器:请求之后的操作

  9. 断言:对响应结果进行判断

  10. 监听器:收集测试结果

2.3 组件作用域
  • 组件可以作用于同级组件

  • 组件可以作用于统计组件下的下级组件

  • 组件可以作用于上级组件

2.4 使用Jmeter发送请求
  1. 创建测试计划

  1. 在测试计划中添加线程组

  2. 在线程组下添加配置元件

    1. 在线程组添加HTTP Cookie头管理器(实现Cookie自动关联)

    2. 在线程组中添加HTTP 请求默认值(设置默认协议,域名,端口,编码格式)

    3. 在线程组中添加HTTP信息头管理器(公共请求头管理)

  3. 在线程组中添加HTTP取样器,填写请求信息

  4. 在HTTP取样器下添加前置处理器 / 后置处理器(提取器) / 断言

3 Jmeter HTTP请求参数类型

参数:用于在HTTP请求的URL查询字符串或者是在表单数据中发送键值对数据

  • 发送GET请求,会作为URL查询字符串拼接在URL之后

  • 发送POST请求,会作为请求体数据(表单)

消息体数据:数据作为请求体内容传输,通常用于传输JSON类型的参数

  • 需要设置正确的Content-Type头,以告知服务器数据的格式。

文件上传:用于传输二进制数据

  • 文件名称(文件路径) 参数名称 MIME类型(填写multipart/form-data)

4 Jmeter提取器

4.1 正则提取器

名称:提取器名称

注释:提取器备注信息

提取器作用范围:主请求是HTTP取样器配置的请求,子请求是由主请求触发的嵌套请求(重定向/嵌入资源:例如在HTML页面中会请求图片,CSS样式,JS文件等,都会触发子请求)

  • Main Sample and sub-samples:对主请求以及子请求生效(从主请求/子请求中提取数据)

  • Main Sample only:仅对主请求生效(默认选项)

  • sub-samples only:仅对子请求生效

要检查的响应字段:指定从哪个部分提取数据

  • 主体:响应主体(推荐选择)

  • Body(unescaped):响应主体,不转义

  • Body as a Document:通过Apache Tika作为文档处理响应主体

  • 信息头:响应头

  • Requests Headers:请求头(从请求中进行提取)

  • URL:请求的URL。

  • 响应代码:响应状态码(例如200)。

  • 响应信息:响应消息(例如“OK”)

引用名称:后续请求引用该数据使用的名称,通过 ${引用名称} 来使用该变量

正则表达式:提取数据的正则表达式,一个表达式中可以有多个捕获组

  • 捕获组:用()括起来的字符串称为捕获组

  • {"code":(.*?),"message":"(.*?)","data":null} 此处正则表达式有两个捕获组,会从响应中匹配符合该正则表达式的字符串

  • 访问捕获组:在匹配成功后,Jmeter会为每个捕获组分配一个编号,从1开始,可以通过${引用名称_gX}(X为捕获组编号)来访问捕获组的内容

模板:用于从正则匹配结果中创建字符串的模板

使用 $数字$ 表示捕获组-- $1$ 表示第一个捕获组 ,多个捕获组可以自定义连接: $1$_$2$ (使用下划线连接)

匹配数字:指定提取哪个匹配结果。

0 表示随机匹配 , 1 表示匹配第一个符合条件(推荐选项),N 表示匹配第N个 , -1 表示提取所有匹配结果,并存储到多个变量中,多个变量名称为 引用名称_X(1,2,3...)

缺省值:查询失败给变量设置的默认值

使用空默认值:勾选此选项后,如果没有找到匹配项,则变量将被设置为空字符串

正则提取器提取失败可能原因

  • 提取器的作用范围错误或者是提取器提取的响应字段错误,检查正则提取器提取范围和提取字段

  • 正则表达式匹配错误,可以在察看结果树处对正则表达式进行测试,如果提取成功,则说明表达式正确,提取失败,则说明表达式错误

4.2 JSON提取器

  • 只能针对JSON数据生效

JSONPath的提取表达式

  • 表达式 $.节点Key.节点Key ,

  • 取所有子节点,使用 $.* 提取所有子节点

  • 如果key返回的value是列表,列表取值通过下标,下标从0开始

http://www.xdnf.cn/news/15598.html

相关文章:

  • EPLAN 电气制图(十): 绘制继电器控制回路从符号到属性设置(上)
  • python学智能算法(二十二)|SVM-点与超平面的距离
  • 征程 6 UCP 任务优先级 抢占简介与实操
  • 1. 【面试题】- 盒马鲜生(上)
  • 【通识】网络的基础知识
  • MySQL配置性能优化
  • centos 新加磁盘分区动态扩容
  • Curtain e-locker易锁防泄密:从源头把关“打印”安全
  • 从零开始学 Linux 系统安全:基础防护与实战应用
  • Java 集合框架详解:Collection 接口全解析,从基础到实战
  • SpringBoot一Web Flux、函数式Web请求的使用、和传统注解@Controller + @RequestMapping的区别
  • 理解 PS1/PROMPT 及 macOS iTerm2 + zsh 终端配置优化指南
  • PySide笔记之信号连接信号
  • 【LeetCode 热题 100】230. 二叉搜索树中第 K 小的元素——中序遍历
  • Hyperledger Fabric:构建企业区块链网络的实践指南
  • 力扣 hot100 Day47
  • H3CNE 综合实验二解析与实施指南
  • S7-1200 模拟量模块全解析:从接线到量程计算
  • 如何清除 npm 缓存
  • 一台显示器上如何快速切换两台电脑主机?
  • LAMP迁移LNMP Nginx多站点配置全流程
  • 进程终止机制详解:退出场景、退出码与退出方式全解析
  • Transformer从入门到精通
  • 文件夹颜色更改工具 FolderIco 8.1
  • 面试高频题 力扣 200.岛屿数量 洪水灌溉 深度优先遍历 暴力搜索 C++解题思路 每日一题
  • 网络原理 —— HTTP
  • cve-2012-0809 sudo格式化字符串漏洞分析及利用
  • ubuntu 22.04 pam 模块设置用户登录失败锁定
  • python识别整数、浮点数、特殊符号,最简单的方式
  • Pytorch深度学习框架实战教程02:开发环境部署