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

JMeter(入门篇)

一.简介

JMeter 是 Apache 组织使用 Java 开发的一款测试工具。

1、可以用于对服务器、网络或对象模拟巨大的负载

2、通过创建带有断言的脚本来验证程序是否能返回期望的结果

二.优缺点

优点:

  1. 开源、免费

  2. 跨平台

  3. 支持多协议

  4. 小巧

  5. 功能强大

缺点:

  1. 不支持IP欺骗

  2. 使用JMeter无法验证JS程序,也无法验证页面UI,所以要和Selenium配合来完成Web2.0应用的测试

三.安装与启动

  1. JMeter 是使用 Java 编写的,必须安装 Java 环境

    JDK: Java SE Development Kit (java 开发工具包,为 JAVA 程序开发提供环境支持)

    JRE: Java Runtime Environment (java 运行环境,为 JAVA 程序运行提供环境支持)

  2. 下载并安装 JMeter

    下载: Apache JMeter - Download Apache JMeter 安装: 直接解压缩即可

  3. 启动

    bin目录下的 ApacheJMeter.jar 双击启动即可

四.JMeter的基本使用

设计接口三要素

  1. 测试计划--右键--线程--添加线程组

  2. 线程组--右键--取样器--http请求

  3. 测试计划--右键--添加监听器--查看结果树

  4. 点击运行,查看结果

五.JMeter线程组相关

进 程: 正在运行的程序

线 程:进程中的执行线索

线程组: 进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组

PS: 三者关系,一个进程可以包含多个线程组,一个线程组可以包含多个线程

六.JMeter并发执行和顺序执行

并发执行:多个线程同时执行,不知道谁先结束

顺序执行:多个线程顺序执行

在测试计划中勾选上该选项,就可以让线程按照添加顺序执行

执行结果

七.JMeter两个特殊线程组

setUp线程组:最优先执行的线程组

tearDown线程组:最后执行的线程组

八.JMeter线程组相关属性

九.http请求默认值

将被复用的内容进行封装。

十.信息头管理器

新增修改实现时提交的数据是 JSON 格式的,需声明提交的数据的内容类型。

新增时在消息体数据中添加数据:

启动前要添加Http信息头管理器,否则会出现下面类似情况:

添加Http信息头管理器:

Content-Type application/json;charset=utf-8(中间的标点符号为分号,图片中:为书写错误)

十一.参数化

当提交的数据量较大,种由程序驱动代替人工驱动的数据设计方案,提高脚本的编写效率以及编写质量。

1.用户定义的变量

调用方式:${变量名}

2.CSV数据文件设置

CSV :逗号分隔值,是一种简洁且常见的数据存储格式,存储语法如下图所示

3.用户参数

4.函数

常见函数: __counter 计数器函数 :TRUE(每个用户都有自己的计数器) FALSE(所有用户共用一个计数器)

__Random 随机数函数: 参数1:取值范围最小值(包含) 参数2:取值范围最大值(包含)

__time 获取当前时间的函数 :无参: 获取的是距离 1970/01/01 00:00:00 的毫秒值

1、__counter函数

2、__Random函数

3、__time函数

不设置值:

设置值:

十二.直连数据库

通过直连数据库让程序代替接口访问数据库,如果二者预期结果不一致,就找到了程序缺陷。

具体步骤:

  1. JMeter 不具备直连数据库功能,必须整合第三方(jar包)实现

  2. 配置数据库的连接 JDBC Connection Configuration

  3. 通过 JDBC Request 请求向数据库发送 SQL语句并接收提取响应结果

将查询到的结果作为接下来请求的路径:

添加调试取样器

在 JDBC Request 中添加

添加http请求

十三.断言

让程序代替人工判断响应结果是否符合预期

分类: 响应断言 = 断言状态码和响应体 大小断言 = 判断响应内容的字节长度 断言持续时间 = 判断响应时间

1、响应断言

2、大小断言

3、断言持续时间

http://www.dtcms.com/a/335696.html

相关文章:

  • java基础(十)sql的mvcc
  • WebSocket--精准推送方案(二):实时消息推送-若依项目示例
  • 本地处理不上传!隐私安全的PDF转换解决方案
  • java_spring boot 中使用 log4j2 及 自定义layout设置示例
  • Ansible 管理变量和事实
  • 计算机毕设选题推荐-基于大数据的全面皮肤病症状数据可视化分析系统【Hadoop、spark、python】
  • 麒麟V10静默安装Oracle11g:lsnrctl、tnsping等文件大小为0的解决方案
  • Android 对话框 - 基础对话框补充(不同的上下文创建 AlertDialog、AlertDialog 的三个按钮)
  • Pandas数据结构详解Series与DataFrame
  • 智能汽车领域研发,复用云原始开发范式?
  • 笔记本电脑wifi小图标不见了 或者 蓝牙功能消失、电脑开不开机解决方法
  • 深入理解C#特性:从应用到自定义
  • CentOS启动两个MySQL实例
  • C#对象的本地保存与序列化详解笔记
  • [每周一更]-(第155期):Go 1.25 发布:新特性、技术思考与 Go vs Rust 竞争格局分析
  • 【前端面试题】前端面试知识点(第三十一题到第六十一题)
  • 项目发布上线清单
  • neo4j导入导出方法
  • 《设计模式》抽象工厂模式
  • 链表OJ题讲解---试金石含金量
  • RabbitMQ入门:生产者和消费者示例
  • Java注解学习记录
  • 什么是EDA(Exploratory Data Analysis,探索性数据分析)
  • AI出题人给出的Java后端面经(十七)(日更)
  • 第 463 场周赛(GPT-3,Me-1)
  • Foreign-Memory Access API外部内存API
  • 混沌工程(Chaos engineering):系统韧性保障之道
  • 计算机网络 HTTPS 全流程
  • p5.js 3D 形状 “预制工厂“——buildGeometry ()
  • 【位运算】查询子数组最大异或值|2693