3天没合眼,爆肝整理-性能测试常见问题(汇总)一篇全覆盖...


前言

概述一下性能测试流程?

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

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

3、编写测试用例
4、搭建测试环境,准备好测试数据
5、编写性能测试脚本
6、性能测试脚本调优(脚本增强)。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本
7、设计测试场景,运行测试脚本,监控服务器
8、分析测试结果,收集相关的日志提单给开发
9、回归性能测试
10、编写测试报告

如何确定系统最大负载?

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

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

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

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

会先上线一段时间,根据收集到的用户访问数据进行预估;
根据需求来确定,使用高峰时间段,注册用户数,单次响应时间等;

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

我们会搭建一套独立的性能测试环境进行测试

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

基准测试:功能测试之后,系统比较稳定的时候再做。
负载测试:夜深人静,系统没人用的时候

怎么分析性能测试结果?

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

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

问题一:响应时间不达标
查看事务所消耗的时间主要在网络传输还是服务器,如果是网络,就结合Throughput(网络吞吐量)图,计算带宽是否存在瓶颈,如果存在瓶颈,就要考虑增加带宽,或对数据的传输进行压缩处理;

如果不存在瓶颈,那么,可能是网路不稳定导致。如果主要时间是消耗在服务器上,就要分别查看web服务器和数据库服务器的CPU,内存的使用率是否过高,因为过高的CPU,内存必定会造成响应时间过长。

如果是web服务器的问题,就把web服务器对应上对应的用户操作日志取下来,发给开发定位;
如果是数据库的问题,就把数据库服务器对应上对应的日志取下来,发给开发定位。

问题二:服务器CPU指标异常
分析思路:就把web服务器对应上对应的用户操作日志取下来,发给开发定位。

问题三:数据库CPU指标异常
分析思路:把数据库服务器对应上对应的日志取下来,发给开发定位。

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

问题五:程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。
原因:程序可能是单线程处理机制

如何识别系统瓶颈?

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

如何实现200用户的并发?

在脚本对应的请求后添加集合点(绝对并发)
相对并发:线程组设置200线程数

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

当脚本的上下文有联系,就用关联。
比如登录的token关联,增删改查主键id关联

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

将验证码暂时屏蔽,完成性能测试后,再恢复;
使用万能的验证码;

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

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

该怎么去找TPS最佳平衡点呢?

尽可能多的做不同并发数下的压测,记录下响应时间(1s以内)和最大tps,当然,服务器端,各个服务器的资源利用率在可接受范围内(每个公司不一样,我们是90%以内);

然后根据获取到的不同并发下的指标数据(并发数、tps、响应时间),画出上图,关注右侧的交点,即tps下降的地方和响应时间的交点,这个点的tps最大,如果响应时间在1s以内。

此时并发数也是比较大的,这个点就可以认为是三个指标都不错的平衡点(当然,我这里把tps放在第一位优先考虑了,这个就看大家最在乎哪个指标了,排个优先级);

如果响应时间大于1s,最佳平衡点就往左找,找到响应时间为1秒的点,此时对应的tps和并发值,就是最佳平衡点。总之,测试采样越多,获取的平衡点就越准确。

另外,如果是用loadrunner作为并发工具,并发过程中是可以增加或者减少并发用户数的,就不用必须压完一次,再调整并发数继续压,但是,loadrunner并发过程中调整了并发数,还是要尽可能跑久一点,比如10-15min。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

勇往直前,脚步不停;拼搏奋斗,未来可期。不畏艰辛,追逐梦想;坚持努力,无畏风雨。披荆斩棘,放眼天际;奋发向前,收获人生的绚丽花朵。相信自己,勇敢迈向成功的道路,在奋斗中绽放辉煌。

奋斗不只是追求成功的旅程,更是塑造自我的过程。坚定信念,努力拼搏,每一次的付出都将成为未来的光辉。相信自己,成就非凡,绽放人生的绚烂华章!

奋斗是一场艰难的舞蹈,只有坚持不懈的付出,才能跳出最绚丽的华章。披荆斩棘,迎接挑战,不停前行,终将收获属于自己的辉煌与成功!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值