目前只做过黑盒测试,那么现在想深入学习下性能测试,需要先学习自动化嘛?


自动化测试和性能测试对应了软体测试的技术栈发展的两个不同的路线。

虽然是两个不同的方向,但是关联度还是挺高的。

下面对性能测试做个详细的介绍吧。

一般来讲,大多数的性能测试都是基于工具来实现的。

比如经典的jmeterloadrunnerlocustio这些。

其中jmeter和loadrunner都是支持使用工具来录制的。

但是录制的脚本可用性不敢恭维,

在实际的工作里,大多数的性能测试脚本其实都是自己写的。

【【【重点!!!脚本是自己写的】】】

那么这个脚本和自动化的脚本有什么区别吗?

其实没什么区别的,性能测试的脚本的实现思路其实和介面自动化的脚本基本上就是一样的。

我记得以前还有个骚操作,用QTP的脚本拿到loadrunner里去跑。

所以啊,你说学习性能测试是不是有需要先学一下自动化。

如果你要掌握自己写脚本,那么多多少少你都要会一点。

jemter的脚本是Java写的。

loadrunner的脚本是C/Java/VBS写的。

locustio的脚本是python。

一般我们自动化的脚本大多数是Java/python/JavaScript来写的。

你要学的话,你可以根据这个关系下手。

好了,刚刚说了关于性能测试的脚本的部分。

性能测试当然是不止工具和脚本的啊。

脚本的功能是可以模拟用户操作。

工具提供了多线程用来施压并发等。

loadrunner还提供了一套高端的监控和报表功能。

所以,在你学会了脚本和工具的应用后,你还要学习怎么监控各项资源的指标。

这就涉及到了资料库,网路,Linux,协议,等等知识的学习了。

展开来讲的话内容就很多了。

最后,总结一下,学习性能测试应该怎么下手。

1、掌握介面测试。

2、选择要学习的测试工具。

loadrunner:学会loadrunner的使用,掌握使用loadrunner自带的功能来做介面测试,然后掌握loadrunner的各个函数,学会写性能测试脚本(基于C语言的)。然后就是什么参数化啊,集合点啊,关联啊,乱七八糟的一堆。学完了后,就可以自己写脚本了。然后设计场景,运用脚本,监控指标,生成报告,分析报告就行了。loadrunner有全套的功能和方案。

jmeter:jmeter功能就没那么齐全了,不过还是挺好用的,不过我不怎么喜欢jmeter,因为我一直嫌弃jmeter的UI丑。还是从用jmeter做介面测试还是练习,然后学会自己用Java写脚本,录制的脚本很low,没啥用,刚学的时候可以试试,后面尽量脱离录制,自己写。资源的监控需要用其他的工具去监控。然后自己整理报告,做分析。

locustio:基于python实现的,功能和jmeter差不多,但是没得UI,UI是个WEB,只提供启动和停止的功能。没啥学的,会python就会用,很简单的。监控资源指标那些和jemter一样。这个挺好用的。

3、学会分析。

工具的学习只是让我们可以做性能测试了。但是施压什么的测试其实很基础,大多数人都会做。

学会分析性能瓶颈才是大神该干的事情。

上班的时候悄悄写的,写的挺乱的,随便看看就好了。


性能测试其实我们也是划归在自动化测试范畴的。

懂一些自动化测试的理论和工具对上手性能测试是很有帮助的。

那我们来自动化测试需要了解啥:

  • 熟悉前端HTML、css、js等
  • 熟悉协议HTTP/HTTPs、FTP、JDBC等
  • 熟悉工具selenium、requests、jmeter、appium等
  • 熟悉语言python、java、js等
  • 熟悉单元测试框架junit、testng、unittest、pytest等
  • 熟悉参数化、断言、时间等待的使用
  • 熟悉数据驱动、模块化、关键字驱动测试、PO模式等
  • ...

性能测试需要了解啥呢?

  • 熟悉协议HTTP/HTTPs、FTP、JDBC等
  • 熟悉开发语言java、c等
  • 熟悉脚本的录制、开发、场景运行、代理等
  • 熟悉工具:LR、Jmeter等
  • 熟悉网路、资料库、硬体等领域
  • 熟悉各种性能指标及优化原理等
  • 熟悉参数化、断言、集合点等
  • ...

从上面看啊,自动化和性能测试之间有交叉也有差异。

至于要不要自动化为基础?

个人感觉有总不会有坏处。

没有也影响不大,作为新的技术点攻克就行啦。


不需要哦,不过性能测试的话有编码基础会更好


我又被邀请了~看到测试类的问题,我就忍不住要答一发

这个要看你用的工具吧,LR和jmeter我觉得不用,这两个看看帖子就能拿下;如果用locust,python基本语法还是要有的。

当然,以上的前提都是,对介面定义和服务架构是有理解的


学性能不需要自动化基础

相反,你性能会了,自动化小case。

性能也是需要写脚本,自动化就是框架+脚本。


自动化测试和性能测试,非鱼和熊掌不能兼得。

性能其实是对介面的压测。所以绝对先是学好介面和介面自动化,再学一些性能工具使用,性能测试就变得简单了。

建议先从自动化测试入手,逐渐具备自动化开发、框架设计能力,再根据情况培养性能测试能力,两者也有一部分是重合的,比如对系统架构设计、业务逻辑等等。

无论是自动化测试、性能测试,建议不要仅局限于测试框架、工具的使用,仅仅是使用工具难以体现具备某种测试能力。

欢迎关注@Tester 与我的公众号:程序员一凡,为了追上曾经给予厚望的自己,加油。


性能测试和自动化测试是测试行业的两个方向。

学习性能测试的时候,首先初级的性能测试工程师首先得需要一些性能工具的学习,比如jmeter。

那么很多测试工程师都认为我只要熟练掌握这些性能测试的工具,就是一名性能测试工程师。

其实不是的,真正资深的智能测试工程师不仅要学会熟练地使用这些性能测试的工具,更多的是帮助分析软体系统中的一些性能瓶颈。

以至于甚至更高层的他学会相关一些伺服器的调优工作。

所以个人认为你要真的想转行做一名资深的性能测试工程师的话,你需要了解很多性能方面的知识,比如说资料库,比如说伺服器,甚至网路通信等等。

那么我们在下来说下自动化测试工程师自动化过工程师需要掌握一定的代码基础,然后能够使用相关的一些代码模拟人手工操作的一些动作,然后解放人手工的一些劳动力。

那么自动化这一块呢,就需要对代码有一定的要求,如果你的代码能力越强,那么你写出来的自动化脚本可能就会越好,而且越容易被复用。


两者没必然联系,不过都有一个要求,要有代码基础


楼上说的对,没啥补充的了


推荐阅读:
相关文章