简介

  • JMeter是Apache组织开发的基于Java的开源软件,用于对系统做功能测试和性能测试。

  • 它最初被设计用于Web应用测试,但后来扩展到其他测试领域,例如静态文件、Java 程序、shell 脚本、数据库、FTP、 Mail等。

文件结构

1、bin:二进制目录,存放可执行文件和配置文件

  • jmeter.bat:windows的启动文件
  • jmeter.log:Jmete工具运行的日志文件
  • jmeter.properties:Jmeter工具的配置文件
  • jmeter.sh:Linux的启动文件
  • jmeter-server:linux分布式测试的启动程序
  • jmeter0server.bat:windows分布式测试的启动程序

2、docs:内部API文档,用于开发扩展组件
3、lib:存放Jmeter依赖的jar包和用户扩展所依赖的jar包,加载和调用的功能
4、printable_docs:可打印文档,用户的使用说明

Jmeter的元件和组件

元件:多个类似功能组件的容器(类似于

  • 取样器:发送请求
  • 逻辑控制器:控制语句的执行顺序
  • 前置处理器:对请求参数进行预处理
  • 后置处理器:对响应结果进行提取
  • 断言:检查接口的返回结果是否与预期结果一致
  • 定时器:设置等待
  • 测试片段:封装一段代码,供其他脚本调用
  • 配置元件:测试数据的初始化配置
  • 监听器:查看Jmeter脚本的运行结果

组件:实现独立的某个功能(类似于方法

元件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的

所有的组件都是以取样器为核心来运行的,组件添加的位置不同,生效的取样器也不同

作用域的原则:

  • 取样器:核心,不和其他元件相互作用,没有作用域

  • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用

  • 其他元件:

    • 如果是某个取样器的子节点,则该元件只对其父节点起作用

    • 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

元件的执行顺序

同一作用域下的不同类型元件

  • 定时器永远在取样器前面

  • 配置元件-->前置处理器-->定时器-->取样器-->后置处理器-->断言-->监听器

同一作用域下的相同类型元件

  • 按照排列顺序一次执行

案例一

使用Jmeter访问百度首页接口,并查看请求和响应信息

JMeter使用示例

线程组

作用:线程组就是控制JMeter用于执行测试的一组用户

位置:右击”测试计划“ ----> 添加  ----> 线程(用户)  ---> 线程组

特点:

  • 模拟用户、支持多用户操作

  • 多个线程可以串行执行,也可以并行执行

案例

使用Jmeter访问百度: 模拟2个用户运行30s

HTTP请求

作用:向服务器发送http或https请求

位置:选中线程组 ---> 右击 -----> 添加 ----> 取样器 ----> HTTP请求

案例:GET请求,URL为http://www.baidu.com/S?wd=test要求:使用HTTP请求 - 路径来传递get请求参数

POST请求,URL为http://www.baidu.com/S,请求体为:wd=test(form表单)要求:使用HTTP请求 – 消息体数据来传递POST请求的form格式参数

直接在消息体中编写 wd=test 即可

JMeter参数化

定义:把测试数据组织起来,用不同的测试数据调用相同的测试方法

本质:使用参数的方式来替代脚本中固定的测试数据

实现方式:

  • 文件定义的方式(所有测试数据都是固定的情况下)

  • 数据库的方式(灵活,业务测试的用例)

  • 定义变量(最基础)

  • 函数生成(例:random)

用户定义的变量

作用:定义全局变量

位置:测试计划 --> 线程组--> 配置元件 --> 用户定义的变量

请求:https://www.baidu.com:443 要求:使用用户定义的变量配置被测系统的协议、域名和端口

用户参数

作用:针对同一组参数,当不同的用户来访问时,可以获取到不同的值

位置:测试计划 --> 线程组--> 前置处理器 --> 用户参数

请求: https://www.baidu.com 要求:第一个用户请求附带参数:name=“张三”&age=28;第二个用户请求附带参数:name="李四 "&age=30

CSV数据文件设置

作用:让不同用户在多次循环时,可以取到不同的值(参数可能不同)

位置:测试计划 --> 线程组--> 配置元件 --> CSV 数据文件设置

请求: https://www.baidu.com

要求: 循环请求3次,每次请求时附带参数username,password,code的值不相同

函数(_counter)

作用:计数函数,一般做执行次数统计使用

位置:在菜单中选择--> 工具--> 函数助手对话框

请求: 访问百度首页 http://www.baidu.com/S?num=1

要求:每个用户每次循环执行该脚本都可以使用不同的值

实现了自动计数,num从1到10

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐