软件测试学习笔记丨性能测试工具JMeter 基本使用

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29827

一,测试计划

  • 用来描述一个压力/性能测试脚本和场景设计的基本运行单元, 使用JMeter进行测试的所有内容都是基于一个测试计划。

1,用户定义变量

  • 测试计划的四个选项说明:
    • 独立运行每个线程组:不勾选:各个线程组并行、随机执行;勾选:线程组按照前后顺序来执行
    • 主线程组运行完成之后运行tearDown线程组
    • 函数测试模式,比如保存响应数据或者样本数据,需要注意的是选择该功能非常磁盘空间
    • 添加文件或者jar包,常用于外部功能调用

2,线程组

  • 线程组元件是任何一个测试计划的开始点,在一个测试计划中的所有元件都必须在某个线程组下,所有的任务都是基于线程组。

在请求取样器执行错误时需要执行的下一步动作

  • Continue:继续执行接下来的操作
  • Start Next Loop:忽略错误,执行下一个循环
  • Stop Thread:退出该线程(不再进行此线程的任何操作)
  • Stop Test:等待当前执行的采样器结束后,结束整个测试
  • Stop Test Now:直接停止整个测试

线程属性

  • Number of Thread (users):线程数,模拟的用户数量
  • Ramp-up Period(in seconds):达到指定线程数所需要的时间。举例:线程数设置为50,此处设置为5,那么每秒启动的线程数 => 线程数50/5 = 10
  • Loop Count: 循环次数
  • Same user on each iteration:每次迭代都用相同的用户, 勾选该选项则不同次迭代之间是串行执行,不勾选则为并行执行。
  • Delay Thread creation until needed:当线程需要执行的时候,才会被创建。如果不
    选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了
  • Specify Thread lifetime:定义线程调度时间
  • Duration (seconds): 持续时间(秒), 在此选项填入N,说明这个计划,从某个开始时间算起,执行N秒后结束。(会忽略 结束时间 的选项)
  • Startup delay (seconds): 启动延迟(秒),在此选项填入N,手动点击开始执行计划,然后延迟N秒后,计划才真正开始执行。

3,控制器

为请求执行提供不同的逻辑控制

介绍几个常用的逻辑控制器

  • 事务控制器 Transaction Controller

    • 事务控制器下的所有请求作为一个子请求,根据线程配置来观测数据

  • 条件控制器 If Controller

    • 可以自定义条件语句;也可以点击按钮设置默认的条件语句

  • 循环控制器 Loop Controller

    • 根据线程组配置循环次数,对控制器下的请求进行循环

  • 随机控制器 Random Controller

    • 根据线程组配置,控制器下的多个请求进行随机请求

4,采样器/取样器

  • 采样器(取样器): 模拟用户操作,向服务器发出请求的组件;
  • 采样器作用:向服务器发送请求,记录响应信息与响应时间;
  • 常用采样器讲解:
    • HTTP Request Sampler (模拟http请求)

    • Debug Sampler (用于debug)
      配置展示的参数:

    • BeanShell Sampler (通过添加BeanShell脚本来实现对应的目的)
      设置localDate脚本:

返回localDate日期:

5,场景逻辑控制技术

  • 利用JMeter 逻辑控制器,实现测试业务流程中的逻辑变化,模拟实际业务场景

6,监听器

  • 用来动态的监控JMeter执行测试的过程,实时查看测试结果;
  • 常用监听器:
    • 查看结果树(View Results Tree):查看接口请求与返回
    • 聚合报告 (Aggregate Report):查看控制器性能数据
    • 后端监听器 (Backend Listener):结合filuxDB工具监控后端性能

7,定时器

  • 顾名思义,定时器是用来控制采样器发出请求开始时间的组件,在每次请求发起前等待的时间
  • 常见定时器:(路径:Add ——Timer)
    • 固定定时器(Constant Timer):固定延迟等待多少毫秒

    • 高斯随机定时器(Gaussian Random Timer):延迟时间呈高斯曲线分布

      • 下记表示延迟等待的时间范围为(2秒 ~ 8秒之间)

    • 吞吐量定时器(Constant Throughput Timer):控制吞吐量/每分钟

    • 并发定时器(Synchronizing Timer):控制请求并发的客户数量同时发起请求

      • 配置并发数与线程组的并发数一致

8,断言元件的使用

  • 断言的作用就是让 JMeter 程序判断预期结果和实际结果是否一致,从而判定请求是否成功
  • 常见断言:(路径:HTTP request下点击右键 ——Add —— Assertions)
    • 响应断言(Response Assertion)

    • 大小断言(Size Assertion)

    • XPath 断言(XPath Assertion) :断言某个字段的值是否符合预期

    • Json 断言(JSON Assertion)

9,常用配置元件剖析

  • 路径:线程组名称点击右键 —— Add —— Config Element
  • HTTP Header Manager:管理请求头参数的组件,同级别的请求都会使用组件的参数

10,前置处理器

  • 在取样器发送请求之前执行,做一些准备工作,如设置参数、环境变量等
  • 常见前置处理器举例:(路径:线程组名称点击右键 —— Add ——Pre Processors)
    • Sample Timeout 前置处理器:设置请求的超时时间,作用范围内的请求均生效

    • BeanShell 前置处理器 (BeanShell PreProcessor)

      • Beanshell是小型嵌入式 Java 源码解释器,基本就是 Java 语言
      • BeanShell前置处理器:在Sampler 执行之前会被执行
      • 举例:直接在JMeter的Beanshell处理器中写代码生成当前时间戳;将时间戳值赋值给变量,然后传递给后续的请求样本

11,后置处理器

  • 后置处理器主要用于取样器执行后的提取数据操作;
  • 常见的后置处理器:(路径:线程组名称/http request 点击右键 —— Add ——Post Processors)
    • Json 数据提取器(JSON Extractor)

    • 正则表达式数据提取器(Regular Expression Extractor)

    • XPath 数据提取器(XPath Extractor)

12,执行顺序

  • 八大组件执行顺序:线程组 - 定时器 - 控制器 - 前置处理器 - 配置元件 - 采样器 - 后置处理器 - 断言 - 监听器

二,http请求管理

请求属性设置

高级选项设置

cookie 设置

  • 路径:Add —— Config Element

信息头管理器

  • 路径:Add —— Config Element

微信图片_20240219162623.png

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值