Jmeter中的配置原件(一)

 配置原件

11c287f7599e488d9fe12730b4934859.png


1--CSV Data Set Config 

用途

  • 参数化测试:从CSV文件中读取数据,为每个请求提供不同的参数值。
  • 数据驱动测试:使用外部数据文件来驱动测试,使测试更加灵活和可扩展。

配置步骤

  1. 准备CSV文件

    • 创建一个CSV文件,每行代表一组测试数据。
    • 例如,创建一个名为test_data.csv的文件,内容如下:
      username,password
      user1,pass1
      user2,pass2
      user3,pass3
  2. 添加CSV Data Set Config

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “CSV Data Set Config”。
  3. 配置CSV Data Set Config

    • 名称:给CSV Data Set Config一个有意义的名称。
    • 文件名:指定CSV文件的路径(可以是绝对路径或相对路径)。
    • 变量名:为CSV文件中的每一列指定一个变量名。这些变量名将在测试计划中使用。
    • 分隔符:指定CSV文件中的分隔符,默认是逗号(,)。
    • 忽略第一行:选择是否忽略CSV文件的第一行(通常是列标题)。
    • 回收策略:选择当数据集用尽时的行为。
      • True:重新开始读取文件。
      • False:停止测试。
    • 共享模式:选择数据共享模式。
      • All threads:所有线程共享同一个数据集。
      • Current thread group:当前线程组内的线程共享同一个数据集。
      • Current thread:每个线程都有自己独立的数据集。

示例配置

假设我们需要测试一个登录接口,使用CSV文件中的用户名和密码进行参数化。

  1. 创建CSV文件

    • 文件名:test_data.csv
    • 内容:
      username,password
      user1,pass1
      user2,pass2
      user3,pass3
  2. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“登录测试”)。
  3. 添加CSV Data Set Config

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> CSV Data Set Config。
    • 配置CSV Data Set Config:
      • 名称:CSV Data Set Config
      • 文件名:test_data.csv
      • 变量名:username,password
      • 分隔符:,
      • 忽略第一行:勾选
      • 回收策略:False
      • 共享模式:Current thread
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:POST(假设登录接口是POST请求)。
      • 路径:登录接口的路径(例如/login)。
      • 参数:
        • 名称:username
        • 值:${username}
        • 名称:password
        • 值:${password}
  5. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

优化建议

  1. 文件路径

    • 确保CSV文件的路径正确,可以使用相对路径以便于移植。
  2. 数据量

    • 如果CSV文件中的数据量很大,确保JMeter有足够的内存来处理这些数据。
  3. 数据共享

    • 根据测试需求选择合适的共享模式。对于需要每个线程独立数据的场景,选择Current thread模式。
  4. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保变量被正确替换。
  5. 错误处理

    • 如果CSV文件中的数据格式不正确,可能会导致测试失败。确保CSV文件的格式正确,并在必要时添加错误处理逻辑。

21b1ae137dc745d6adbcf94db2e96a8b.png


2--HTTP信息头管理器

用途

  • 设置请求头:为HTTP请求添加自定义的头信息。
  • 保持一致性:确保所有相关的HTTP请求都包含相同的头信息。
  • 模拟真实请求:许多Web应用依赖于特定的请求头信息,使用HTTP信息头管理器可以更真实地模拟用户请求。

配置步骤

  1. 添加HTTP信息头管理器

    • 右键点击线程组(Thread Group)或特定的HTTP请求。
    • 选择“添加” -> “配置元件” -> “HTTP信息头管理器”。
  2. 配置HTTP信息头管理器

    • 名称:给HTTP信息头管理器一个有意义的名称。
    • 添加头信息:点击“添加”按钮,添加需要的头信息。
      • 名称:头信息的名称(例如Content-TypeAuthorizationCookie等)。
      • :头信息的值(例如application/jsonBearer <token>sessionid=12345等)。

示例配置

假设我们需要测试一个需要认证的API,并且每个请求都需要包含特定的Authorization头和Content-Type头。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“API测试”)。
  2. 添加HTTP信息头管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP信息头管理器。
    • 配置HTTP信息头管理器:
      • 名称:HTTP信息头管理器
      • 添加头信息:
        • 名称:Authorization
        • 值:Bearer <your_token>
        • 名称:Content-Type
        • 值:application/json
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:GET、POST等。
      • 路径:API的路径(例如/api/v1/users)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

优化建议

  1. 避免重复配置

    • 如果多个HTTP请求需要相同的头信息,可以将HTTP信息头管理器添加到线程组级别,而不是每个请求单独配置。这样可以减少重复配置,提高维护的便利性。
  2. 动态头信息

    • 对于需要动态生成的头信息(例如Token),可以使用JMeter的变量或函数。例如,可以在头信息的值中使用${token},然后在测试计划中定义token变量。
  3. 调试和验证

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保头信息被正确添加。
    • 可以使用“查看结果树”中的“请求”选项卡查看发送的请求头信息。
  4. 性能考虑

    • 尽量减少不必要的头信息,只添加必需的头信息,以减少请求的开销。
    • 对于大型测试计划,确保头信息的配置不会导致性能瓶颈。

 


3--HTTP缓存管理器

用途

  • 减少重复请求:避免多次请求相同的静态资源(如图片、CSS、JavaScript文件),从而减少网络流量和服务器负载。
  • 提高测试效率:通过缓存机制,可以加快测试用例的执行速度,特别是在多次迭代测试中。
  • 模拟真实用户行为:浏览器通常会缓存静态资源,使用HTTP缓存管理器可以使测试更接近真实用户的上网体验。

配置步骤

  1. 添加HTTP缓存管理器

    • 右键点击线程组(Thread Group)或测试计划(Test Plan)。
    • 选择“添加” -> “配置元件” -> “HTTP 缓存管理器”。
  2. 配置HTTP缓存管理器

    • 名称:给HTTP缓存管理器一个有意义的名称。
    • 清除每迭代的缓存:选择是否在每次迭代开始时清空缓存。
      • True:每次迭代开始时清空缓存。
      • False:不清空缓存,保持上一次迭代的缓存状态。
    • 使用Expires字段:选择是否使用HTTP响应中的Expires头来决定缓存的有效期。
      • True:使用Expires头。
      • False:不使用Expires头。
    • 最大缓存条目数:设置缓存的最大条目数。超过这个数量时,最早的缓存条目将被移除。
    • 最大缓存大小:设置缓存的最大总大小(以字节为单位)。超过这个大小时,最早的缓存条目将被移除。

示例配置

假设我们需要测试一个Web应用程序,并希望模拟浏览器的缓存机制以减少不必要的网络请求。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“缓存测试”)。
  2. 添加HTTP缓存管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP 缓存管理器。
    • 配置HTTP缓存管理器:
      • 名称:HTTP 缓存管理器
      • 清除每迭代的缓存:False
      • 使用Expires字段:True
      • 最大缓存条目数:50
      • 最大缓存大小:10000000(10MB)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:GET(假设请求的是静态资源)。
      • 路径:静态资源的路径(例如/images/logo.png)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

注意事项

  • 缓存策略:HTTP缓存管理器会根据HTTP响应头中的Cache-Control、Expires等字段来决定缓存的有效期。
  • 缓存大小:合理设置最大缓存条目数和最大缓存大小,避免占用过多内存。
  • 清除缓存:根据测试需求选择是否在每次迭代开始时清空缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。

a27b1e5f8d7947f194547fc2f01a3e01.png


4-- Http cookie管理器

用途

  • 管理Cookie:自动处理和存储服务器返回的Cookie,并在后续请求中自动发送这些Cookie。
  • 保持会话状态:确保多个请求之间的会话状态保持一致,特别是在需要登录或其他会话管理的情况下。

配置步骤

  1. 添加HTTP Cookie管理器

    • 右键点击线程组(Thread Group)或测试计划(Test Plan)。
    • 选择“添加” -> “配置元件” -> “HTTP Cookie Manager”。
  2. 配置HTTP Cookie管理器

    • 名称:给HTTP Cookie管理器一个有意义的名称。
    • Cookie策略:选择处理Cookie的策略。常见的策略有:
      • default:默认策略,适用于大多数情况。
      • compatibility:兼容旧版浏览器的行为。
      • netscape:遵循Netscape规范。
      • rfc2109:遵循RFC 2109规范。
      • rfc2965:遵循RFC 2965规范。
      • ignore:忽略所有Cookie。
    • 共享Cookie:选择是否在多个用户线程之间共享Cookie。
      • True:所有线程共享同一个Cookie池。
      • False:每个线程有自己的独立Cookie池。
    • 预定义Cookie:手动添加预定义的Cookie。这对于某些需要初始Cookie的测试场景非常有用。
      • 名称:Cookie的名称。
      • :Cookie的值。
      • 域名:Cookie的域名。
      • 路径:Cookie的路径。
      • 注释:可选的注释信息。
      • 过期时间:Cookie的过期时间(可选)。
      • 安全:是否标记为安全Cookie(仅通过HTTPS传输)。

示例配置

假设我们需要测试一个需要登录的Web应用程序,并且希望JMeter能够自动管理Cookie以保持会话状态。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“登录测试”)。
  2. 添加HTTP Cookie管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP Cookie Manager。
    • 配置HTTP Cookie管理器:
      • 名称:HTTP Cookie Manager
      • Cookie策略:default
      • 共享Cookie:False
      • 预定义Cookie:(如果需要)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:POST(假设登录接口是POST请求)。
      • 路径:登录接口的路径(例如/login)。
      • 参数:添加登录所需的参数(例如usernamepassword)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

注意事项

  • Cookie生命周期:HTTP Cookie管理器会根据服务器返回的Set-Cookie头自动管理Cookie的生命周期。
  • 安全Cookie:如果服务器返回的Cookie标记为安全(Secure),则只有在HTTPS请求中才会发送该Cookie。
  • 跨域Cookie:HTTP Cookie管理器会自动处理跨域Cookie,但需要确保域名和路径匹配。

0a1367d8397d4bf7af25dbe53a007e42.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/10428.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MCU的OTA升级(未完-持续更新)

1.术语 ISP : In-System Programming 在系统编程&#xff0c;是一种通过MCU&#xff08;微控制器单元&#xff09;上的内置引导程序&#xff08;BootLoader&#xff09;来实现对芯片内部存储器&#xff08;如Flash&#xff09;进行编程的技术。 华大目前对应的ISP IAP&…

让redis一直开启服务/自动启动

文章目录 你的redis是怎么打开的黑窗不能关?必须要自动启动吗?再说说mysql 本文的所有指令都建议在管理员权限下打开cmd控制台 推荐的以管理员身份打开控制台的方式 Win R 打开运行 输入cmdShift Ctrl Enter 你的redis是怎么打开的 安装过redis的朋友都知道, redis的安…

从认识 VNode VDOM 到实现 mini-vue

前言 现有框架几乎都引入了虚拟 DOM 来对真实 DOM 进行抽象&#xff0c;也就是现在大家所熟知的 VNode 和 VDOM&#xff0c;那么为什么需要引入虚拟 DOM 呢&#xff1f;下面就一起来了解下吧&#xff01;&#xff01;&#xff01; VNode & VDOM VNode 和 VDOM 是什么&am…

vue项目实战

1.项目文件夹添加&#xff08;结构如下&#xff09; 2.页面构建 安装路由 npm install react-router-dom 3.页面基本模板 router文件夹下index.js的模板 // 引入组件 import Login from "../views/login"; // 注册路由数组 const routes [{// 首页默认是/path: …

SD-WAN跨境加速专线:打造无缝、高效的全球社交媒体营销网络

在数字化时代&#xff0c;电子商务与社交媒体的融合已成为不可逆转的趋势。亚马逊&#xff0c;作为全球领先的电子商务平台&#xff0c;近期与Facebook、Instagram、Snapchat、Pinterest和TikTok等社交媒体巨头携手&#xff0c;推出了一项革命性的无缝购物体验。这一创新举措不…

yelp商家数据集上使用火算法求解TSP 问题

先简要回顾下什么是TSP问题&#xff0c; 旅行商问题&#xff08;Traveling Salesman Problem&#xff0c;TSP&#xff09;是一个经典的组合优化问题&#xff0c;广泛应用于运筹学、计算机科学和物流等领域。TSP的基本描述如下&#xff1a; 问题描述 定义&#xff1a;假设有一…

【深度学习目标检测|YOLO算法1】YOLO家族进化史:从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析...

【深度学习目标检测|YOLO算法1】YOLO家族进化史&#xff1a;从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析… 【深度学习目标检测|YOLO算法1】YOLO家族进化史&#xff1a;从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析… 文章目录 【深度学习目标检测|YOL…

星期-时间范围选择器 滑动选择时间 最小粒度 vue3

星期-时间范围选择器 功能介绍属性说明事件说明实现代码使用范例 根据业务需要&#xff0c;实现了一个可选择时间范围的周视图。用户可以通过鼠标拖动来选择时间段&#xff0c;并且可以通过快速选择组件来快速选择特定的时间范围。 功能介绍 时间范围选择&#xff1a;用户可以…

Java | Leetcode Java题解之第554题砖墙

题目&#xff1a; 题解&#xff1a; class Solution {public int leastBricks(List<List<Integer>> wall) {Map<Integer, Integer> cnt new HashMap<Integer, Integer>();for (List<Integer> widths : wall) {int n widths.size();int sum 0…

牛客小白月赛104 —— C.小红打怪

C.小红打怪 1.题目&#xff1a; 2.样例 输入 5 1 2 3 4 5 输出 2 说明 第一回合&#xff0c;小红攻击全体怪物&#xff0c;队友1攻击5号怪物&#xff0c;队友2攻击4号和5号怪物&#xff0c;剩余每只怪物血量为[0,1,2,2,2]。 第二回合&#xff0c;小红攻击全体怪物&#…

python画图|text()和dict()初探

【1】引言 在进行hist()函数的学习进程中&#xff0c;了解到了subplot_mosaic()函数&#xff0c;在学习subplot_mosaic()函数的时候&#xff0c;又发现了text()和dict()函数。 经探究&#xff0c;text()和dict()函数有很多一起使用的场景&#xff0c;为此&#xff0c;我们就一…

BUG: scheduling while atomic

▌▌上篇文章的内容还没有结束 中断处理函数中如果执行了调度&#xff0c;会发生什么 ▌这次&#xff0c;我修改了程序&#xff0c;在中断处理函数中调用了msleep 程序执行后&#xff0c;会有这样的日志 ▌关键就是这句 BUG: scheduling while atomic 我们追代码&#xff0c;可…

算法 -选择排序

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【算法】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 文章目录 &#x1f4a1;选择排序1. &#x1f504; 选择排序&#x1f5bc;️示意图&#x1f4d6;简介&#x1f4a1;实现思路1&#x1f4bb;代码实现1&#x1f4a1;实现思路2…

ubuntu 22.04 镜像源更换

双11抢了个云服务器&#xff0c;想要整点东西玩玩&#xff0c;没想到刚上来就不太顺利 使用sudo apt update更新软件&#xff0c;然后发生了如下报错 W: Failed to fetch http://mirrors.jdcloudcs.com/ubuntu/dists/jammy/InRelease 理所当然想到可能是镜像源连接不是很好&…

2016年7月29日至2017年2月21日NASA大气层层析(ATom)任务甲醛(HCHO)、羟基(OH)和OH生产率的剖面积分柱密度

目录 简介 摘要 引用 网址推荐 知识星球 机器学习 ATom: Column-Integrated Densities of Hydroxyl and Formaldehyde in Remote Troposphere ATom&#xff1a; 远对流层中羟基和甲醛的柱积分密度 简介 该数据集提供了甲醛&#xff08;HCHO&#xff09;、羟基&#xff…

一夜吸粉10万!AI妖精变身视频如何做的?5分钟你也能赶上末班车!

本文背景 最近有小伙伴跟我发了一个AI视频&#xff0c;问我是怎么做的&#xff1f; 很多人在各大自媒体平台&#xff0c;像某音、蝴蝶号都刷到过下面这种妖精变身的短视频。 我也常刷到&#xff0c;从这类视频能看到点赞、收藏、评论的数据都特别高&#xff0c;动不动就几千、几…

【JAVA项目】基于jspm的【医院病历管理系统】

技术简介&#xff1a;采用jsp技术、MySQL等技术实现。 系统简介&#xff1a;通过标签分类管理等方式&#xff0c;实现管理员&#xff1b;个人中心、医院公告管理、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、预约挂号管理、门诊病历管理、就诊评价管理、…

Oasis:首个可玩的AI生成互动游戏

游戏玩法介绍 Oasis 是由AI公司Decart开发的一款实时生成、可交互的Minecraft风格游戏。这款游戏利用生成式AI技术,创造出独特的“开放世界”体验。Oasis基于大量Minecraft游戏视频进行训练,通过键盘和鼠标输入实时生成游戏画面,模拟物理效果、规则及视觉效果。用户在游戏中…

Python网络爬虫入门篇!

预备知识 学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求&#xff0c;即发送一个Request&#xff0c;Request包含&#xf…

【C++】踏上C++学习之旅(五):auto、范围for以及nullptr的精彩时刻(C++11)

文章目录 前言1. auto关键字&#xff08;C11&#xff09;1.1 为什么要有auto关键字1.2 auto关键字的使用方式1.3 auto的使用细则1.4 auto不能推导的场景 2. 基于范围的for循环&#xff08;C11&#xff09;2.1 范围for的语法2.2 范围for的使用条件 3. 指针空值nullptr&#xff0…