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

jmeter的使用笔记1

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,加上下一句即可 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/bea8e96178de36d5a3b79e2558dbd387.webp) ## jmeter的使用 ### 基本功能元素 * TestPlan:测试计划,相当于一个测试工程(测试内容),可包含多个线程组; * Thread Group:线程组,相当于模拟的请求数; * HTTP请求:url为所测的接口路径,协议为http或https,请求方式为GET或POST,服务器域名或IP, * HTTP请求默认值:可将相同的【服务器名称】【协议】【编码】和【端口号】配置成默认的。线程组下面的每个http请求都会带上这些参数,相当于该线程组的全局常量; * Assertions:断言,对于请求结果进行判断,用作结果数据的校验; * 察看结果树:监听发送请求时各个请求的状态; * 聚合报告:把一次测试的数据汇总,包括线程数、请求处理吞吐量等性能指标; * 监听器 Lisrener:收集整理测试结果、将测试结果数据进行处理并展示、生成xml、csv等形式的文件,供后续参考分析; * 逻辑控制器 LogicController:控制取样器发送请求的逻辑和顺序、控制取样器本身、模拟复杂的逻辑请求; * 定时器 Timer:设置请求时间的时间间隔; ### 登陆请求与提取cookie 步骤如下: (1)添加http请求默认值:写入待登陆网站的请求方式https、域名、地址等默认数据; ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/973620ec0f7b32f48ff4059e976c72d2.webp) (2)添加http请求:写入请求方式与地址及参数; ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/97bed13f7a288acf16f6c0540f233d96.webp) (3)正则表达式提取器:提取登陆接口成功响应时响应头中的Set-Cookie 前置:登录接口抓包,提前查看响应内容与响应头信息格式 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/03871f7be416850641592fadffbe9d52.webp) (4)JSON断言:可添加登录结果的断言 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/4b5d7aea09d07629c5dcaf09e6852eeb.webp) (5)调试取样器:可查看登陆结果与Set-Cookie提取的结果 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/e34b44b201465ec3aba88ed7cb32ee9c.webp) 注意:提取了Cookie之后后续关于网站的其他接口的请求头都需要用到该已登录的校验信息,故需要将提取到的Set-Cookie存入该线程公用的HTTP信息头中;因此还需要如下操作: (6)BeanShell 后置处理程序: ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/ae05abf73ad72cbc9698465b8f534dd7.webp) (7)HTTP Cookie管理器:可调用登录接口提取到的Cookie ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/d401d146d234618d7b7139344e2237e9.webp) (8)HTTP信息头管理器:将Cookie存入公用的请求头中便于后续接口的关联与使用 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/49aa7636fe2a16170c5aae69c97842ee.webp) (9)最后添加察看结果数 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/6824f737a8ec4fc6890771bb71144cbf.webp) ### 其他请求接口关联Cookie-响应成功 前置:根据上一步将登录接口提取到的Cookie提取-保存-关联至HTTP信息头中,之后的接口可直接关联使用; 写入改接口请求方式、地址、参数 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/1a0d4d9ef344ce70965397124e47c89f.webp) 结果:该接口请求头中成功关联Cookie信息 ![在这里插入图片描述](https://file.jishuzhan.net/article/1712127119615594498/fbd29de127c0fe67e38c8e47ba7c8711.webp)

相关推荐
网络抓包与爬虫4 分钟前
Wireshark——抓包分析
websocket·网络协议·tcp/ip·http·网络安全·https·udp
仙女很美哦1 小时前
Flutter视频播放、Flutter VideoPlayer 视频播放组件精要
websocket·网络协议·tcp/ip·http·网络安全·https·udp
Blossom.1181 小时前
边缘计算:工业自动化的智能新引擎
人工智能·5g·自动化·边缘计算·database·兼容性·5g通讯
lifewange2 小时前
Jmeter面试题
jmeter
一棵树长得超出它自己2 小时前
jmeter if控制器在loop控制器执行结束后执行
前端·jmeter
eqwaak03 小时前
量子计算与AI音乐——解锁无限可能的音色宇宙
人工智能·爬虫·python·自动化·量子计算
软件测试曦曦4 小时前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
iOS技术狂热者6 小时前
Flutter 音视频播放器与弹幕系统开发实践
websocket·网络协议·tcp/ip·http·网络安全·https·udp
电气外传7 小时前
Share02-小小脚本大大能量
程序人生·自动化
网络抓包与爬虫8 小时前
flutter WEB端启动优化(加载速度,加载动画)
websocket·网络协议·tcp/ip·http·网络安全·https·udp