🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快

目前最新版本发展到5.0版本,需要Java7以上版本环境,下载解压目录后,进入\apache-jmeter-5.0\bin\,双击ApacheJMeter.jar文件启动JMemter。

JMeter接口测试

1、创建测试任务

添加线程组,右击测试计划,在快捷菜单单击添加-》线程(用户)-》线程组。设置线程组主要包含三个参数:线程数、Ramp-Up、循环次数。

线程数:设置虚拟用户数。一个虚拟用户占用一个进程或线程。线程数就相当于虚拟用户数。

Ramp-Up:设置的线程数启动时长,单位为秒。如果线程数为100,准备时长为20秒,那么需要20秒启动100个线程,平均每秒启动5个线程。

循环次数:每个线程发送请求的个数。如果线程数为100,循环次数为2,那么每个线程发送2次请求,总请求数为100*2=200次。如果勾选了“永远”复选框,那么所有线程会循环发送请求,直到手动单工具栏停止按钮,或者设置的线程运行时间结束才会停止运行。

这次针对接口测试,默认都为1就行。

2、添加get的HTTP请求

右击线路组,在快捷菜单单击添加-》取样器-》HTTP请求。

​协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或HTTPS,默认不填为HTTP。

服务器IP和端口:输入目标服务器地址和端口号。

内容编码:默认值为iso8859

方法:针对请求方法选择

路径:输入请求目标地址

参数:录入查询的参数数值

3、添加post的HTTP请求

方法同上,只是请求方法不同,这次改用POST传递参数向服务器及POST请求的URL地址。

​根据开发提供的接口文档,参考传入参数选项,录入进去。

4、添加断言

分别右击发布会查询信息和添加发布会信息,添加-》断言-》响应断言

这次选择响应文,然后录入需要匹配的数据。

5、添加察看结果树

右击发布系统项目,单击添加-》监听器-》察看结果树,运行后:

​成功显示绿色标志,失败显示红色标示,可以查看到每个用例返回的数据。

6、添加用表格察看结果

​可以更详细查看到耗时及字节大小,结果状态,用例信息。

JMeter性能测试

由于JMeter支持录制不够好,现在常用的方法是使用Badboy录制,生成JMeter脚本,然后用JMeter打开,添加监听器来查看结果。

双击软件图标开启badboy即可看到以下界面:

1、开始录制

在地址栏(图中用红色框住部分)中输入你需要录制的Web应用的URL,并点击红圆点按钮开始录制。开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测Web应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中:如下图所示

​将脚本导出为jmeter

​线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。假如我的请求数目是5,而Ramp-up period(inseconds)参数是10,那么每个请求之间的间隔就是 10/5,也就是2秒。如果Ramp-up period(inseconds)设置为0就代表并发请求。

最后,清除循环次数的复选项“永远”,然后输入1。这个值是告诉JMeter你的测试重复多少次。如果你输入1,那么JMeter只会运行一次测试。要不停的运行你的测试计划,选中“永远”复选框。

如下图摸拟1000个并发用户数量运行一次登录测试。

2、添加监控

这个主要是用来查看测试结果用的,可以以不同形式展现,这里举例说明添加监听器:用表格查看结果、聚合报告和图形报告thread Group->添加->监听器->聚合报告(图形报告、用表格查看结果)如下图所示:

​程序运行完成以后,就可以查看相应的测试结果这里以1000个线程组瞬时并发为例得到如下报告:

​上图表参数含义如下:

1、样本数目是总共发送到服务器的请求数。
2、最新样本是代表时间的数字,是服务器响应最后一个请求的时间。
3、吞吐量是服务器每分钟处理的请求数。 
4、平均值是总运行时间除以发送到服务器的请求数。 
5、中间值是代表时间的数字,有一半的服务器响应时间低于该值,而另一半高于该值。 
6、偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

可以看出当1000人瞬时并发时平均响应时间为1630ms,吞吐量为3,940.887/分钟,平均响应中值为230ms。

​图表含义说明如下:

Label:说明是请求类型,如Http,FTP等请求。

#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。

Average:也就是图形报表中的平均响应时间,是总运行时间除以发送到服务器的请求数。

Median:也就是图形报表中的中间值50%用户响应时间,有一半的服务器响应时间低于该值而另一半高于该值。

90%line:是指90%请求的响应时间比所得数值还要小,也就是90%用户的响应时间。

Min:是代表时间的数字,是服务器响应的最小时间。

Max: 是代表时间的数字,是服务器响应的最大时间。

Error%:请求的错误百分比。本次测试中出现错误的请求的数量/请求的总数。

Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。默认情况下表示每秒完成的请求数。

KB/sec:每秒从服务器端接收到的数据量。

要所得的数据为正确,聚合报告error%必须为0.00%,否则说明用户没有全部通过测试,这里得到平均响应时间1630ms,平均响应中中值为230ms

上图Error出现错误,所得的数据不是准确,从日志和表格来看中间过程发生连接请求超时,在响应时间内,接收请求数响应时间为0。如下图所示:

​在测试过程中,平均响应时间、吞吐量、并发连接数是我们性能测试的一个重要衡量指标,但是在测试中,特别是在聚合报告中,得出的90%Line等同于该用户提出的90%响应时间,这个数值对我们性能测试分析也很有参考价值。90%响应时间是说在发送的请求中,90%的用户响应时间都比得到的数值上要短,同时说明,一个系统在应用时,90%的用户响应时间都能达到这个数值,那么就为系统性能分析提供了很好的参考价值。

如果把线程数改为500并发连接请求,结果Error不会出现错误,所得到性能测试数据准确。

​总之,需要不断的调优对比数据,接近最佳状态,确定负载达到多少并发数量。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

如何利用大模型搭建本地知识库

要利用大模型搭建本地知识库,核心在于:构建高质量知识内容源、使用向量化技术实现语义检索、部署大语言模型以实现自然语言问答接口、设计本地知识库的数据更新机制、注重隐私与合规性控制。其中,使用向量化技术实现语义检索至关重要&#xf…

vscode连接不上服务器问题修复

原因:运维人员修复漏洞,升级了服务器openssh版本,导致无法新建连接连上vscode 操作: 1.删除云桌面上C:\Users\.ssh 路径下known_hosts文件; 2.设置免密登录 1)执行 ssh-keygen -t rsa -C "your_em…

架构优化——submodule转为subtree

文章目录 背景subtree优势submodule切换到subtree脚本subtree使用切开发分支推送代码同步代码 背景 submodule过多,目前20个submodule需要切出20个分支,查看提交记录、切分支等使用起来麻烦。 团队深受困扰! subtree优势 继承submodule的…

车载软件架构 --- 汽车中央控制单元HPC软件架构方案实例

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

零基础开始的网工之路第二十一天------性能优化

目录 一、性能优化概述 二、性能监控工具 1. 基础工具 2. 高级工具 三、子系统优化策略 1. CPU优化 2. 内存优化 3. 磁盘I/O优化 4. 网络优化 四、资源限制优化 1. ulimit 2. cgroups(控制组) 五、安全与注意事项 六、综合案例 案例1&…

【Google Chrome】谷歌浏览器历史版本下载

最新版: Chrome for Testing availability 谷歌浏览器 Chrome 最新版离线安装包下载地址 v137.0.7151.104 - 每日自动更新 | 异次元软件 历史版本: Download Google Chrome 105.0.5195.102 for Windows - Filehippo.com chrome浏览器,chrome插件,谷…

线性表实训(头歌实践平台课程答案详细解说)

C 和 C 支持 4 种基本数据类型(整型、浮点型、字符型、布尔型)和 3 种复合型数据类型(数组、指针、结构)。复合类型的数据对于数据结构至关重要,因为从某种程度上来说数据量的多少和数据结构的好坏决定了程序的复杂程度…

【前端】threeJS学习(长期更新)

简介 Three.js是用JavaScript编写的第三方库,用于实现3D功能,基于WebGL进行封装。 一个3D模型的建立主要由以下几个部分组成(基本版): * 创建场景scene--相机camera--渲染器renderer--(灯光light); *…

Linux系统--权限

大家好,上一次我们学习了关于Linux中的基础指令,那么我们今天来继续学习Linux的新的内容:权限。那么话不多说,我们开始今天的学习: 目录 Linux权限 1. Linux权限的概念 2. Linux权限管理 3. ⽂件权限值的表⽰⽅法…

论文笔记 <交通灯> <多智能体>DERLight双重经验回放灯机制

今天看的论文是这篇 主要提出了传统优先级经验回放(PER)在复杂交通场景中效率低下,使用二叉树存储样本,导致大规模样本时计算复杂度高。而且不丢弃样本,造成存储空间浪费。 双重经验池: 为了解决以上问题…

Chromium 136 编译指南 macOS篇:环境准备与系统配置(一)

1. 引言 在浏览器技术的星空中,Chromium 犹如一颗最亮的明星,照亮了整个互联网的发展轨迹。作为推动现代 Web 技术革命的核心引擎,Chromium 不仅是 Google Chrome 的技术基石,更是 Microsoft Edge、Opera、以及众多定制浏览器的共…

linux机器间无密码如何传输文件

1. scp传输时的问题 $ scp deepseek_r1_distill_qwen1.5b_content_audit_fp16_20250613_2_Q4_K_M.gguf xxx192.168.xxx:/home/xxx/pretrained_model/output The authenticity of host 192.168.xxx (192.168.xxx) cant be established. ED25519 key fingerprint is SHA256:deOs…

PySpark 使用pyarrow指定版本

背景说明 在 PySpark 3.1.3 环境中,当需要使用与集群环境不同版本的 PyArrow (如 1.0.0 版本)时,可以通过以下方法实现,而无需更改集群环境配置 完整操作说明 去pyarrowPyPI下载对应版本的whl文件后缀whl直接改成zip解压后有两个文件夹&am…

安卓APP投屏调试工具使用教程

安卓APP投屏调试工具使用教程 一、准备工作(一)下载ADB工具(二)配置ADB的环境变量(三)检查是否成功安装(四)adb核心命令说明 二、无线调试流程(一)环境要求&a…

huggingface网站里的模型和数据集

直接下载肯定是不太行,平时访问都不容易,更别提下载东西了,但是我们可以通过国内镜像进行快速下载。 镜像网址: hf-mirror地址:HF-Mirror 进入网站之后,在搜索框里搜索你想下载的内容,接下来…

Node.js 路由请求方式大全解:深度剖析与工程实践

文章目录 🌐 Node.js 路由请求方式大全解:深度剖析与工程实践一、📜 HTTP 请求方法全景图🏆 核心方法深度对比HTTP 请求方法概念对比表🛠️ 特殊方法应用场景 二、🎨 各方法深度解析1. GET - 数据查看器&am…

JS-实现一个链式调用工具库

要求: 支持链式调用,如:_chain(data).map().filter().value()实现map、filter、等常用方法支持惰性求值(延迟执行、直到用到value()时才真正计算)。 链式调用的实现原理的关键点是:函数执行完以后&#x…

【人工智能数学基础】实变函数与泛函分析

数学分析、解析几何、高等代数、实变函数、常微分方程、近世代数、微分几何、复变函数、点集拓扑、概率论、数理统计、数理逻辑、偏微分方程、泛函分析、动力系统、数学物理方程、数论导引、群与代数表示、微分流形、代数拓扑、代数几何、金融数学、多元统计分析、应用随机过程…

css3 背景色渐变

在 CSS 中,使用渐变色需要用到 gradient 属性,而 gradient 属性分为 线性渐变 linear-gradient 与 径向渐变 radial-gradient。今天主要是说一下 linear-gradient 线性渐变属性。 例如:background: linear-gradient(90deg, #e7f1fc, #f5f9fb…

将图片合成为视频(基于 OpenCV)

本文将介绍如何使用 Python 和 OpenCV 将一组图像文件合成为一个视频文件。你将学会: 使用 os 模块遍历文件夹中的图像 使用 cv2.VideoWriter 写入视频 设置分辨率与帧率参数 对图像尺寸进行统一处理 简单的视频生成应用开发 1. 所需模块与安装 本章需要以下 …