jmeter是怎么用的,怎么设计接口测试用例的
如何使用:
Apache JMeter 是一款广泛使用的开源性能测试工具,用于对各种服务(如 Web 应用、数据库、FTP、WEB 服务等)进行负载测试和性能测试。以下是如何使用 JMeter 的基本步骤。
1. 安装 JMeter
-
下载 JMeter:访问 Apache JMeter 官方网站 下载最新版本的 JMeter 压缩包。
-
解压缩:将下载的文件解压到你想要的目录。
-
确保 Java 环境已安装:JMeter 需要 Java 运行环境支持,可以用以下命令确认 Java 是否已安装:
java -version
2. 启动 JMeter
-
进入解压后的 JMeter 目录,然后执行以下命令启动 JMeter:
./bin/jmeter如果是在 Windows 上,请运行
bin/jmeter.bat。
3. 创建测试计划
一旦启动 JMeter,您可以按照以下步骤创建和配置测试计划:
步骤 1: 创建测试计划
- 在 JMeter 窗口中,右键单击“测试计划”(Test Plan),选择“添加”(Add) -> “线程(用户)”(Threads (Users)) -> “线程组”(Thread Group)。
步骤 2: 配置线程组
- 线程数(Number of Threads):控制虚拟用户的数量。
- Ramp-Up Period:设置所有线程启动所需的时间(单位:秒),例如,5 个线程设置为 10 秒,表示每个线程每 2 秒启动一次。
- 循环次数(Loop Count):设置每个线程运行的次数。
步骤 3: 添加请求
- 在刚才创建的线程组上右键单击,选择“添加”(Add) -> “取样器”(Sampler) -> “HTTP 请求”(HTTP Request)(如果要测试 Web 应用)。
- 填写请求的详细信息,例如:
- 服务器名称或 IP:要测试的服务器。
- 端口号:如果使用的不是默认端口(如 80 或 443),则指定端口号。
- HTTP 方法:选择
GET、POST等请求方法。 - 路径:你要测试的资源路径。
步骤 4: 添加断言(可选)
- 为了验证响应是否符合预期,可以在请求下添加断言(Assertions)。右键单击 HTTP 请求,选择“添加” -> “断言” -> “响应断言”(Response Assertion),添加需要检查的条件。
步骤 5: 添加监听器
- 为了查看测试结果,需要添加监听器。在线程组上右键单击,选择“添加” -> “监听器” -> “聚合报告”(Aggregate Report)或“图形结果”(Graph Results)等。
4. 运行测试计划
- 配置完成后,点击 JMeter 窗口上方的绿色“开始”按钮运行测试。运行时,监听器将实时显示测试结果。
5. 分析结果
- 测试完成后,通过监听器查看结果。你可以查看请求的成功率、响应时间、错误信息等。
6. 保存和分享测试计划
- 测试计划可以通过“文件”菜单下的“保存”选项保存为
.jmx文件,方便后续使用或分享给他人。
设计接口测试用例的原则
在设计接口测试用例时,可以遵循以下原则:
-
功能性测试:
- 验证接口是否能正确处理有效请求并返回预期结果。
- 验证接口在接收到无效参数时的处理,如错误提示和状态码。
-
边界条件:
- 测试边界值,例如输入参数的最大、最小、空值等情况。
-
性能测试:
- 在负载高峰时检查接口的响应时间、吞吐率等性能指标。
-
安全性测试:
- 验证接口的安全性,确保敏感信息不被泄露,如身份验证、权限控制等。
-
异常处理:
- 测试接口在意外情况下的表现,比如数据库故障、网络中断等。
示例接口测试用例设计
假设我们有一个用户登录接口,使用 POST 方法:
- 接口 URL:
/api/login - 请求参数:
username:用户名称password:用户密码
测试用例示例
-
正常登录:
- 测试用例:有效的用户名和密码。
- 预期结果:返回状态码 200,返回用户信息。
-
错误用户名:
- 测试用例:无效的用户名。
- 预期结果:返回状态码 401,返回错误信息提示。
-
错误密码:
- 测试用例:有效的用户名但错误的密码。
- 预期结果:返回状态码 401,返回错误信息提示。
-
缺少参数:
- 测试用例:请求中缺少用户名或密码。
- 预期结果:返回状态码 400,返回错误信息提示。
-
边界值测试:
- 测试用例:输入极限长度的用户名和密码。
- 预期结果:根据系统设定返回适当的结果。
-
性能测试:
- 测试用例:在高并发下进行多次登录请求。
- 预期结果:响应时间在可接受的范围内(例如,< 500ms)。
运行和分析结果
- 在配置完成后,点击上方的“启动”按钮开始运行测试。
- 通过添加的监听器查看结果,分析接口在不同条件下的表现。
总结
Apache JMeter 是一个强大的性能测试工具,能够有效地设计和执行接口测试用例。通过合理的测试设计,可以全面评估接口的功能性、安全性和性能,确保应用程序在高负载和各种边界条件下的稳定性和可靠性。
相关文章:
jmeter是怎么用的,怎么设计接口测试用例的
如何使用: Apache JMeter 是一款广泛使用的开源性能测试工具,用于对各种服务(如 Web 应用、数据库、FTP、WEB 服务等)进行负载测试和性能测试。以下是如何使用 JMeter 的基本步骤。 1. 安装 JMeter 下载 JMeter:访问…...
数据挖掘示例
案例背景,有公司进行橡胶玩具的生产,一共生产两种产品,分别为橡皮鱼和橡皮鸭。 已知条件为: 1、公司的橡胶原材料能够生产500只橡皮鸭或者400条橡皮鱼。 2、生产效率为公司产量不会高于400只橡皮鸭和300条橡皮鱼。 3、每只橡皮…...
【PHP】在ThinkPHP6中Swoole与FPM的简单性能测试对比
一、前言 本文主要测试在ThinkPHP 6框架中,使用Swoole扩展库与使用PHP-FPM两者的HTTP并发性能差距,测试方法较简单,仅供参考。 二、测试环境 系统:Ubuntu 22.04 PHP版本:7.4.33 Swoole版本:4.8.13 ThinkPHP版本:6.1.5 ThinkPHP-Swoole扩展库版本:3.1.4 测试工具:A…...
论文写作学习--POLYGCL
POLYGCL: GRAPH CONTRASTIVE LEARNING VIA LEARNABLE SPECTRAL POLYNOMIAL filters 今天由于开了一天的积极分子会议以及要写汇报,因此,只来得及学一会。 摘要 第一步,设定背景 Recently, Graph Contrastive Learning (GCL) has achieved …...
【高等数学】无穷级数
0. 了解 无穷级数是指将无穷多个数按照一定的规律相加起来的表达式。 打个比方,就像你有一个无穷长的梯子,每一级梯子代表一个数。把这些数一个一个加起来,就形成了无穷级数。 比如常见的等比级数,这里是首项,是公比。如果,这个等比级数是收敛的,也就是它的和是一个有限…...
计算机网络——无连接传输UDP
UDP用于流媒体应用和事务性应用(一次往返搞定的应用)...
DS几大常见排序讲解和实现(下)(15)
文章目录 前言一、快排的思想二、Hoare版基本思路代码实现 三、挖坑法基本思路代码实现 四、双指针法基本思想代码实现 五、三数取中六、小区间优化七、三路划分八、自省排序总结 前言 其实下篇就单独讲个快速排序 你可能会想这是什么神通,竟然能单独开一篇来讲…...
电脑视频剪辑大比拼,谁更胜一筹?
随着短视频的火爆,越来越多的人开始尝试自己动手制作视频,无论是记录生活点滴还是创作个性短片,一款好用的视频剪辑软件是必不可少的。今天,我们就从短视频运营的角度,来聊聊几款热门的电脑视频剪辑软件,看…...
计算机毕业设计 基于Web的景区管理系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
计算生物学与生物信息学漫谈-2-测序深度/读长质量和Fasta处理
上一篇文章中我们介绍了测序技术的由来与发展,那么在介绍第三代测序的时候,我们提到了关于测序深度和读长的问题,那么本篇文章就详解介绍一下。 计算生物学与生物信息学漫谈-1-测序一路走来-CSDN博客 目录 1.测序深度SEQUENCING DEPTH &…...
基于SSM+微信小程序的电子点餐管理系统(点餐1)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的电子点餐管理系统实现了管理员及用户。管理员实现了首页、个人中心、餐品分类管理、特色餐品管理、订单信息管理、用户管理、特价餐品管理、活动订单管理、系统管理。…...
IO进程---day5
1、使用有名管道实现两个进程之间的相互通信 //管道文件 #include<myhead.h> int main(int argc, const char *argv[]) {//创建有名管道文件1if(mkfifo("./pipe1",0664)-1){perror("创建管道文件失败");return 0;}if(mkfifo("./pipe2",066…...
ROS理论与实践学习笔记——5 ROS机器人系统仿真之URDF(Unified Robot Description Format)语法详解
URDF 文件是一个标准的 XML 文件格式,用于在 ROS 中描述机器人模型的结构。URDF 通过预定义的一系列标签,简洁地表达机器人的组成和运动关系。虽然机器人模型可能非常复杂,但在 URDF 中可以主要简化为两个核心部分: 连杆ÿ…...
常见SQL注入攻击示例与原理及其防御措施
SQL 注入(SQL Injection)是一种代码注入技术,用于攻击数据驱动的应用程序,主要通过在输入字段或 URL 查询参数中插入恶意 SQL 语句来实现。攻击者利用应用程序对用户输入数据的未充分验证或过滤,将恶意 SQL 语句注入到…...
Node.js 中的 WebSocket 底层实现
WebSockets 是一种网络通信协议,可实现双向客户端-服务器通信。 WebSockets 通常用于需要即时更新的应用程序,使用 HTTP 之上的持久双工通道来支持实时交互,而无需持续进行连接协商。服务器推送是 WebSockets 的众多常见用例之一。 本文首先…...
MySQl数据库的基本操作
1.1创建数据库 使用CREATE DATABASE语句可以轻松创建MySQL数据库,语法如下: CREATE DATABASE 数据库名; 例:创建fruitsales数据库 CREATE DATABASE fruitsales;1.2 查看数据库 使用SHOW语句查看当前服务器下所有已经存在的数据库 SHOW DAT…...
Egg.js 项目的合理 ESLint 配置文件模板
Egg.js 项目的合理 ESLint 配置文件模板 安装依赖 npm install eslint babel/eslint-parser eslint-plugin-import eslint-plugin-promise eslint-plugin-node --save-dev extends: 扩展了 eslint-config-egg 以及其他一些常用的插件配置。 parser: 使用 babel/eslint-parse…...
算法专题七: 分治归并
目录 1. 排序数组2. 交易逆序对的总数3. 计算右侧小于当前元素的个数4. 翻转对 1. 排序数组 算法思路: 本道题使用归并的思路进行排序, 先讲数组分为左右两个区间, 然后合并两个有序数组. class Solution {vector<int> tmp; public:vector<int> sortArray(vector&…...
一个基于vue功能强大的表格组件--vxe-table的二次封装
基础使用 一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等… <vxe-grid v-bind"gridOptions1"…...
CSS网页布局(重塑网页布局)
一、实现两列布局 许多网站有一些特点,如页面顶部放置一个大的导航或广告条,右侧是链接或图片,左侧放置主要内容,页面底部放置版权信息等。 一般情况,此类网页布局的两列都有固定的宽度,而且从内容上很容易…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
