• 2
  • 0
分享
  • 【性能测试】常见的应用程序性能问题篇
  • 瑾沐沐 2022-06-13 18:04:34 字数 1249 阅读 3833 收藏 0

1. 新增接口并发测试后,会导致接口中的编号重复

       我们在功能测试期间往往很难发现此类缺陷,即并发测试过程中,出现编号重复的情况,有些编号如果是唯一性的,代码层面没有做好控制的话,并发测试期间就会导致编号重复,在生产环境中出现该问题将造成严重的后果。例如沐沐在性能测试过程中就遇到了并发期间订单号重复的情况。所以尽量要在功能测试期间,识别出此类业务场景,通过并发测试的方式,验证是否会出现编号重复的情况。

2. 新增接口并发测试后,各项性能指标正常,但是列表无法加载出数据

      在对新增场景并发测试后,验证各项性能指标都符合性能要求后,沐沐建议登录系统,验证对应查询列表是否可以正常加载出数据,往往很多时候,研发人员不会主动加索引,列表有较大数据量时,就会出现加载缓慢甚至加载不出数据的情况。所以应该及时反馈出此类性能瓶颈,对查询列表进行性能调优(一般都是数据库加索引)。

3. 性能测试执行过程,CPU波动异常

      性能测试执行过程中,我们会监控CPU使用率,沐沐发现对接口进行第一次并发测试时,CPU波动较为异常,但是第二次执行并发时CPU监控图表曲线就会较为稳定,和架构师沟通后,不专业的分析结论为服务器需要预热,突然的高并发就会导致CPU异常波动。因此,沐沐建议在性能测试执行过程中,第一次执行可以先设置短时间并发(例如30s),CPU较为稳定后,再执行正常时间的并发,这样需要CPU监控截图时,数据会比较正常。其次,完成一个性能测试执行后,不能立马开始执行下一个场景,应该通过htop命令或者top命令观察服务器平均负载(load average)是否还原到正常水平。

4. 查询场景,平均响应时间(RT)较长

      性能测试过程中,较多的性能问题都是查询场景响应时间较长,大数据量时,查询列表甚至会加载不出数据。并发测试期间,可以在数据库开启慢日志监控或者是在线的运维监控平台去定位响应时间较长的服务接口以及对于的慢SQL,例如定位到耗时较长的SQL后,可以Explain分析查询是否添加索引,索引是否生效等。针对于较大数据量的查询场景(并且没有频繁的新增、删除时),添加索引往往也无济于事,需要降低查询时对数据库的访问压力,因此往往会采用redis缓存或者ElasticSearch等方式来提升查询性能。

5. 可视化图表场景,统计类平均响应时间(RT)较长

      性能测试过程中,我们会对可视化类的图表进行性能测试,即为多接口的并发测试。沐沐在以往的测试过程中发现,此类测试场景往往是统计类的接口响应时间较长,可能会出现跨表或者垮库统计的情况,因此作为测试人员需要提前规避此类问题,例如在需求评审阶段,面对可视化图表的各类统计,就可以提前抛出问题,让产品人员和研发人员参与讨论,统计维度是否合理,潜在的性能瓶颈是否可以在设计阶段提前规避。

      The more we share,The more we have.

      希望这篇文章对大家有用...


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   质量控制过程确保产品的制造标准得到维持和改进。 质量控制过程使公司能够满足客户的期望,同时确保产品质量的一致水平。 采用这些标准创造了一种公司文化,鼓励所有员工追求高质量的生产标准。 对于希望将数据和分析数字化的质量控制团队来说,低代码和无代码软件可以改变游戏规则。  为什么要实施质量控制?  质量控制的主要目的是在制造过程中寻找任何纠正措施来改进产品。质量控制的一个重要组成部分是建立一个检查系统,概述可接受的产品参数并标准化生产过程。在整个生产线上建立和评估标准,员工在生产线上组装原材料并生产成品。在其开发的不同阶段测试每个产品有助于识别生产问题并快速修复它们。  公司通常会雇用专业人员...
            0 0 656
            分享
          •   什么是软件测试缺陷?测验行业的习惯叫法,即Bug管理。在软件或程序开发过程中,编程人员编码、系统设计结构不合理等都会导致错误报错,影响系统程序的正常运行。并且软件测试的目的之一,就是通过手工测试或者自动测试工具来执行操作,测试发现这些Bug,并对代码进行修复。  一、软件测试缺陷分类  1、网络环境;如果测试过程中,外部网络不稳定,也有可能造成软件测试缺陷。例如性能测试对网络环境的配置要求比较高,网络出现延迟、卡顿等都会影响测试结果。  2、硬件环境;由于磁盘空间内存不足、CPU运行速度等造成的系统瓶颈问题。对操作系统、服务器等硬件配置的测试也可能出现偏差。  3、数据问题;由于不同环境i...
            0 0 4338
            分享
          • 一、什么是杀虫剂理论?杀虫剂悖论是Boris Beizer在他1990年出版的《Software Testing Techniques》一书中最先提出来的。当农民发现农作物有病虫害的时候,就需要喷洒杀虫剂,以消除病虫害。通常可以杀死绝大部分的害虫,但是非常不幸的是,总会有少量的虫子活下来。存活下来的虫子对该杀虫剂就产生了抗药性,如果来年农民还是用同样的杀虫剂的话,那么对害虫的杀伤力将会大大降低。农民伯伯需要不断地使用新的杀虫剂来对付具有抗药性的害虫,否则农作物就会被害虫吃掉。在软件测试中用来描述这样一种现象,对软件进行越多的测试,那么该软件对软件测试人员的测试就越具有免疫力。以上专业解释引用自...
            1 0 4295
            分享
          • 配置管理的定义(1)是采用技术手段和行政手段进行管理和监督的一套规范化方法;(2)对配置项的功能特性和物理特性加以标志,并将其文件化,并控制这些特性的变更;(3)报告变更进行的情况、变更实施的状态,以及验证与规定要求的一致性。配置管理的意义配置管理能够解决的问题:1)多重维护问题:解决多个用户对同一文件进行修改所引起的版本不一致问题;2)同时修改问题:解决多个用户对同一文件同时进行修改所引起的资源冲突问题;3)丢失版本或不知版本问题:即要明确保留哪个版本,销毁哪个版本。配置管理的主要内容:制定配置管理计划、配置项识别、建立配置管理系统、基线化、建立配置库、变更控制、配置状态统计、配置审计1、制...
            11 11 2683
            分享
          • 1、 强制等待时间 sleep()必须import time包,强制等待生效时间=页面跳转时间+sleep()设置休眠时间强制等待时间使用语法:sleep(s) s表示时间,以秒为单位 例:sleep(2) 休眠3s2、显示等待时间 WebDriverWait()必须导入WebDriverWait包才可以使用,显示等待时间是针对单个元素生效的,当在规定时间内找到了对应元素,则执行下一步操作。显示等待时间使用语法:WebDriverWait(x,y,z).until(lambda x:x.find_element_by_元素定位方法("对应元素方法的值"))x表示网页窗口对象...
            0 0 810
            分享
      • 51testing软件测试圈微信