浅谈自动化测试和性能测试
常常有刚接触自动化和性能测试的同学问我,感觉性能测试和自动化测试是差不多的,我自己刚接触的时候认为也是差不多的,区别就是:自动化一个用户再跑,性能测试需要并发,需要设计各种场景。慢慢的做的多了,发现两者区别还是挺大的。共同点:
接口的自动化测试和性能测试在处理脚本的方式上差不多,特别是使用JMeter、LR 这些工具测试的时候,例如测http协议的请求,只需模拟发送get或post方式的请求,接口脚本很容易转成性能测试脚本。但对于Web应用来说,自动化测试和接口测试就大相径庭了。下面说下具体的差异吧。
差异:
1、测试角度不同
自动化测试和性能测试的出发点不一样,也就是最终的目的不一样。自动化测试是基于功能测试,案例也是来自功能测试,通常用做回归测试,其实测的是业务,是功能。
性能测试考虑单个接口的性能,有时候不会太考虑整体的业务通不通,只需考虑需要压测接口的性能表现,比如处理的tps、平均响应时间、支持的并发用户数。当然性能测试也会关注整个流程的测试。
比如有个做性能测试的小伙伴去做接口测试,就某一个产品的下单操作来说,做接口测试是为了查看下单这个功能是不是正常,他写的接口测试脚本跟性能测试脚本一样,只有一个下单的接口,下单之前一些商品的查询,账户的查询都没有做,这在业务上是不连贯的。
2、使用框架不同
如果说接口的自动化测试和性能测试在脚本处理上有些相同,就Web测试来说,二者就大相径庭了。首先使用的框架就不一样,Web自动化测试使用的是Selenium Webdriver,模拟的是点击页面的元素,性能测试还是录脚本、发请求。一个主要是关注页面元素,后端做了些什么完全是黑盒;一个需要关注发的请求有哪些,是post还是get,传的参数是什么,后端的一些知识还是要了解下,有点像灰盒。
3、要掌握的技能不同
自动化测试偏重开发,对开发语言要求相对高些,如果只是配置现成的框架做自动化测试,那要求并不高。
性能测试要了解的知识很多,脚本语言(C或者java等等)、操作系统(Linux,常用的监控命令,出问题时分析线程)、数据库(查询语句、表的关联、索引、Oracle的AWR 报表);如果是高级的性能测试,那还要懂架构方面的知识。
总的来说,自动化测试偏向于开发,但要有测试的思维;性能测试要懂的知识点很多,真正高级的性能测试也跟开发架构师的水平差不多了。
keyi 不错不错
页:
[1]