1. 什么是自动化测试?css
自动化测试,顾名思义,自动完成测试工做。html
经过一些自动化测试工具或本身造轮子实现模拟以前人工点点/写写的工做并验证其结果完成整个测试过程,这样的测试过程,即是自动化测试。java
由于每个自动化测试的case都是从手工测试作起的,因此自动化测试的基础是手工测试。web
2. 为何要进行自动化测试c#
1)自动化测试节约成本(根据项目)ruby
2)有些测试项目手工很难实现(手工成本较高)服务器
3)项目质量流程须要网络
3、自动化测试的优点及劣势并发
优点:回归测试更方即可靠;可运行更多,更繁琐的测试,且快速高效;可执行一些手工测试执行至关困难或者作不到的测试,如大量的用户并发;更好的利用资源,具备一致性和可重复性的特色,自动化测试脚本彻底可复用;提高了软件的可信度;多环境下测试等。app
劣势:维护成本相对比较高
系统开发时间不必定能缩短
仍是得依赖手工测试,不少问题没法发现
四、自动化测试分类
按测试目的分类大体可划分为:功能自动化测试,性能自动化测试
按测试对象能够划分为:Web应用测试,APP测试,接口测试,单元测试等
功能自动化
测试目的是发现软件中实现功能是否符合用户需求规格,实践证实,每每咱们实施UI自动化测试的目的不是去发现软件系统中的缺陷,更多的是为了验证系统是否能够正常运行。
除了能够基于UI进行自动化测试,咱们还能够基于网络服务接口提供者进行测试,基于接口进行功能测试较为常见,也是很是有效的手段。
另外还能够基于系统基础代码进行测试,好比单元测试,集成测试阶段,这一阶段的测试也称白盒测试,咱们能够直接对DAO,Service服务进行测试,这里经常使用的测试技术包括Junit, TestNG, Mock, Stub等。
性能自动化
性能自动化测试是经过测试工具模拟高并发负载进行压力测试,以发现软件系统在高负载状况下运行瓶颈,包括应用程序自己的性能瓶颈,网络瓶颈,服务器硬件资源瓶颈,数据存储服务器等,一般惟有借助自动化测试工具来完成,常见的性能测试工具包括,Loadrunner, Jmeter, Ngrinder, Gatling等,无论哪一款测试工具,基本有三大部分组成:测试脚本管理,测试场景配置,监控结果。
与功能自动化相似的是,性能测试工做对象也能够面向用户UI层,或者服务接口提供方,甚至能够直接面向底层基础业务逻辑层,绝大多数经过用户层进行性能测试模拟的是最接近真实用户场景的测试,也是性能测试必然实施的阶段。
五、自动化测试的流程
六、自动化测试经常使用工具
下面我简要的罗列常见的测试,以及适合其最佳的测试工具。
性能测试工具:Loadrunner,Jmeter,Ngrinder,Gatling,每款测试工具存在必定的差别及其局限性,能够参考相关文档详细了解。
功能测试工具: Selenium, QTP
APP自动化测试工具:Appium, UI Automator, MonkeyRunner, Android UI测试推荐使用UI Automator, 是Android提供的自动化测试框架,基本上支持全部的Android事件操做。IOS应用程序能够选择使用Appium。
接口自动化测试工具:Junit,TestNG, OKhttp, HttpClient,Spring Restful等,须要有必定的编码经验,固然也有现 成的工具,好比Postman,HttpRequester,SoapUI等。
单元测试工具:Junit, TestNG, EasyMock, Mockito, JMockit等
七、什么条件的人适合作自动化测试
1)拥有代码能力
掌握一门开发语言,java、Python、ruby、c#
2)熟悉被测系统
好比你是web测试,你就得懂js、css、html、xpath
你是移动端测试,你就得具有Android 开发基础和iOS开发基础,会debug app
你是C/S测试你就要很熟悉TCP、IP协议
3)掌握一套自动化测试框架(工具)
好比selenium/appium;nunit/testng;robot framework/cucumber
4)善于学习,达到知其然知其因此然
IT行业变化太快,新兴的东西出现的频率快,只有不断地学习,才能与时俱进,不被淘汰。
总而言之
学习一门开发语言Java/Python,学习一个测试工具selenium/appium,掌握一个测试框架,平时多沉淀,而后抓住机遇,便可垂手可得的转型自动化测试。