Robot Framework学习笔记9- 分层设计测试用例

前面几篇文章讲解了一个自动化改如何实现,但是后来会发现,如果我要测试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报告来查看问题出现在哪里。刚刚我运行的时候发现定位不到百度的输入框,然后打开报告查看的时候,发现输入框里面的关键字和输入的不一样,多了一个/,然后将他们拼在一起写了,就定位到了。


猜你喜欢

转载自blog.csdn.net/x83853684/article/details/80549577