学习自动化测试的脚本编写有一段时间了,想和大家分享一下。欢迎大家拍砖。^_^
首先分享几点经验:
(1) 计划:自动化测试学习也是一个循序渐进的过程,可以将这个过程计划成几个阶段。第一阶段,搭建Automan测试环境和熟悉Automan平台的操作;第二阶段,完成珠联璧合自动化测试培训安排的几次作业,完成第二次作业后,就基本上掌握了selector的用法,可以独立构建页面模型。同时,学习各种元素类型及其方法;第三个阶段,熟悉Automan的校验方法,第二阶段相信不少童鞋已熟悉一些简单的文本校验、dialog校验方法,这个阶段,则要深入学习数据库校验的方法。第四个阶段,进行自动化测试进阶学习,如探索怎样更好地创建稳定强健和易于维护的自动化脚本等。
(2) 学习:百科上自动化小组组织的资料很多,可以针对性地去查看,例如,关于selector的书写,这个刚开始看,只能留一个大致的印象,大家可以在实践地过程中慢慢深入了解;并总结出适合自己的写法;同时,建议大家多看看别人写的脚本,看看别人是怎样组织和构建Page Model,有些什么技巧等等。但在看别人脚本前,要先自己尝试写一下,经过认真思考后看别人脚本,才能达到醍醐灌顶的效果。
(3) 实践:对于刚开始学习自动化脚本的童鞋来说,肯定会遇到很多障碍和问题,在遇到这些问题的时候,我们该怎么办呢?首先可以在百科中寻找答案,再则,多请教请教师兄师姐,在这里我要非常感谢孙洁和襄襄,感谢她们耐心地指导。当解决完这些问题,应及时沉淀。还有一点很重要,那就是多多实践。俗话说,熟能生巧,实践地多了,就会发现,自己原来也可以独立地解决遇到的问题,并且在脚本中加入自己的思考,而不是生硬地去套那些方法。
下面是我在平时学习和实践过程中积累的笔记,希望对大家有用。
一、对象库的创建
(1) 页面建模
选择合适的submodel、element和collection页面元素模型会提高对象库的可用性和维护性,也更有利于代码的编写。我的做法是按照页面本身的划分进行组织,被测页面是经过很多人合理规划好的,那我们可以充分利用这一点,进行模块的划分。当然模块分大分小可以视情况而定。这样做的一个好处是,别人复用你的对象库时很好理解,可以很方便找出要使用的元素。
Submodel和Collection的区别:Submodel指的是模块、Collection是集合,两者都可以再包含submodel和element、collection。一般当具有多个相同类型的元素或模块时,可以指定这些submodel or element是Collection。
Collection的应用很频繁,一般涉及到table或有相同类型的元素,那么我们就可以定义集合,并通过集合名[i]来访问集合中的元素。例如:
Apage.basic_info.product_showlist.txt_product_showname[i].set(“”)
其中,basic_info 和product_showlist为模块,txt_product_showname为集合。
(2) selector书写
关于selector的书写,自动化小组已经整理地很详细。这里,我只是收集了自己认为很适用的几个。
1. #和.
#用于定位目标元素的Id;
. 当目标元素有class等属性时,则用.定位。
2. >和空格
目标元素是容易确定元素的直接子节点,则是用”>”; 如果是其子孙节点,则用空格;例如:div.ks-editor body.ks-editor-post
3. selector包含空格
则可以加\\,如button.J_Submit\\btn
4. :eq(i)
目标元素不能唯一确定时,可以通过tab:eq(i)来指定是第几个元素。从0开始。
5. [name=value]和[name*=value]
属性为value,如input[name=q]
属性包含value,则用[name*=value]
二、脚本编写
所谓自动化脚本,其实是用脚本去模拟手工做的操作,那么我们在写脚本前,要充分了解我们要做哪些操作。然后再针对性地建立页面模型和利用建立好的模型编写脚本。