性能测试流程
性能测试的流程应该是什么样的呢?打开jmeter/LR ,开启录制然后加个并发数点击运行吗?如果真这么简单,估计现在就没有性能测试这个专职的岗位了。
虽然我们没做过,但是有对学习的热爱和百度搜索的老手艺啊。看了很久觉得最合理的一套流程应该是这样的:
-
对需求做充分的调研
-
编写性能测试计划
-
搭建性能测试环境
-
准备性能测试数据
-
编写性能测试脚本
-
执行压测
-
调优后回归
-
编写性能测试报告
下面我们一个个展开来说。
对需求做充分的调研
既然是调研,那肯定是要充分了解了。
首先我们要了解「项目的背景」,清楚的知道项目是做什么的,然后一个重要的点就是要明确性能「测试的范围」,毕竟一个系统辣么多接口和功能,全做一遍性能也不太可行。一般是选核心模块的接口来做,以及pv比较高的接口。
❝下面就是「熟悉业务逻辑」!!「熟悉数据流向」!!!
❞
为什么要熟悉这些,这不是开发应该熟悉的吗,测试了解这么多干嘛?你连业务逻辑和数据流向都理不清,难道真就一个线程组里放一个接口然后加个10000个用户就开始压测了?
如果数据流向分不清,那最后你看着压测后的error,就提交一下结果然后完事了吗?那只能算是个性能测试脚本执行。
理清数据流向,才能更好的去排查问题,从业务中根据数据流向一步步寻找,用到了数据库就去排查数据库,用到了中间件就去排查中间件,用到了缓存就去排查缓存,用到了第三方的服务就去排查第三方服务,数据流向可以帮我们指明排查方向。
还有就是我们要对「系统架构」有充分的认识,毕竟以后有机会还是要学学调优(难度系数*************)。架构包含项目用到的组件和技术,像是消息队列、中间件、负载均衡、分布式啊等等。
其次还有「配置信息」,我们要了解线上的服务器配置(像是CPU的核数、内存等等),尽可能保证性能测试环境和生产环境接近。
重点来了: 既然要压测,那总得有「测试数据」吧,数据虽然可以自己造,但是到底要多少数据量呢?这个最少要和线上保持在同一个量级,总不能线上数据库有100000个用户,然后你压测登录的时候准备个10条数据在那自嗨吧。这里又得提一下数据工厂了,到时候是不是可以直接调用官方工具的api帮我们一键解决了呢?
每个项目或多或少可能都会有「外部api的调用」(像是合作方提供的api或者支付接口等等),如果在压测的事务中也会调用到这些api的话,可能会对我们的结果有一定影响,这个时候最好就是采用MOCK的方式来替代,把影响降到最低,毕竟外部api不是我们自己的,你压了也没什么用。
再来就是「使用场景」,大部分开发都会提供接口文档,但是接口文档的质量参差不齐,即使你拿到了,你也没法了解接口的执行场景及执行要求(像是接口的执行顺序、前置条件、关联关系等等)。你如果都不知道接口是用户在使用哪些功能和业务调用的,那你怎么设计脚本呢。
如果要测多个业务,那么多个「业务的比例」你也了解。像是购物网站,用户们有的是直接到购物车下单付款,有的呢是挑完了又删,删完了又挑,不断的比价,加购物车,最后才下单(就是我这种人)。
同时对于「日常业务量」也要和产品人员交流好,这里就是各个接口的PV了。根据PV 我们可以进行「预期指标的评估」,指标不可能凭空出现。
总结
需求这部分的调研还是很重要的,就是性能测试的准备工作,可能你也和我一样公司里根本没有这么完整的项目团队和对软件质量的重视,但这些都不重要,就算你没做过,能说得出来也已经唬住了不少面试官了(因为他们也不会,哈哈哈。)
绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~