什么是自动化测试?自动化测试的原理是什么?常用哪些工具?常用哪些框架?工具的原理又是什么?自动化如何学习?自动化的优点与缺点是什么?价值在哪里?学习自动化测试要了解与掌握哪些内容?哪些项目适合自动化测试呢?
想学习自动化测试首先得明白以上一些问题,不然学着只能知其然,不知其所以然。
1,什么是自动化测试?优缺点是什么?价值在哪里?
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
从它的定义中是不是所有人为驱动的测试都可以转化为机器执行呢?
答案是否定的。这也就带出了自动化的局限性。说明自动化测试不能完全取代手工测试。
自动化测试从它的名称中看出,它的优点就是自动执行测试,速度快,效率高,节约时间与人力成本,非常适合于敏捷开发。
对于一些周期长,需求变动小,要求分布式测试,重复性高的测试的项目很有帮助。
2,GUI界面自动化测试工具的原理是什么?常用的框架有哪些?
通过工具来驱动WEB端的API方法来操作被测试的系统。常用的框架流行的有unittest(python)-单元测试框架,视不同编程语言而定,robotframework。
相对来说,robotframework入门相对简单,对从业者的编程语言要求不是很高,相对单元测试框架而言。
3,常用的工具有哪些?如何学习?
笔者目前只接触了selenium,QTP没有实践过。
对于selenium的学习,先了解一下其家族成员的构造等基本信息,然后安装,配置环境,再者,练习如何定位元素,定位元素的几种方法,其常用的API各种方法,再然后,就是通过API方法来操作被测试系统,实战了。
在此,笔者强调 ,多练习,一定不要偷懒,熟练了,东西就是你的了。
其中有元素定位的八种方法,by:name,id ,xpath,css,link_text,partial_link_text,tag_name,class,最常用的就是XPATH,CSS,原因,定位快,准确率高,而且基本都能定位到。缺点就是影响速度。
学会 定位方法后,就可以学习API的方法了,如:前进,后退,健盘,鼠标事件,不同窗口切换,不同表单切换,弹出框,IFRAME框架进入与退出。分页,操作COOKIES,控制浏览器窗口大小,两种等待的方法,
JS,上传,下载文件等。这些也需要有一个练习的过程才能掌握。(单元测试框架)
剩下的就是实战了。前面在练习的过程中碰到困难了,多看书,看博客,看懂了就练习,反正资料都放在那了,不看,损失的是自己。找不到,就百度吧。
自动化测试学习需要掌握一门编程语言的,笔者推荐python,2与3无所谓,易学,易上手。JAVA也不错,ruby也不难。我个人学习的是python2,难度不大,多练就好。
自动化对编程语言要求掌握的深度不高,最起码要了解一些基本的数据结构,如元组,列表,字典,字符串的基本语法,条件与循环使用,文件的输入与输出,函数与函数式编程,调用模块,错误与异常,变量,面对对象编程。等。学会了这些后,再来学习selenium就轻松些了。不要 反过来。
个人去年也是这样一步一步走过来的,robotframework框架相对来说简单些,易上手,填写表格式的写用例。属于关建字驱动,但对个人的经验与成长来说相对也慢一些。unittest单元测试框架,上手相对来说难一点,但也不是很难,只要前面的编程语言基础打牢了,学起来也很快。代码能力越强,上手越快,写出来的脚本越稳定。对后续个人的发展也越有好处,无论是从经验还是个人价值来说,都有好处。
最后,笔者希望与大家一起共勉,学习贵在坚持,测试行业高精尖技术很少涉足,也就是说,没有技术问题,只有时间问题。