使用Jmeter进行性能测试的这套步骤,入职京东后,涨薪2次,升职一次

news2024/11/26 22:22:49

项目背景:

我们的平台为全国某行业监控平台,经过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、运行后查看结果

最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

怎么设置启用远程桌面?如何让外网电脑远程本地内网?

如何远程控制电脑?最简单实用的方案是开启电脑系统自带的远程桌面功能,如果涉及跨网、内外网互通,可以同时用快解析内网映射外网。下面是方案的具体实施步骤,供大家参考。 怎么打开设置启用远程桌面? 1.在目标需要远…

IO:阻塞和非阻塞、同步和异步

阻塞和非阻塞 阻塞的时候线程会被挂起 阻塞: 当数据还没准备好时,调用了阻塞的方法,则线程会被挂起,会让出CPU时间片,此时是无法处理过来的请求,需要等待其他线程来进行唤醒,该线程才能进行后续…

Javascript的API基本内容(二)

一、事件监听 结合 DOM 使用事件时,需要为 DOM 对象添加事件监听,等待事件发生(触发)时,便立即调用一个函数。 addEventListener 是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和…

产业链金融的前世今生

产业链金融脱胎于供应链金融,又不同于供应链金融。二者的区别是, 供应链金融服务于单个环节、单个企业,而产业链金融是以产业链的核心 企业为依托,针对产业链的各个环节,设计个性化、标准化的金融服务产品,…

Appium自动化测试框架是一种较为优雅的使用方式

以操作小米商城下单为例流程是 启动小米商城app, 点击分类,点击小米手机, 点击小米10 至尊版,点击加入购物车,点击确定....原脚本Copyfrom time import sleep from appium import webdriver from selenium.common.exceptions impo…

python有哪些应用方向及其学习方法 资源推荐

目录 python 语言的应用方向 python简介 1.常规软件开发 2.科学计算 3.自动化运维 4.云计算 5.WEB开发 6.网络爬虫 7.大数据分析 8.人工智能 9.python处理图片和视频 【渗透测试相关工具下载】 推荐阅读 python实战文章 渗透测试文章 渗透测试实战专栏 python黑…

Gorm-学习笔记

1 基本使用 2 创建数据 2.1 如何使用Upsert 使用clause.OnConflict处理数据冲突 2.2 如何使用默认值 通过使用default标签为字段定义默认值 3 查询数据 3.1 First与Find 使用First时,需要注意查询不到数据会返回ErrRecordNotFound。 使用Find查询多条数据&#x…

详讲函数.2.

目录 5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 小结: 6. 函数的声明和定义 6.1 函数的声明: 6.2 函数的定义: 5. 函数的嵌套调用和链式访问 函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的…

JUC包:CountDownLatch源码+实例讲解

1 缘起 有一次听到同事谈及AQS时,我有很多点懵, 只知道入队和出队,CLH(Craig,Landin and Hagersten)锁,并不了解AQS的应用, 同时结合之前遇到的多线程等待应用场景,发现…

QML 元素布局

定位器:是QtQuick模块中的提供的,有以下三种 Row 行定位器Column 列定位器Grid 网格定位器Flow 流动定位器常用属性: spacing间距 Row (行定位器) 按照行的方排列 //行定位器 Row{spacing: 5//设置间距Rectangle{width: 100he…

[蓝桥杯] 二分与前缀和习题练习

文章目录 一、二分查找习题练习 1、1 数的范围 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 机器人跳跃问题 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 四平方和 1、3、1 题目描述 1、3、2 题解关键思路与解答 二、前缀和习题练习 2、1 前缀和 2、1、1 题目描述…

《操作系统》——第二章 进程与线程

目录 2.1.1进程的概念、组成、特征 2.1.2进程的状态与转换、进程的组织 2.1.3进程控制 2.1.4进程通信 2.1.5线程的概念 2.1.6线程的实现方式和多线程模型 2.2.1调度的概念、层次 2.2.2进程调度的时机、切换与过程、方式 2.2.4调度算法的评价指标 2.2.5调度算法(1) 2…

1249 亲戚(并查集)

1249. 亲戚 题目 提交记录 讨论 题解 视频讲解或许你并不知道,你的某个朋友是你的亲戚。 他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。 如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖…

数据库之高级查询

注意:第一个包含空,第二句不包含空注意:第二句是错的,聚合函数不能出现在where中。注意:相当于,按照分组属性,求出每个组的聚合函数值,所以肯定不能放单个属性有冲突with rollup是最…

MyBatis - 05 - 封装SqlSessionUtil工具类(用于获取SqlSession对象)并测试功能

文章目录1.新建SqlSessionUtils工具类2.编写静态方法3.项目结构及代码项目结构数据库和表pom.xmlParameterMapper接口:User类:ParameterMapper.xmljdbc.propertieslog4j.xml:mybatis-config.xml:ParameterMapperTest测试类:测试结果1.新建Sql…

leetcode打卡-回溯I

77. 组合 leetcode题目链接&#xff1a;https://leetcode.cn/problems/combinations/ leetcode AC记录&#xff1a; 代码如下&#xff1a; public List<List<Integer>> combine(int n, int k) {List<List<Integer>> res new ArrayList<>(16…

操作系统期末复习

操作系统概论 文章目录操作系统概论操作系统的目标&#xff1a;基本特征:主要功能发展操作系统的运行机制时钟管理中断机制&#xff1a;指令程序处理机状态原语&#xff1a;由若干指令组成的程序段&#xff0c;完成特定功能系统数据结构系统调用体系结构进程--资源分配和调度的…

[黑马程序员SSM框架教程] Spring-22 注解开发依赖注入

1.自动装配是基于暴力反射对私有属性进行装配的&#xff0c;所以不需要setter方法。打破了IOC提供对象&#xff0c;我提供入口的思想。现在不用提供入口也能实现。 2. Qualifier必须依赖注解Autowired&#xff0c;当自动装配的接口类型有多个实现类时使用&#xff0c; 3. Autow…

Linux基础命令-du查看文件的大小

文章目录 du 命令介绍 语法格式 基本参数 参考实例 1&#xff09;以人类可读形式显示指定的文件大小 2&#xff09;显示当前目录下所有文件大小 3&#xff09;只显示目录的大小 4&#xff09;显示根下哪个目录文件最大 5&#xff09;显示所有文件的大小 6&#xff0…

layui框架学习(11:徽章)

应用程序有新增内容、未读消息时&#xff0c;会在按钮或菜单中添加红点或带数字的点状或方状图形&#xff0c;用户看到就知道有新内容&#xff0c;如下图所示QQ邮箱的截图&#xff0c;会通过红色圆点或带NEW的方框提醒用户有新内容可以查看。   CSDN用户如果有新消息&#x…