一文2000字从0到1用Jmeter全流程性能测试实战

news2024/11/14 20:35:06

项目背景:

我们的平台为全国某行业监控平台,经过3轮功能测试、接口测试后,98%的问题已经关闭,决定对省平台向全国平台上传数据的接口进行性能测试。

01、测试步骤

1、编写性能测试方案

由于我是刚进入此项目组不久,只参与了其中3个模块的功能测试,一遍接口回归测试,所以在写性能测试方案时,首先将业务流程、业务功能梳理了一遍,重点对将要性能测试的接口的文档再次仔细看一遍,在导师的引导下,对各个接口响应的功能更加了解,收获最大是,性能测试应该对应各接口的实际功能,设计合适的用例,如:针对某一对象,有两种数据上传,一种是实时数据,一种是历史数据。

此时,实时数据就应该更多考虑连续上传的稳定性,而历史数据应该更多考虑数据堆积后,一次上传多条(1000条)数据的情况,要去更多关注数据上传后的正确性,完整性

对各个接口功能和数据上传逻辑梳理清楚后,将每个接口性能测试的方法、测试项、需要的数据都设计好,整理后就是我们的测试方案了。

下面是部分截图

​测试方案是 在即实际操作尝试可行的情况下编写的,后续施行的过程中发现的需要调整的地方,按实际需求进行了调整。

2、测试方案讨论

将测试方案提交导师审核后,小组内开会讨论了此方案,组长对不合适的地方提出改进意见,同事们提出自己的想法,还有不清楚的地方也在大家的讨论中更明朗了。通过讨论后,测试方案变得更贴合项目需要、更可行了。

本次需要修改的部分截图如下:

3、性能测试执行

我们使用Jmeter工具进行测试。

接口信息如下:

测试脚本使用Java编写,数据打包为json格式。

4、输出测试报告

5、分析数据

6、问题排查

7、性能改进

02、案例分享

下面分析详细一个接口案例--历史数据上传

1、创建一个线程组:

打开Jmeter.bat,出现图形界面,依次点击如下图:

2、添加HTTP默认请求:

添加此配件为了控制此线程组的访问地址和端口,依次点击如下:

​配置HTTP默认请求参数,根据要测试的IP和端口,如下所示:

3、数据库连接配置:

因为我们要从数据库获取企业信息,所以要配置数据库连接(使用配置元件-JDBC连接配置),若你们用固定的用户名和密码登录,可以省去此步。

JDBC连接配置:

4、添加仅一次控制器:

属于逻辑控制器,用来控制采样器的执行顺序。因为这里的用户只需要登录一次,所以用仅一次控制器,即表示此控制器下的内容在整个线程组运行中只循环一次。

5、添加HTTP请求:

要添加在仅一次控制器下面,才能受它控制。HTTP请求属于Sampler(采样器),然后根据接口文档相关内容填写http请求内容。

6、添加正则表达式提取器:

需要在http请求下面添加,因为要从http请求的响应结果中通过正则表达式来提取我们需要的key。

正则表达式:

  • ():括起来的部分就是要提取的。
  • .:匹配任何字符串。
  • +:一次或多次。
  • ?:不要太贪婪,在找到第一个匹配项后停止。
(3)模板:
引用起来,如果在正则表达式中有多个正则表达式,则可以是$2
3$等等,表示解析到的第几个值给引用名称的那个量(如:key)。如:$1$表示解析到的第1个值。
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0。
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

7、添加获取当前时间:

使用采样器里的BeanShell Sampler。为了方便在Redis里查看数据时知道是什么时间上传的。次数需要在采样器中编写提取当前时间的java脚本。

8、使用java编写脚本设置上传数据,

此处也使用Bean Shell Sampler采样器。数据需要json格式。这里开始,采样器就要添加在线程组下面,因为数据有可能要多次循环上传,如果只部分截图如下:

9、添加http请求,将刚设置的符合接口要求的数据上传。

10、添加监听器

​在监听器中设置运行日志保存的位置。

11、运行后查看结果

最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux--调试器:gdb

gcc与g默认动态链接形成的可执行程序(比如a.out)是release 版本,不可调试!!! 如何搞成debug可调试版本? gcc 程序名 -o 可执行程序名 -g //添加了-g就表明该程序是debug方式发布的 查看可执行…

归并排序和基数排序包含完整程序和结果

一,归并排序 1.定义:将两个或者两个以上的有序表合并成一个新的游戏表的过程。 2路归并排序:假设排序表中有n个记录,则可以将其视为n个有序子表,每个子表的长度为1,然后两两合并,得到n/2&…

前端vue入门(纯代码)24_Modules

穷不怪父,苦不责妻,方为真男人! 【23.Vuex中的模块化和命名空间】 [可以去官网看看Vuex3文档](Module | Vuex (vuejs.org)) 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,sto…

SQLServer2005位安装教程(图解)

进入下载的文件中,双击打开 :splash.hta 文件进行安装 根据自己的系统来选择性进行安装,这里我们选择第二项:基于 x64 的操作系统(6)。 然后在安装中选择“服务器组件、工具、练级丛书和示例©”的选项进行安装。 此处的注册信息可以忽略,非必填选项

第二章 模型评估和选择

文章目录 第二章 模型评估和选择2.1经验误差与过拟合2.2评估方法2.2.1留出法2.2.2交叉验证法2.2.3自助法2.2.4调参与最终模型 2.3性能度量2.3.1错误率与精度2.3.2查准率、查全率和F12.3.3ROC与AUC2.3.4代价敏感错误率与代价曲线 第二章 模型评估和选择 2.1经验误差与过拟合 通…

Unity-3d小游戏开发-----走迷宫

本人是在学习完c,c,数据结构算法,操作系统网络这些基础的课程之后,打算学习自己喜欢的游戏开发方向的东西,然后在B站上自学了几天unity,用到unity的触发器,碰撞,刚体,以及…

图像处理入门教程:从Python到Opencv

Python编程 这里主要针对有一定基础的读者,在Python编程中,掌握基础语法和数据类型是非常重要的。它们是构建程序的基石,是提供解决问题和开发应用的工具。在这里,我将简单介绍一些常用的语法和数据类型。 一、环境搭建 详细请…

14 - 信号优先级与安全性

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)Linux系统编程训练营 - 目录 文章目录 1. 信号优先级1.1 问题1.2 信号优先级的概念1.3 信号优先级实验设计1.3.1 发送端1.3.2 接收端1.3.3 编程实验:信号优先级实验 …

普通索引VS唯一索引

查询性能 假设 我们有一列int 类型的value 对它进行查询 (VALUE无重复字段) SELECT value FROM table where value 8; 如过是普通索引 找到value 8 的记录后还会继续找,直到碰到第一个不满足 k5 条件的记录。 如过是唯一索引 找到value 8这条记录就不会往下找…

百望股份高级PMO专家赵雅婧受邀为第十二届中国PMO大会演讲嘉宾

百望股份有限公司项目管理部高级PMO专家赵雅婧女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:PMO的组织建设与持续运营。大会将于8月12-13日在北京举办,敬请关注! 议题简要: 众所周知&#xff…

图像全景拼接

TODO: 实现图片的全景拼接 流程: (1)检测左右2图片的SIFT关键特征点,并计算特征描述 (2)使用KNN检测来自左右2图的SIFT特征,进行匹配 (3)计算视角变换矩阵H&#xff0c…

目标跟踪基础:距离度量

本文来自公众号“AI大道理” —————— 距离度量在CV 、NLP以及数据分析等领域都有众多的应用。 距离度量可以当做某种相似度,距离越近,越相似。 在目标跟踪领域中,需要判断目标之间的距离或相似度,从而判断前后帧的目标是否…

Redis实战案例13-集群下的并发安全问题

在解决一人一单的问题上面,采用了悲观锁的方案,但是这种方案只适合单机情况,在集群的模式下就不适用了; 覆盖yaml文件中的端口号 修改nginx中conf,这样就可以反向代理到两个节点上去,轮询的负载均衡规则&am…

git bash---打开当前路径所在文件夹

0 Preface/Foreword 在Windows操作系统中使用git bash时,可以通过命令直接打开当前路径下的文件夹,命令如下 explorer .

MS17-010漏洞复现

官方描述:Microsoft Security Bulletin MS17-010 - Critical | Microsoft Learn漏洞描述: Microsoft Windows SMB Server远程代码执行漏洞,Microsoft Server Message Block 1.0 (SMBv1)服务器处理某些请求时,在实现上存在远程代码…

Mockplus Cloud - June 2023crack

Mockplus Cloud - June 2023crack 添加便签以澄清情节提要上的任何设计概念。 新的流程图工具直接在情节提要上可视化任何设计流程和过程。 添加了在发布到Mockplus Cloud时删除RP页面的功能。 添加设计注释时包括图像和链接。 添加了一个新的提示,用于在断开互联网…

MySQL练习题(1)

1,创建如下学生表 mysql> create table student( -> id int, -> name varchar(20), -> gender varchar(20), -> chinese int, -> math int, -> english int -> ); 插入如图数据 1-- 查询表中所有学生的信息 select *from student;2-- 查询表中所有学…

mysql语句练习题,创建表,枚举中文字符集设置,修改(update)

作业: 1.创建表: 创建员工表employee,字段如下: id(员工编号),name(员工名字),gender(员工性别),salary(员工薪…

厄尔尼诺,“烤热”新能源汽车市场?

在高温极端天气中,买新能源汽车的人变多了还是变少了? 7月4日,世界气象组织宣布,热带太平洋七年来首次形成厄尔尼诺条件,这可能导致全球气温飙升、破坏性天气和气候模式的出现。 注:1月底至6月初&#xff…

【离散数学】实践二 Floyd– Warshall算法

文章目录 目标原理设计与实现(代码快照以及代码)运行界面和结果截图结语 目标 给定一个距离矩阵,利用 Floyd– Warshall 算法编程(C语言)求任意两点之间的最短距离。 原理 求取多源最短路径常用Floyd算法&#xff0c…