首页 > 其他分享 >一文2000字从0到1用Jmeter全流程性能测试实战

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

时间:2023-10-27 15:59:23浏览次数:32  
标签:一文 数据 采样器 接口 2000 添加 测试 Jmeter 上传

项目背景:

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

最后如果你想学习自动化测试和需要软件测试资料,欢迎加入笔者的交流群:320231853,里面会有很多测试资源和大佬答疑解惑,我们一起交流一起学习!

标签:一文,数据,采样器,接口,2000,添加,测试,Jmeter,上传
From: https://www.cnblogs.com/NHB6870/p/17792513.html

相关文章

  • 从原理到实践:一文了解如何用VT2710实现SPI仿真
    现如今,随着汽车电子的发展,串行通信在ECU上也被广泛应用,我们常见的串行通信有:RS485、RS232、PSI5、SPI等,每一种串行通信都有其自身的特点。本文主要就基于VT2710实现SPI仿真进行相关的介绍。  VT2710介绍  VT2710是Vector旗下的一款串行通信板卡。VT2710提供一套测试EC......
  • 一文搞懂深度信念网络!DBN概念介绍与Pytorch实战
    本文深入探讨了深度信念网络DBN的核心概念、结构、Pytorch实战,分析其在深度学习网络中的定位、潜力与应用场景。关注TechLead,分享AI与云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资......
  • 一文详解多模态大模型发展及高频因子计算加速GPU算力 | 英伟达显卡被限,华为如何力挽狂
    ★深度学习、机器学习、多模态大模型、深度神经网络、高频因子计算、GPT-4、预训练语言模型、Transformer、ChatGPT、GenAI、L40S、A100、H100、A800、H800、华为、GPU、CPU、英伟达、NVIDIA、卷积神经网络、StableDiffusion、Midjourney、FasterR-CNN、CNN随着人工智能技术的快......
  • jmeter常见问题
    解决jmeter非GUI模式运行测试时,结果.jtl文件没有响应数据及中文乱码问题(1)修改bin目录下的user.properties文件,追加配置:jmeter.save.saveservice.response_data=truejmeter.save.saveservice.samplerData=truejmeter.save.saveservice.requestHeaders=truejmeter.save.......
  • 支付宝权限问题大全|一文搞定,持续更新
    不知道有多少小伙伴还在头疼支付宝权限的问题,这边汇总了下目前对接支付宝可能会出现的权限问题,总有一篇能解决。 前期准备:支付宝赋权要求工欲善其事,必先利其器。这里先介绍下支付宝目前的赋权要求:账号完成对应产品签约——如何签约应用下绑定对应产品——如何查看应......
  • 一文学会手动配置CANoe VLAN
    随着汽车智能化发展,车内通信带宽需求日益增长,车载以太网逐渐成为车内骨干网络。为了实现更彻底的域间功能解绑,提升信息处理效率,提升网络安全等目的,VLAN被广泛应用在车载以太网通信领域。 VLAN能够将一个物理网络拆分为多个逻辑网络,域内无缝通信,域间相互隔离。交换机或网络通信......
  • Jmeter之json提取器
    Jmeter之json提取器一、json提取器设置多个变量获取多个数据1、json的Path表达式:$.data.result[*].data.tradeTitle $表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到result,[*]表示该节点下有多个子节点。然后找到data,再找到tradeTitle2、添加:后置处理器——j......
  • JMeter-如果(if)控制器
    目录 前言 需求 一:添加商品信息接口 二、打开函数助手,选择__jexl3函数 三、添加逻辑控制器-如果(if)控制器 四、在如果(if)控制器下添加登录http请求 五、添加监听器-察看结果树 前言在实际工作中,当使用JMeter做性能脚本或者接口脚本时,当遇到需要对不同的条......
  • 一文教你学会使用Cron表达式定时备份MySQL数据库
    各位小伙伴大家好,今天我就来讲述一下作为一个运维,如何解放自己的双手去让服务器定时备份数据库数据,防止程序操作数据库出现数据丢失。mysql_dump_script.sh脚本文件#!/bin/bash#保存备份个数,备份7天数据number=7#备份保存路径路径名可自定义backup_dir=/data/backup#日期......
  • Jmeter中的ramp-up时间指的是什么?请举说明
     在JMeter中,ramp-up时间指的是测试中逐渐增加并发用户数的时间。它表示从测试开始到达最大并发用户数所需的时间。举例说明:假设我们需要对一个网站进行性能测试,设置最大并发用户数为100,并且希望在30秒内逐渐增加并发用户数。那么,ramp-up时间就是30秒。在测试开始时,JMeter会......