赞
踩
前面几篇文章讲解了一个自动化改如何实现,但是后来会发现,如果我要测试10条测试用例,那么我们要添加10条测试用例,然后在一条一条往里面去添加那些关键字啊,定位啊。这样子肯定不是自动化了,自动化要的就是减轻我们的工作量,不是给我们增加工作量,像那些定位的元素和关键字都是一样,然后打开浏览器的地址也是一样,每天测试用例都要添加一次,就要添加10次,这肯定是不行的。在python中,我们知道,同一个模块,使用到的同样的功能或者点击事件,我们会将他封装到一个方法里面,然后当要使用该方法时,直接掉用该方法即可。那么在Robot Framework工具中,也可以这样。实例化属性,我定义了好一个变量以及创建属于自己的关键字,然后如果需要调用就随便调用,在多测试用例都不怕。这样就大大减少了我们的工作。
什么是分层设计?
就是将每一个操作步骤都抽出来封装成关键字,然后在通过调用该关键字来实现分层设计
下面先看一条测试用例:
五条测试用例:
其实对于每一条测试用例来说,只是搜索的内容不同,脚本步骤是完全一样的。这样做无疑增加的脚本的冗余,而且不便于维护。假如,百度输入框的定位方式变了,我不得不打开每一条用例进行修改。
我们可以过创建关键字的方式,从而实现分层的思想来解决这个问题
一、创建用户关键字
1、创建资源
右键“testdemo”选择“new resource”创建资源。
输入资源名称:
2、创建关键字
右键“基本关键字”选择“new User Keyword” 来创建用户关键字。
输入关键字的名称:
3、在关键字里面输入值
解释一下里面的内容:第一个是打开浏览器的关键字,这个是必须要的,要打开的地址,用谷歌浏览器打开。这里面没有设计实例化的属性,为什么呢?因为你这里的测试用例都是固定要用谷歌打开百度的页面,所以这是不可变的。如果你的测试用例中要打开其它的地址或者不同的浏览器,这就要设置实例化属性。
实例化设计:点击上图中的Arguments,输入两个变量,变量之间要用 | 号隔开,
然后在地址上面填入你实例化的参数,值的名称一定要一样。这样在你调用这个打开浏览器关键字的时候,就可以输入不同的URL和浏览器。这就叫变量。
4、重复上面的步骤添加关键字:输入框、点击搜索、标题验证、关闭浏览器
输入框:
输入框这里我定义了一个变量,就是输入框的内容,应为我们的测试用例肯定是输入不一样的内容,看响应回来的结果对不对,所以这里要设置变量,而定位的方式是一样的,所以就没有设置变量。注意,InputText 是要连在一起的。不然会出现无法定位
点击搜索:
这就是一个定位按钮点击。
标题验证:
这里设置的变量,因为我想知道你的标题是不是和我预期的一样,所以要设置变量。
关闭浏览器:
现在就是整个操作步骤都全部抽出了封装成一个关键字。
2、添加创建的资源
上面我们创建了一个基本关键字.txt的资源,要想在测试用例中调用生效的话,就是要添加进去才可以。和添加库的道理一样。
切换到测试套件(onedemo)页面,添加资源(基本关键字.txt) 一定是.txt结尾的。
蓝色说明添加成功,如果是红色则说明这个东西不存在,看看名字是不是不一样,要填一样的。
3、调用关键字
都弄好之后,现在我们开始创建测试用例,调用关键字。
直接输入关键名字就可以了,如果这个关键字中有实例化属性的话,在这里面是可以编辑的,如果不是的话,是不可以编辑的。
怎么设置实例化属性就在上面打开浏览器里面有了。然后现在就是我输入的东西和标题验证是可以输入的。这是一条测试用例,然后创建多条的话,直接点击测试用例,copy复制就可以了,只需要把输入框的内容做下修改,就可以了。如果说定位的元素发生了改变,也可以直接在该关键字中修改即可,就不用一个个点击测试用例里面修改。
所有的设计都是这样子。现在是不是觉得简化了很多工作量呢。整个工具的UI自动测试笔记就到此结束了,很简单,很易用。
在运行过程中,出现报错问题解决办法:
如果在运行脚本中,发现定位不到的问题,可以打开那个LOG.html报告来查看问题出现在哪里。刚刚我运行的时候发现定位不到百度的输入框,然后打开报告查看的时候,发现输入框里面的关键字和输入的不一样,多了一个/,然后将他们拼在一起写了,就定位到了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。