【初识Jmeter】【接口自动化】

jmeter的使用笔记1

  • Jmeter介绍与下载安装
    • 介绍
    • 安装配置
    • 配置与扩展组件
  • jmeter的使用
    • 基本功能元素
    • 登陆请求与提取cookie
    • 其他请求接口关联Cookie-响应成功
    • 聚合报告查看

Jmeter介绍与下载安装

介绍

  • jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简 单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用;
  • jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权 限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等。

安装配置

  • 首先需要安装jdk:下载地址

  • jmeter5.3版本需要jdk1.8及以上:安装jmeter插件

  • 一键安装完成后配置环境:
    JAVA_HOME:变量值为 jdk 的安装路径
    新建变量名:CLASSPATH ,变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    path 变量下新建值:%JAVA_HOME%\bin

  • 校验是否配置成功:win+R,打开运行,输入cmd
    java -version :校验java版本信息
    javac.exe:检验javac.exe命令
    java.exe:检验java.exe命令
    在这里插入图片描述

  • 安装jmeter:下载路径

  • 配置jmeter环境变量配置:
    创建系统变量:JMETER_HOME 值为:jmeter解压目标地址
    创建系统变量:classpath:变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
    点击确定保存在path变量 新增变量值:Path:%JMETER_HOME%\bin

  • 打开jmeter/bin/目录下的jmeter.bat看是否正确运行:
    在这里插入图片描述

配置与扩展组件

(1)JMeter官网文档
组件链接:https://jmeter.apache.org/usermanual/component_reference.html
函数链接:https://jmeter.apache.org/usermanual/functions.html
(2)目录和文件介绍(windows)
[1]、apache-jmeter-5.4.3\bin\jmeter.bat,启动文件,双击一下就打开了
[2]、apache-jmeter-5.4.3\bin\ jmeter.log,日志文件
一般不要关注,除非使用自己编写的扩展包的时候报错,需要定位,才需要看。
[3]、apache-jmeter-5.4.3\lib\ext,扩展包目录
比如现在要连接MongoDB数据,需要导入mongo-java-driver-3.12.11.jar,则放到这个目录。
[4]、汉化apache-jmeter-5.4.3\bin\ jmeter.properties,加上下一句即可
在这里插入图片描述

jmeter的使用

基本功能元素

  • TestPlan:测试计划,相当于一个测试工程(测试内容),可包含多个线程组;
  • Thread Group:线程组,相当于模拟的请求数;
  • HTTP请求:url为所测的接口路径,协议为http或https,请求方式为GET或POST,服务器域名或IP,
  • HTTP请求默认值:可将相同的【服务器名称】【协议】【编码】和【端口号】配置成默认的。线程组下面的每个http请求都会带上这些参数,相当于该线程组的全局常量;
  • Assertions:断言,对于请求结果进行判断,用作结果数据的校验;
  • 察看结果树:监听发送请求时各个请求的状态;
  • 聚合报告:把一次测试的数据汇总,包括线程数、请求处理吞吐量等性能指标;
  • 监听器 Lisrener:收集整理测试结果、将测试结果数据进行处理并展示、生成xml、csv等形式的文件,供后续参考分析;
  • 逻辑控制器 LogicController:控制取样器发送请求的逻辑和顺序、控制取样器本身、模拟复杂的逻辑请求;
  • 定时器 Timer:设置请求时间的时间间隔;

登陆请求与提取cookie

步骤如下:
(1)添加http请求默认值:写入待登陆网站的请求方式https、域名、地址等默认数据;
在这里插入图片描述
(2)添加http请求:写入请求方式与地址及参数;
在这里插入图片描述
(3)正则表达式提取器:提取登陆接口成功响应时响应头中的Set-Cookie
前置:登录接口抓包,提前查看响应内容与响应头信息格式
在这里插入图片描述
(4)JSON断言:可添加登录结果的断言
在这里插入图片描述
(5)调试取样器:可查看登陆结果与Set-Cookie提取的结果
在这里插入图片描述
注意:提取了Cookie之后后续关于网站的其他接口的请求头都需要用到该已登录的校验信息,故需要将提取到的Set-Cookie存入该线程公用的HTTP信息头中;因此还需要如下操作:
(6)BeanShell 后置处理程序:
在这里插入图片描述
(7)HTTP Cookie管理器:可调用登录接口提取到的Cookie
在这里插入图片描述
(8)HTTP信息头管理器:将Cookie存入公用的请求头中便于后续接口的关联与使用
在这里插入图片描述
(9)最后添加察看结果数
在这里插入图片描述

其他请求接口关联Cookie-响应成功

前置:根据上一步将登录接口提取到的Cookie提取-保存-关联至HTTP信息头中,之后的接口可直接关联使用;
写入改接口请求方式、地址、参数
在这里插入图片描述
结果:该接口请求头中成功关联Cookie信息
在这里插入图片描述

聚合报告查看

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】表的基础增删改查

前面我们已经知道怎么来创建表了,接下来就来对创建的表进行一些基本操作。 这里先将上次创建的表删除掉: mysql> use test; Database changedmysql> show tables; ---------------- | Tables_in_test | ---------------- | student | -----…

[MongoDB]-权限验证管理

[MongoDB]-权限验证管理 senge | 2023年9月 背景说明:现有两套MongoDB副本集群给开发人员使用时未开启认证。 产生影响:用户若输入账号以及密码则会进行校验,但用户可以在不输入用户名和密码的情况下也可直接登录。 倘若黑客借此进行攻击勒索…

自动求导,计算图示意图及pytorch实现

pytorch实现 x1 torch.tensor(3.0, requires_gradTrue) y1 torch.tensor(2.0, requires_gradTrue) a x1 ** 2 b 3 * a c b * y1 c.backward() print(x1.grad) print(y1.grad) print(x1.grad 6 * x1 * y1) print(y1.grad 3 * (x1 ** 2))输出为: tensor(36.) …

C语言——文件操作_学习笔记

一、引言——为什么使用文件 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的…

【Spring Boot】日志文件

日志文件 一. 日志文件有什么用二. 日志怎么用三. ⾃定义⽇志打印1. 在程序中得到⽇志对象2. 使⽤⽇志对象打印⽇志3. ⽇志格式说明 四. 日志级别1. ⽇志级别有什么⽤2. ⽇志级别的分类与使⽤ 五. 日志持久化六. 更简单的⽇志输出—lombok1. 添加 lombok 依赖2. 输出⽇志3. lom…

VueRouter与expres/koa中间件的关联

ueRouter: runQueue 路由守卫都是有三个参数to,from,next。其中next就是下方的fn执行时候传入的第二个参数(回调函数),只有该回调执行后才会挨个遍历queue内的守卫。 中间件的作用 隔离基础设施与业务逻辑之间的细节。详细的内容位于《深入浅出Node.js》P210 另外一…

深度学习-卷积神经网络-AlexNET

文章目录 前言1.不同卷积神经网络模型的精度2.不同神经网络概述3.卷积神经网络-单通道4.卷积神经网络-多通道5.池化层6.全连接层7.网络架构8.Relu激活函数 1.LeNet-52.AlexNet1.架构2.局部响应归一化(VGG中取消了)3.重叠/不重叠池化4.过拟合-数据增强5.过…

Scala第二十章节

Scala第二十章节 scala总目录 文档资料下载 章节目标 理解Akka并发编程框架简介掌握Akka入门案例掌握Akka定时任务代码实现掌握两个进程间通信的案例掌握简易版spark通信框架案例 1. Akka并发编程框架简介 1.1 Akka概述 Akka是一个用于构建高并发、分布式和可扩展的基于事…

jvm--对象实例化及直接内存

文章目录 1. 创建对象2. 对象内存布局3. 对象的访问定位4. 直接内存(Direct Memory) 1. 创建对象 创建对象的方式: new最常见的方式、Xxx 的静态方法(单例模式),XxxBuilder/XxxFactory 的静态方法Class 的…

Linux 部署 MinIO 分布式对象存储 配置为 typora 图床

前言 MinIO 是一款高性能的对象存储系统,它可以用于大规模的 AI/ML、数据湖和数据库工作负载。它的 API 与Amazon S3 云存储服务完全兼容,可以在任何云或本地基础设施上运行。MinIO 是开源软件,也提供商业许可和支持 MinIO 的特点有&#x…

【力扣每日一题】2023.10.10 移动机器人

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目比较复杂,我概括一下。给我们一个数组表示不同机器人在一维坐标轴上的初始位置,还有一个字符串表示每个机器人…

Netty(四)NIO-优化与源码

Netty优化与源码 1. 优化 1.1 扩展序列化算法 序列化,反序列化主要用于消息正文的转换。 序列化:将java对象转为要传输对象(byte[]或json,最终都是byte[]) 反序列化:将正文还原成java对象。 //java自带的序列化 // 反序列化 b…