• 11
  • 11
分享

简述性能测试流程?

  1. 分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下

  2. 制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具

  3. 编写测试用例

  4. 搭建测试环境,准备好测试数据

  5. 编写性能测试脚本

  6. 性能测试脚本调优。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本

  7. 设计测试场景,运行测试脚本,监控服务器,

  8. 分析测试结果,收集相关的日志提单给开发

  9. 回归性能测试

  10. 编写测试报告

如何确定系统最大负载?

通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。

你们系统哪些地方(哪些功能)做了性能测试?

选用了用户使用最频繁的功能来做测试,比如:登陆,搜索,提交订单

你们的并发用户数是怎么确定的?

1)会先上线一段时间,根据收集到的用户访问数据进行预估

2)根据需求来确定(使用高峰时间段,注册用户数,单次响应时间等

你们性能测试在什么环境执行?

参考答案:我们会搭建一套独立的性能测试环境进行测试

你们性能测试什么时间执行?

基准测试:功能测试之后,系统比较稳定的时候再做。

负载测试:夜深人静,系统没人用的时候

怎么分析性能测试结果?

首先查看事物通过率,然后分析其他性能指标,比如,确认响应时间,事务通过率,CPU等指标是否满足需求;如果测试结果不可信,要分析异常的原因,修改后重新测试

think_time的作用是什么?

模拟真实生产用户操作,考察对服务器所造成的影响。

在确定性能测试结果可信后,如果发现以下问题,按下面提供的思路来定位问题

问题一:响应时间不达标

查看事务所消耗的时间主要在网络传输还是服务器,如果是网络,就结合Throughput(网络吞吐量)图,计算带宽是否存在瓶颈,如果存在瓶颈,就要考虑增加带宽,或对数据的传输进行压缩处理;如果不存在瓶颈,那么,可能是网路不稳定导致。如果主要时间是消耗在服务器上,就要分别查看web服务器和数据库服务器的CPU,内存的使用率是否过高,因为过高的CPU,内存必定会造成响应时间过长,如果是web服务器的问题,就把web服务器对应上对应的用户操作日志取下来,发给开发定位;如果是数据库的问题,就把数据库服务器对应上对应的日志取下来,发给开发定位。

问题二:服务器CPU指标异常

分析思路:就把web服务器对应上对应的用户操作日志取下来,发给开发定位。

问题三:数据库CPU指标异常

分析思路:把数据库服务器对应上对应的日志取下来,发给开发定位。

问题四:内存泄漏

分析思路:把内存的heap数据取出来,分析是哪个对象消耗内存最多,然后发给开发定位。

问题五:程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。

原因:程序可能是单线程处理机制

如何识别系统瓶颈?

从TPS指标分析,TPS即系统单位时间内处理事务的数量。观察当前随着用户数的增长期系统每秒可处理的事务数是否也会增长

如何判断系统的性能是变好了还是变坏了

通过基准测试对比性能指标

你们的性能测试需求哪里来?

1:客户提供需求

2:运维提供需求

3:开发提供需求

如何实现200用户的并发?

在脚本对应的请求后添加集合点

什么情况下要做关联,关联是怎么做的?

当脚本的上下文有联系,就用关联。

比如登录的token关联,增删改查主键id关联

有验证码的功能,怎么做性能测试?

1、将验证码暂时屏蔽,完成性能测试后,再恢复

2、使用万能的验证码

你们性能测试做的是前台还是后台?

BS项目:测试的是后台服务器的性能和浏览器端性能;

APP项目:手机端和服务器端的性能都做

性能测试指标有哪些

响应时间

吞吐量

cpu

内存

io

disk

如何脚本增强?

1、做参数化

2、做关联

3、添加事务

4、添加断言

5、添加集合点

6、添加思考时间


作者:河小
链接:https://zhuanlan.zhihu.com/p/83893129

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、selenium中如何判断元素是否存在?isElementPresent2、selenium中hidden或者是display = none的元素是否可以定位到?不能3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?添加元素智能等待时间 driver.implicitly_wait(30)try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种4、如何提高selenium脚本的执行速度?代码优化5、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没...
            0 0 854
            分享
          •   Meta 公司昨日(9 月 13 日)发布新闻稿,宣布以负责任和透明的方式,重启 AI 训练计划,利用英国用户在 Facebook 和 Instagram 上的公开帖子来训练 AI。  Meta 公司声称已根据监管机构的整改要求,修订推出了新的“选择退出”方案,进一步提高数据透明度。  Meta 公司表示此举是为了进一步优化生成式 AI,让其能够“反映英国文化、历史和习语”。关于其最新数据收集的具体差异,尚不十分明朗。  Meta 公司宣布将从下周开始,在应用中通知英国用户,解释其正在采取的措施,该公司随后计划在未来几个月内开始利用公开内容训练其 AI。  IT之家注:公告发布的三个月前,...
            0 0 470
            分享
          • 在很早之前的文章服务端性能优化之异步查询转同步介绍了一种常用到,服务端开发常用到的多个异步查询转同步的方法,本质上就是利用了java.util.concurrent.CountDownLatch的功能特性,将几个异步查询任务都设置一个java.util.concurrent.CountDownLatch实例,然后等待所有异步任务完成再组装响应,同步返回给客户端。最近通过对java.util.concurrent包的继续学习,又掌握了java.util.concurrent.CompletableFuture这个类的基本使用,使用场景一个请求过来之后,需要等待另外一个异步任务完成之后,获取响应结...
            0 0 633
            分享
          •   1. 什么是单元测试框架  单元测试指的是对软件最小单元(方法、函数、类等)进行测试,常用的单元测试框架:  · Java:Junit、TestNg  · python:Unittest、Pytest  而在自动化测试中,一个用例就一个方法,所以在自动化测试中也同样适用单元测试框架。  2. 单元测试框架的作用  · 组织并执行测试用例  根据实际的测试需要,从大量测试用例中,选择出合适的用例批量执行,如:冒烟测试用例集、回归测试用例集等。  · 测试判断  任何测试都需要对实际结果和预期结果进行判断,单元测试框架都提供了丰富的断言方法。  · 测试...
            0 0 61
            分享
          •   一、背景  总所周知,单元测试有很多优点,但为什么大多数公司都没有强制要求或者实际落地效果很差?难道仅仅是因为程序员们不想做或者没时间做吗?本文带你探讨看透本质原因!  二、单元测试的优点  1、单元测试可以让代码的提测质量更高:单元测试能够给予研发人员即时反馈,增强提测代码的信心。虽然单元测试不能替代系统测试和验收测试,但是它确实让软件的bug更少,软件质量保证变得更好。  2、单元测试有利于更快定位bug: 由于单元测试规模较小,复杂性较低,因而发现错误后容易隔离和定位,有利于调试工作。  3、单元测试可以减少 bug的修复成本:bug越早发现就越容易修复,修复的成本越低。在《快速软件...
            0 0 970
            分享
      • 51testing软件测试圈微信