性能测试开展de一般阶段划分

一、前提
jmeter/postman进行接口调试、参数化通过。以下内容主要介绍下当前我们公司在日常迭代过程中拿到一个接口后,如何开展性能测试呢?

二、评估
是否需要对进行接口进行压测,如何设计场景进行日常接口压测。需要给出评估,来判断是否需要测试,如开发人员评估、实际用户使用情况等。我们主要是想通过高并发的手段,来暴露出程序存在的一些性能相关的缺陷问题(比如:内存溢出、线程死锁、慢sql等)。

三、阶段划分
1、环境部署
一般环境包括开发环境、线上测试环境、正式环境;如果压测较为重要可以配置独立的压测环境,尽量不要使用测试环境,一般公司测试环境从节约成本角度,配置较低或者混着部署(一台机器上部署了N多个服务),压测的时候几个并发就可能把资源消耗完,根本压不起来,间接掩盖了程序存在的性能缺陷。压测环境的机器配置(硬件、软件参数)是根据线上服务器配置保持一致,基本配置(4C8G)。环境这一步还是较关键的,机器不给力或者配置有差异,后面得出的压测结果可信度可想而知,研发也不会认的。

2、确认测试范围
确认测试范围,了解被测接口内部逻辑、是否存在特别需要关注的点、测试数据量等。一些重要信息需要同产品、研发、业务测试人员讨论确认,如用户最常常用是哪些场景(是必填居多还是非必填居多)、最关注哪的性能,哪些数据需要模拟到真实的量级等。

3、设计测试
包括根据实际业务场景设计测试用例、准备测试数据。这就涉及到上面提到的测试确认信息,用户的使用习惯、工作时间段、系统各模块压力分布等等。只有场景设计到位(比如:一个接口所有参数是非必填的,你压测的时候如果都按照必填去测话,场景就跟实际不一致了),才会让压力结果才更有意义,更能暴露出系统存在的瓶颈。同时,测试数据准备也是很关键的一步,生成测试数据量达到未来预期数量只是最基础的一步,更需要考虑的是数据的分布是否合理,需要仔细的确认程序中使用到的各种查询条件,这些重点列的数值要尽可能的模拟真实的数据分布,否则测试的结果可能是无效的。

4、测试执行、监控
准备测试脚本,执行之前设计好的各个用例,监控并收集需要的数据。由于日常主要是迭代版本优化测试,这里简单介绍下压测场景:针对设计好的测试用例,每一种情况,我们会进行4组测试,比如:基准测试(单用户迭代100次)、50并发一次、100并发一次、100并发持续5分钟这四种情况。在这个过程中,我们会对每一种情况收集相应的测试数据和监控数据,若有问题出现时,会结合这些数据对问题进行分析定位。

5、分析测试通过标准、生成测试报告
性能测试前提还需要有个标准,这个是衡量性能好坏的关键指标。由于是日常迭代版本压测(主要是单接口压测),我们内部考虑到用户可接受的业务指标和资源指标定了个标准:
在这里插入图片描述
将测试过程中各种数据(业务数据、资源数据)收集起来汇总成报告
在这里插入图片描述

发布了222 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42976139/article/details/103416406