如何用Jmeter编写脚本压测

news2024/11/25 12:49:06

随着商业业务不断扩张,调用adsearch服务频率越来越高,所以这次想做个压测,了解目前多少并发量可以到达adsearch服务的界值。

这次选用的jmeter压测工具,压测思路如图:

同时,我也准备了一份软件测试面试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

一.日志入参

日志选取的adsearch 的 getads部分

思路: rd线上获取该部分入参下载到本地,我们读取该部分生成入参对象。(这个套路用到很多工具上,比较省事不用拼参数)

如图:

通过jaskson库扫描文件转成对象 

ps:jaskson开源库,用于处理JSON和xml生成对象,百度一下很多博客,遇到问题可以直接搜索都有解决方案。

我们拿到日志之后简单处理下,变成如图格式,在我们读取的要文件的时候,注意下哪部分入参,jaskson是把json结构结合构造函数,自动完成set动作生成有值的对象。

二.jmeterGUI并发

1.依赖jar包

如何打包

idea直接使用marven→package就可以把项目打成jar包。打包jar在项目本地路径/target/.jar

jar放置哪里

项目jar包和依赖jar需要放置在jmeter本地路径:./jmeter/apache-jmeter/lib/ext/

  • 坑1:我之前放置在lib同级目录 extras/下面,一直没有办法运行,后面注意看清楚。
  • 坑2:./lib/ 下面jmeter相关的jar不要乱动,否则坑死你,各种莫名错误。

项目相关依赖jar包

因为要调用adsearch肯定要有adsearch的jar,但是还有其他,你有不知道怎么办呢,这坑了好久,后面发现一个办法: 

  • 就是你不知道依赖什么jar先用jmeter的GUI端运行一下,同时打开/bin/jmeter.log查看报错,非常详细,缺少那个,找个那放进去就行了。

三.参数设置

  • 线程数:并发量,可以理解一次有多少用户同时访问。

  • Rame-Up(secondes):jmeter每个多少s增加并发。

       举例:1000线程,rame-up=10s。即每s增加100线程。

  • 循环次数:一个线程循环多少次

jmeter并发,注释链接服务的打印,不然打印结果也会被搭理自动请求,服务会提示有误

报错如图:

解决方案: 

四.结果分析

  • 下游最大调用量20万/min :adsearch→zzsearch/zzqr 

  • 最大响应时间:500ms
  • 最大qps:不断增加并发数,增加一个值后tps出现下降,那么最大tps就是那个值。

  • 最大并发数:不断增加并发数,增加到某个值后,服务端不断出现超时,则最大并发数就是那个值。

五.启动多个jmeter实例,会提示端口占用

如图: 

送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了! 

PS:如需要软件测试学习资料,可在公众号(互联网杂货铺),后台回复1,小编后面会逐步完善自己收藏的资料。

整理不易,给个关注点个赞吧,谢谢各位大佬!

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

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

相关文章

Windows C++ VS2022 OpenVINO 物体检测 Demo

准备工作: 1、下载opencv 地址:Releases - OpenCV 我下载的是opencv-4.5.5,存放的路径为: 2、下载OpenVino 地址:https://storage.openvinotoolkit.org/repositories/openvino/packages/2023.0.1/ 我存放的路径为…

蓝牙运动耳机哪款好用、最好用的运动耳机推荐

运动耳机现如今可谓是备受热捧的运动潮流单品,消费者对于耳机的需求实际上非常多元化。一款出色的运动耳机不仅要满足基本的运动需求,还需要具备丰富的使用功能,这直接决定了耳机的附加价值。接下来,我将向大家推荐5款佩戴舒适、牢…

HarmonyOS应用开发—资源分类与访问

应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同的设备或配置中的表…

idea装载jerbel以及文件上传下载

一、JRebel 1.1 Jrebel介绍 JRebel是一个Java开发工具,它是一款用于实时代码重载的插件。它的主要功能是在不重新启动应用程序的情况下,将修改后的Java代码实时应用到正在运行的应用程序中,从而加快开发周期,提高开发效率。 实…

算法通关村第十九关:青铜-动态规划是怎么回事

青铜挑战-动态规划是怎么回事 动态规划(简称DP,Dynamic Programming):最热门、最重要的算法之一。面试中大量出现,整体偏难。 1. 热身:重复计算和记忆化搜索(如何说一万次"我爱你"&…

Windows驱动开发(一)

1. 引言 很难为术语 “驱动程序”提供一个精确的定义。 就最基本的意义而言,驱动程序是一个软件组件,可让操作系统和设备彼此通信。 例如,假设应用程序需要从设备中读取某些数据。 应用程序会调用由操作系统实现的函数,操作系统…

WPF——Control与Template理解

文章目录 一、前言二、控件三、模板3.1 DataTemplate3.2 ControlTemplate3.3 ContentPresenter 四、结语 一、前言 最近又翻看了下刘铁猛的《深入浅出WPF》,发现对模板章节中的部分内容有了更深的体会,所以写篇文扯扯。 文章标题是Control与Template&a…

画流程图用什么软件好?安利这几款

画流程图用什么软件好?画流程图是一项非常重要的技能,它可以帮助我们更好地规划和管理工作流程,提高工作效率。在现代的企业中,流程图已经成为了不可或缺的一部分,它可以用来描述各种业务流程、流程控制、组织结构等等…

数据治理实战步骤

写在前面:数据治理是数字化转型的基础,是数字要素流通的首要任务。但是面对不同的情况,数据治理的手段不同。 数据治理专员要转换思想,数据治理中单靠技术、软件是不行的,比如一些单位认为数据治理平台是万能的,直接上平台一般是做不好的,需基于企业的组织文化、愿景等对…

vue全局使用sass变量

需求:框架需要使用scss,之后不想把很多重复的css一个一个写,就提取出来咯,到时候只需要更改scss文件就可以了,不用一个一个的找 1.下载sass 这我下的俩个版本,如果你们下载最新版不兼容可以参考我的版本下…

高效办公利器:批量重命名与翻译文件名一步到位

在我们的日常工作中,我们经常需要处理大量的文件,包括图片、文档、视频等各种类型。有时候,我们需要对文件进行重命名或者翻译,以便于我们更方便地管理和使用这些文件。但是,如果一个一个手动操作,将是非常…

《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制

title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags: 个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…

老师怎样发布查询

作为一名老师,我们经常需要向家长发布各种查询,比如成绩查询、作业查询等。以往,我们可能会将查询结果整理成Excel表格,然后通过各种渠道发送给家长,这样既繁琐又不够高效。幸好,现在有了易查分&#xff0c…

MybatisPlus(4)

前言🍭 ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 在之前我们讲解了大部分查询相关的操作,接下来进行增删改的学…

SpringBoot项目--电脑商城【增加/减少购物车商品数量】

1.持久层[Mapper] 1.1规划需要执行的SQL语句 1.更新该商品的数量.此SQL语句无需重复开发 update t_cart set num?,modified_user?,modified_time? where cid? 2.首先进行查询需要操作的购物车数据信息【查看该条数据是否存在】 SELECT * FROM t_cart WHERE cid?2.接口…

如何解决实时语音通讯技术的延迟问题?

实时语音通讯技术的延迟问题一直是人们关注的焦点。在实时通讯中,延迟会影响到通话的质量和用户体验,因此如何解决实时语音通讯技术的延迟问题是一个重要的挑战。本文将探讨如何解决实时语音通讯技术的延迟问题。 一、延迟的定义和分类 延迟是指从说话…

C语言和汇编到底谁更厉害呢?

今日话题,C语言和汇编到底谁更厉害呢? 有位毕业生与我分享了他的经历。在学校,他学习了汇编和C语言。毕业后,他加入了一家嵌入式企业,发现C语言因其可移植性、开发效率和可读性而更为通用和适用。事实证明,…

排序算法-----冒泡排序与选择排序

目录 前言: 冒泡排序 原理图 代码实现 分析总结 选择排序 原理图 代码实现 分析总结 前言: 今天我们就开始学习排序算法,排序算法也是数据结构与算法在重要组成部分之一,排序算法是最经典的算法知识。因为其实现代码短,应该广&#x…

【设计模式】桥接模式在开发中的应用

1. 概述 桥接模式是一个非常简单的设计模式,可能大家在开发的过程中已经使用到了这种模式而不自知。总的来说,桥接模式最大的作用就是解耦,所谓的解耦,就是通过转换代码的设计,减少类与类,模块与模块之间的…

监听器,过滤器,拦截器

参考博文 文章目录 作用三者区别启动顺序拦截器简要说明实现接口HandlerInterceptor自定义拦截器配置拦截器 过滤器简要说明在springboot 启动类添加该注解ServletComponentScan写个过滤器类,实现Filter接口 监听器简要说明如何使用自定义事件自定义过滤器接口调用…