2020/2/26 星期三
过年回家已经一个多月了,因为疫情的原因,很多事情都耽误了,最近一直在家办公,今天突然接到通知,要写一篇自动化测试的文章,以下是总结:
首先,了解自动化测试的概念:
-
什么是自动化测试?
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。 -
自动化测试包括哪些?
WebUI自动化测试,Jmeter测试,接口测试,单元测试等。单元测试是开发人员自己做,接口测试开发人员和测试人员都可以测。 -
自动化测试成本有哪些?
1.开发成本
2.运行成本
3.维护成本
4.其他相关任务带来的成本
5.软件的修改带来的测试成本 -
做自动化测试的原因?
为了节省人力、时间或硬件资源,提高测试效率。 -
什么样的项目适合自动化测试?
实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:
1.需求变动不频繁
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
2.项目周期足够长
自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
3.自动化测试脚本可重复使用
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。 -
自动化测试的优点和缺点?
优点:
1.可以运行更加繁琐的测试
2.对程序的回归测试更方便
3.保证每次测试地一致性和可重复性
4.更好的利用资源
5.可以执行一些手工测试困难或者不可执行的测试,例如模拟大量用户场景的压力测试
缺点:
1.对测试质量的依赖性极大
2.测试自动化不能提高有效性
3.工具本身并无想象力
4.系统开发时间不一定能缩短
5.维护成本相对比较高
6.比手工测试脆弱,无法应对被测系统的变化
7.没有手工测试发现缺陷多
8.测试开发工作量大,只有测试用例执行次数大于等于5次时,才收回自动化测试成本
了解自动化的缺点和优点后,不难看出,自动化测试不能代替手工测试,只能代替手工测试中执行的频率高,机械化的重复步骤 。
如果我们做自动化测试,可以借助哪些工具呢? -
自动化测试工具有哪些?
1.Selenium:WebUI自动化测试
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Google等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。
我的博客里有很多讲selenium的,大家可以参考一下。
2.Jmeter :接口测试,性能测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
jmeter在我的博客里也有很多,大家可以参考。
3.Postman:接口测试
Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
(详细了解postman可以参考此博客)
4.Robot:WebUI自动化测试,接口测试
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。