• 0
  • 0
分享
  • 稳定性测试的要点、性能测试的监控的关键指标——软件测试圈
  • 恬恬圈 2023-05-06 16:04:10 字数 1519 阅读 591 收藏 0

  一、稳定性测试的要点

  1、长时间的以正常的业务负载进行运行(最低为用户实际使用时的负载量,如果用户实际负载量低于最优负载量,也可以使用最优负载量)。

  2、稳定性的测试数据(用户实际使用负载量)来源于运营数据。

  3、稳定性测试时,需要针对不同的业务操作,并且模拟不通的用户,进行长时间的稳定性测试(并行执行所有脚本,因为要模拟实际用户使用场景,不同的用户在线所做的动作肯定不一致)。

  二、性能测试的监控的关键指标

  1、系统指标:与用户场景和需求相关的指标

  用户并发数:某一物理时刻同时向系统提交请求的用户数。

  平均响应时间:系统处理事务的响应时间的平均值,一般在3s左右。

  吞吐量:服务器的最大处理能力。

  2、服务器资源的指标:硬件服务器的资源使用指标

  cpu使用率:一般情况下上限为85%。

  内存占用率:一般情况下上限为85%。

  磁盘I/O: 1)监控磁盘实际I/是否已接近最大值,接近则有问题。2)I/O队列长度一直不为0,说明磁盘I/O有问题。

  网络带宽:监控实际的网络流量,与网络带宽做对比,如果实际网络流量与网络带宽比较接近,则网络存在瓶颈,需要优化。(注意:实际中的百兆带宽是Mbps,但是我们技术中衡量的带宽的单位是MBps,1MBps=8Mbps【1Byte=8bit】,所以实际带宽=100/8=12.5)

  3、java应用:应用程序在运行时的各项指标

  Java运行时的内存划分包含:堆区、栈区(分为虚拟机栈和本地方法栈)、方法区、程序计数器。

  堆区:堆是线程共享的内存空间,Java虚拟机启动时就创建了,用来存放对象、数组。

  方法区:方法去也是线程共享的内存空间,也是Java虚拟机启动时就创建了,用来存放类的基本信息,如方法、接口、构造函数、字段、常量、全局变量等。

  栈区:包含虚拟机栈区和本地方法栈区,其中虚拟机栈区保存程序运行的局部变量,本地方法栈区为与操作系统本地程序工作需要使用的变量。

  程序计数器:存放一个指针,指向当前线程正在执行的字节码指令的行号。        

  堆区和方法区为线程共有的,Java虚拟机运行时就创建,线程执行时直接使用,线程结束不释放。

  栈区和程序计数器为线程私有的,是随着线程生随着线程灭的,也就是说线程使用的时候创建,线程结束后释放。

  那么测试的时候重点关注的就是就是堆区,当对象结束后没有被释放,那么空间就会被占用,也就是内存泄漏。测试时,如果堆区的空间持续上升没有下降,就是内存泄漏。

  4、数据库:数据库服务器运行时需要监控的指标

  慢查询:监控系统在运行时,所执行的所有sql语句,检查这些sql是否慢(设置一个时长,超过这个时长就是慢查询)

  缓存命中率:监控业务执行过程中sql查询时的缓存命中率(查询语句读取缓存的次数占总查询次数的的比例,如果缓存命中率过低,需要优化代码和sql查询语句)

  数据库连接池:监控数据库连接池的使用率(如果数据库连接池被占满,如果此时有新的sql语句要执行,只能排队等待,等待连接池中的连接被释放【也就是之前的sql

  语句执行完成】)如果监控发现数据库连接池的使用率过高,甚至是经尝出现排队的情况,需要调优。

  mysql锁:监控测试过程中是否有死锁出现,如果出现,需要进行优化。

  5、测试机资源指标:测试机在模拟用户负载时的资源使用情况

  cpu:cpu使用率一般不超过80%

  内存:内存使用率一般不超过80%

  网络:带宽

  磁盘空间:压测机主要是发送请求



作者:杂学者    

来源:http://www.51testing.com/html/34/n-7792434.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 为什么要进行自动化测试?开始正文前,我们必须先统一认知,充分认识到自动化测试的必要性,随着被测系统越来越大,逻辑越来越复杂,测试的工作量也会倍增,这必然会暴露出测试资源与测试生命周期的冲突,因此为了更快、有效、可靠的对被测系统进行测试,需要引入自动化测试。 加我VX:atstudy-js 回复“测试”,进入 自动化测试学习交流群,内含直播课+实战+面试资料~~而另一方面,当下测试开发岗位是目前软件测试的主趋势,也是升职加薪的必要手段,因此自动化测试必须要尽快实施。分层做自动化选择做自动化,首先要明确目标,自动化是分层的,目前主流认为,自动化测试主要分为UI、SERVICE、JUNIT 三层。所...
            1 1 1199
            分享
          • 现在app太多了,有的时候把整个手机的空间都占满了。所以有时候我就会清理一下我的Android机里那些不常用的app程序,来释放我那3年前手机的小小8G内部存储。有一天,突然看到一个新闻,说饿了么可以通过手机网页,免下载,直接生成一个桌面应用,而且据说可以媲美原生的native应用体验,我来了兴趣,马上试用一下。 用我的华为荣耀3C,,打开Chrome浏览器,在地址栏输入https://www.ele.me,就打开了饿了么的手机网页,再点击右上角的“更多”按钮,弹出一个对话框,点击“添加到主屏幕”,提示添加成功。回到主屏幕,此时出现一个饿了么的图标,跟应用市场下载的一模一样。点击进入程序,嗯...
            10 7 2920
            分享
          •   接口自动化的代码是比较简单的,单接口用例5行代码,多接口场景用例10行、30行、60行不等,都是那种只要认真看都能看懂的,所以在编写用例代码的时候注释都很简洁。但当很用心去完成一个接口用例时,会发现能做的还可以更多,比如命名和注释,看起来更加赏心悦目。  场景用例  获取二维码+二维码扫码结果:  看起来是真的舒服呢!下面上代码。package com.XXXXXXX.api.kjkhd.naturalperson.login; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON...
            0 0 1231
            分享
          • 接口测试流程1、接口测试流程(1)首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。(2)然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的: a、首先新建一个线程组。 b、然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口) c、再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等) d、然后创建断言和查看结果树。(3)最后调试并执行用例,最后编写接口测试报告(4)其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmete...
            11 13 2442
            分享
          •   最近系统学习了一遍python基础知识,学着学着灵光一闪,想到有没有快速掌握知识的方法。一般正常的逻辑是边看基础知识边练习案例,是一个书由厚变薄的过程。   不过现在节奏这么快,尤其是互联网公司,排除周末在家看孩子的时间,几乎没有时间和精力再进行深度学习,所以这篇文章就诞生了。   本文通过案例入手直接结合python知识点,可以快速掌握python基础知识点。  案例名称   ·计算圆形面积   ·输入字符并倒序输出   ·猜数字游戏   ·按照诗句格式输出诗词   ·统计文本中出现次数最多的10个单词(txt)   ·web页...
            14 14 2396
            分享
      • 51testing软件测试圈微信