性能测试计划
性能测试的计划中应该由项目描述、项目的业务模型和性能指标(指标来源于调研需求中预期指标),性能测试环境说明(前期调研的配置信息)以及测试的场景设计,具体的我们后面再慢慢说。
性能测试场景(只做个简单介绍)
单交易基准测试
什么是基准测试?就是为了找到性能的基准,同时基准数据可以作为性能指标的参照物。举个简单的例子,一个查询接口,有一个并发用户连续执行3-5分钟(没有具体规定,3-5分钟就可以了 ),最后在通过聚合报告可以得到每秒成功了多少次和响应时间。这就是基准值。
作用:当项目迭代 或者 架构升级优化后,再去跑一次相同的基准脚本,比较执行后的基准值,可以快速判断性能是否有提升。
特点:「单用户」并发
「单交易负载测试」
单交易其实就是单个接口去做高并发测试 。例如登录功能,只调用一个登录接口。
「多交易混合负载测试(混合场景--线上真实)」
多交易 就是多个接口组成的业务场景。例如注册后登录,要调用注册、登录等多个接口。要注意必须先把单个接口测好了,确保每个单接口都没有性能问题,再根据比例测多个接口混合的负载测试。例如:同时多少人同时注册、多少人同时登录、多少人搜索..这个比例是从需求调研的时候得来的。
高可用性测试
这种测试一般用在什么场景?就是针对集群部署的项目。一个项目部署在了多台机器上,如果某一台机器挂了,其他机器会不会受影响?如果高可用性做的很差,可能就会出现一台机器挂了,其他所有的机器也都无法正常工作。如果在线上做性能测试的时候,一定要做高可用性测试。
特点:让集群中的一台机器先挂掉,测试集群是否能正常运行。挂掉的机器再启动起来,看是否能在集群中正常使用。(生产环境中测,一般线下都只会用一台服务器 )
异常场景测试
最常见的就是网络异常,一般就是弱网/网络波动下测试并发处理能力。可能遇到的问题就有弱网时客户端自动重试机制,多次发送相同的请求造成异常数据...
特点:针对一些比较敏感的功能,例如下单、支付接口
「稳定性测试」
就是长时间的压测,连续跑12小时及以上,看系统是否会出现性能问题来检测系统的稳定性。一般是用混合场景的业务脚本来做。
搭建测试环境
-
性能测试环境要独立,最好不要用功能测试的环境,容易造成脏数据影响功能测试。
-
服务器的系统版本要保持和线上一致
-
中间件、数据库等配置要一致
-
服务器的配置最好能和线上一致
-
若线上项目的各种服务是集群部署,线下各个服务部署就各用一台可以了。
测试数据构造
数据分为基础数据和参数化数据。
-
基础数据包括应用中各种系统配置数据。
-
参数化数据就是我们在压测时需要用到的不同的参数化数据,总不能我要压测1000个用户并发登录就用一个账户不停的并发吧,服务器不给我拉黑个屁的。
那么数据该如何构造呢?
-
直接调用业务接口:对于数据流复杂的数据,与其低声下气和开发问来问去,不如直接调接口方便。
-
sql存储过程:用sql的语法来造数据,这个难度稍微大了点,毕竟还需要再学个语法,也只适合表比较少的时候用。不太推荐,除非开发肯主动配合。
-
脚本导入:用代码自己来实现,好处就是灵活,想怎么搞就怎么搞。
-
数据工厂:调用自己开发的数据工厂开放的官方api。
脚本编写
为了方便快捷上手,衔接了我前面的jmeter系列,后续我们还是使用jmeter来编写性能脚本。关于脚本的编写可以参考我前面的文章,这里不再赘述。
压测执行
执行压测也要分两种情况,如果性能测试环境是用单台服务器部署的,根据并发数情况决定是否只用一台压力机就可以了。
如果是「集群部署」,建议还是使用「分布式执行」吧。
压测的时候只是执行明显是不够的,更重要的是监控压测过程中服务器、jvm、数据库、中间件等,不然只看结果你能预测出来是哪里出问题啦。
压测执行完后就是收集测试结果,再进行数据分析去定位性能瓶颈。(暂时还只会说说,实际不会)
调优
这部分就先不想了,先学会监控分析定位再说吧。
性能报告
报告这部分就根据网上的模板大概列一下吧。
-
性能测试概述
-
测试环境
-
测试场景设计
-
结果及分析
-
调优建议
-
结论
绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~