首页 > 其他分享 >jmeter做性能测试

jmeter做性能测试

时间:2023-02-15 18:55:56浏览次数:47  
标签:测试 性能 并发 线程 设置 jmeter

一、线程与进程

一个软件/程序,是以进程的方式存在的,一个进程可含多个线程(一个软件可以做多个事情,就是基于线程而实现的)

二、并发的基本概念

并发:

并发用户数:同一时刻,服务器/接口接收到的用户量,例如同一时刻有22个同学同时点击登录按钮,此时并发用户数为22

并发请求数/qps/rps:同一时刻服务器正在处理的请求数 (请求数一般理解为接口的请求数),例如点击登录按钮后,会同时请求8个接口,则并发请求数为22*8

注意:通常意义上的并发指的是并发用户数

jmeter性能测试原理:通过模拟高并发来测试服务器在一段时间内的性能瓶颈/最大并发

三、设置并发

1、设置线程数(在线程属性里设置线程数,一个线程数即为一个人)

  •  Ramp-up Period(in seconds):决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。  一般设置ramp-up=线程数启动,并上下调整到所需的。
  • 循环次数:通常使用循环次数增加测试时间,一般设置为100

也可以使用调度器设置时间,通常是5min、10min、30min这种比较短的

2、添加集合点(适用于顺时并发较高的情景,在jmeter中不用设置所有的情况,在并发高的第一个接口设置)

应用场景:抢购/秒杀(等待线程数准备好了再冲)

例子:活动,大转盘,每天九点开启,奖品非常丰富,你做性能测试的时候,怎么模拟这种情况?

设置集合点步骤:

①添加同步定时器

右键http请求--->添加---->定时器---->synchronizing timer

②配置定时器

 四、jmeter中的参数化

设置并发后,会发现登录接口有的能正常运行,有的报错,这是因为多个人共用同一个账号导致的,所以针对这个情况,需要对数据进行参数化

参数化含义:单个线程需要单独的数据,比如登录的账号和密码

1、参数化步骤

4.1.1:明确哪些数据需要做参数,数据是从哪里来的

4.1.2:准备测试账号

web接口:调用接口准备

小程序:生成openID的算法来创建测试账号的token,再把token按照规则插入到Redis和数据库表中

4.1.3:使用CSV数据文件设置引用数据文件   

CVS数据文件设置会自动取出单独的数据,保证没分线程数据是唯一的

①右键线程组--->添加---->配置元件---->CSV数据文件设置

 

 ②选取已配置的文件

 

 ③信息头管理器中,引用变量

 

 

 五、聚合报告

即性能测试结果/性能指标,在测试计划中添加

右键测试计划--->添加--->监听器--->聚合报告

 

 指标判断标准:

  • 响应时间--平均响应时间:
  • 响应时间-90%line、95%line、99%line:当前有多少人在这个时间点的响应时间(决定了绝大用户的使用感受)

 

 不同行业和项目对响应时间会有不同的要求,例如,互联网:500ms以下,例如淘宝业务10毫秒左右;

金融企业,1秒以下为佳,部分复杂业务3s以下

保险企业:3s以下为佳

制造业:5s以下为佳

 一般来说,响应时间都会遵循258原则,即2s以下优秀,2-5s可接受,5-8s良,8s差(不清楚就以8s作为依据)

  • 失败率,即出错的概率

项目给出的标准   200qps,失败率不超过0.01%,一般的小公司系统,小于5%即可,比较简单粗略

  • 服务器上cpu使用率,即服务器的繁忙程度,原则是不要持续100%,最好是在85%<x<90之间
  • tps:服务器每秒返回的请求数,在jmeter中称为吞吐量,评论服务器性能的辅助指标

 

 tps最主要的作用是用来找性能瓶颈(一般来说,随着并发数的增加,系统的性能会先稳定增加,之后一段时间系统性能趋于平稳,最后系统性能会下降,系统性能下降的那个点,称为性能拐点,可得到最大并发)

 

 

 注:我们在项目中,一般是只以响应时间、失败率、CPU使用率来判断性能指标就够了

标签:测试,性能,并发,线程,设置,jmeter
From: https://www.cnblogs.com/bzbz/p/17116894.html

相关文章

  • 软件自动化测试高频面试题
    Hello,你们的好朋友来了!今天猜猜我给大家带来点啥干货呢?最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以,今天特意给大家整理了一些经常被公司问到......
  • 测试人如何进行工作量评估?【转载】
    测试人如何进行工作量评估?测试策略的选择、测试范围(新功能覆盖面、旧功能影响面,决定测试用例数量)、测试深度、测试广度(专项测试/性能测试/安全测试等)、质量要求(比如是否......
  • 2023的金三银四,测试员还能找到好工作吗?
    按照往年的惯例,春节后复工的3月、4月是人员跳槽最频繁的时候,俗称“金三银四”。然而,市场大环境的影响,很多行业感受到了一丝寒冷的气息。我们以为受影响比较轻的互联网......
  • oracle 19c 创建物化视图并测试logminer进行日志挖掘
    1.创建物化视图altersessionsetcontainer=pdb;grantcreatematerializedviewtoscott;creatematerializedview物化视图名         --1.创......
  • SQL工具性能实测:居然比Navicat还快,数百万行数据导出仅51秒
    如今的SQL语言逐渐成为职场人士必备的能力。为了让更多SQL用户有一款免费又好用的SQL工具,麦聪软件于2023年1月初发布了一款Web版SQL工具SQLStudio,一经推广就赢得了众多用......
  • SpringBoot 参数及性能优化
    SpringBoot性能优化 组件自动扫描带来的问题默认情况下,我们会使用@SpringBootApplication注解来自动获取应用的配置信息,但这样也会给应用带来一些副作用。使用这个注解后......
  • 【性能测试】性能测试规范
     1    前言性能是一个充满挑战的领域,它是主观的,复杂的。主观在于对系统是否存在性能问题的判断是模糊的,用户认为系统的好与坏也没有界定。故我们需要通过定义清晰......
  • 2-STM32+Air724UG基本控制篇(自建物联网平台)-整体运行测试-Android扫码绑定Air724,并
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/my.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>......
  • 一个合格的软件测试工程师应该具有的能力
    从事软件测试工作已经有一年之久了,从最初的啥都不懂,到现在能够熟练完成测试工作,我经历了很多,也成长了很多,在这一年多的日子里,我学到了很多东西。当然也许现在我还不是......
  • 软件测试工作经验分享
    一、测试阶段划分1、单个模块功能测试时间相对较长,但每一个项目都应该有专门的集成测试阶段,并且应该不止进行一轮。每一轮集成测试,应该都有自己的目的,比如第......