软件测试中的性能测试是什么( 三 )


一般而言,需求分析可以从系统信息调研、业务信息调研、性能需求评估、性能测试点、性能指标等五方面入手 。
以博睿数据的SDK 产品为例 。
我们在分析需求时首先会从其架构入手分析,然后从业务层面进行分析,例如新增、活跃用户数,第一次使用和启动app(config请求)、启动以后每一分钟上报一次数据(upload请求)、controller接收请求,简单解析封装,发送到kafka、ETL从kafka上获取controller存储的数据,进行解析(解析成不同表数据,封装)、ETL解析数据后,将封装好的数据,再次上传到kafka、druid从kafka获取数据入到库中、web页面从druid中查询数据展示等等业务信息情况,最终从性能测试和性能指标入手,确定性能需求 。
(2) 性能测试准备:
性能测试准备阶段又分为6个阶段:
环境准备:
a)系统运行环境:这个通常指的是我们的测试环境,有些时候需求比较多,做性能测试担心把环境搞跨了影响其它的功能测试,可能需要重新搭建一套专门用来做性能测试的环境 。
b)执行机环境:这个就是用来生成负载的执行机,我们每次做性能测试都需要提前准备好执行机环境,建议执行机使用liunx系统,不要使用windows系统 。
(3)场景设计:
根据性能需求分析来设计符合用户使用习惯的场景,场景设计的好不好直接影响到性能测试的效果 。
(4)工具准备:
a)负载工具:根据需求分析和系统特点选择合适的负载工具,比如LR、Jmeter或galting等 。
b)监控工具:准备性能测试时的服务器资源、JVM、数据库监控工具,以便进行后续的性能测试分析与调优、redis状态监控、kafka消费情况监控 。
测试脚本:
如果性能测试工具不能满足被测系统的要求或只能满足部分要求时,需要我们自己开发脚本配合工具进行性能测试 。
(5)测试数据:
a)用例数据 。
b)负载测试数据 。
其他:如果需要其它关联系统或专业人士,如DBA配合的,也需要提前进行沟通 。
(6)性能结果分析:
性能结果分析则主要从两个层面出发:即性能指标与负载的简单关系和结果分析 。
其中,性能指标与负载的简单关系又可分为响应时间、吞吐量、资源利用率三个层面 。
首先来看响应时间 。
响应时间对应的负载的关系从函数的角度理解,可以简单理解为负载随着响应时间的增加而增加的正向关系 。
也就是说,响应时间突然增加,意味着系统的一种或多种资源利用可能达到的极限 。通常可以利用拐点来进行性能测试分析与定位 。
再来看下吞吐量 。
吞吐量逐渐达到饱和意味着系统的一种或多种资源利用达到的极限 。
最后说到资源利用率 。
与负载对应关系可以理解为服务器某荐资源使用逐渐达到饱和 。
结果分析需具体问题具体分析,一般是多项指标结合分析,通过单个指标一般得不出结论 。
结果可以从以下几个方面分析:
执行发压机器性能是否正常 。
被压测程序所在机器,资源是否正常 。
依赖组件是否正常 。
依赖组件所在机器资源是否正常 。
宿主机机器资源是否正常 。
最后需要注意的是,完整的性能测试报告以简洁为主,不需要任何推导,开发团队需要更多关于分析、比较结果的信息,以及如何获得结果的细节 。
总结
不难发现要成功完成一个性能测试项目,我们需要确保性能测试计划阶段各方面的准确性 。
即计划、基于测试需求分析的用例开发、场景设计、测试执行和结果分析,这些关键点都必须按照正确的方式进行,加上合理的风险预估 。

推荐阅读