从小入手,从简单的开始,然后慢慢的做更系统更复杂的性能测试
确定需求
刚接触性能测试的同学往往不知道性能测试是有需求的。比如
- 给我测一下系统的性能
- 线上xx服务器挂了,能否重现一下线上问题
如果你是性能测试同学,假设时间有限,这两个需求你只能接一个,你是接哪个?
很多同学会选第一个,因为第一个需求似乎是性能测试的需求,第二个跟性能测试似乎没有特别强烈的关系。
但是第一个需求太泛泛了,如果不细化的话操作起来会很难,第二个尽管看起来是亡羊补牢
的行为,但现实工作中这类的需求很多,操作起来也是有套路的,不会特别发散。
总之,建议新人在需求分析的时候接一些具体的,可以操作的需求。需求是否可以细化分解,基本就注定了性能测试能否顺利完成
了解业务
比如重现线上问题的需求,拿到手之后,我们就必须熟悉线上的业务。用户是怎么操作的,系统崩溃
的时段是哪个,这个时段里有多少用户在使用系统,他们都在做什么?
尽可能精确的重现用户的行为或者预测用户的行为,这是性能脚本
的是否符合实际的关键。而这种精确是建立在了解业务的基础之上的。
搭建测试环境
尽可能搭建跟线上环境一致的性能测试专用环境。
关键字
- 一致:最好跟线上环境一样,如果不可能的话,可以减配,但是要保证架构一致。比如线上集群
- 100台,测试环境没那么多资源的情况下,可以适量减少,比如测试环境集群2台,但是一定要是集群,不然就没意义了
- 专用:测试环境是性能测试专享的,其他测试不要在上面搞
实现脚本
比如可以用jmeter实现测试脚本,推荐测试教程网的jmeter教程
对于新人来说,实现脚本往往比较困难。
另外一些基本的性能知识也是必要的,推荐看测试教程网的性能基础知识教程
脚本执行及监控
根据负载模型
去执行相应的脚本,这里就不展开了。
收集测试结果
对于新人来说,只需要把测试结果提交给项目组
的开发人员分析就好了。
对于有一定经验的性能测试人员,希望可以通过监控和代码走查
的方式找到系统瓶颈,并给出部署的建议方案。
持续学习
- linux知识:比如服务器kpi指标,简单监控命令,并发模型等
- 架构知识:最简单的方式,自己搭建性能测试环境或者线上环境,多搞几次就熟了
- 更多知识:总之遇到不懂的就学,比如数据库优化,jvm优化等知识
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!