RFS的web自动化验收测试——第6讲 案例设计之流程与数据分离1

引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面。

( @齐涛-道长 新浪微博)

 

好久没来写文章了,最近事情比较多,项目上线、考驾照、看房子,搞的身心俱疲,现在总算好一些了,项目上线了;驾照长训结束了,漫长的排队等待路考;看了几个楼盘,终于咬牙下定决心出手了,即将加入了房奴大军了,深圳的房子太贵了,内牛。

 

好了,闲话不说了,这一讲主要说一下案例设计了。还记得我们前面做的case么?先打开浏览器访问百度,输入关键字,点击搜索。

 我们再加上个检查点,检查一下标题是否包含我的关键字,然后关闭浏览器。就是下面这样了。

 这样就可以算是一个比较完整的案例了,包含完整的流程和检查点,那么这时候如果我要增加一个案例,搜索另外的内容怎么办呢?

在原来的case上修改肯定是不合适的,毕竟那个案例可能还是需要保留的。

最简单的办法,把这个case复制一个,修改搜索内容。那么我们复制出一个case2吧

然后我们把2个一起运行一下。

 

都运行成功了。但是如果我们这样的方法虽然简单,但是并不合理,因为如果我要再加5个、10个、100个呢?

都是同样的流程,只是搜索内容和检查点不同,为什么不能把流程抽离出来与数据分开呢?也就是案例分层设计。

这时候就用到了之前讲过的User Keyword,如果你的案例已经写好了,那么可以用下面这个方法,如果是新建的时候就准备好分层了,那么直接在资源里新建userkeyword就可以了。

 

=======分层方法=======

 

1、选中case中的所有脚本,点击右键,选择Extract Keyword

 

 输入Keyword的name,Arguments先不管。

点击OK,就会看到生成了一个userkeyword了。

而我们再看case的内容就只有这个关键字了。

 

2、新建一个Resource文件,把UserKeyword移动过去(或者移动到已有的Resource文件里)

这样做的目的是为了更清晰,在测试套件中一般不放置UserKeyword,前面第2讲的时候我们就说过了,首要建议UserKeyword放在Resource里。

我这里新建一个Resource,叫TestFlow.txt,然后把这个搜索测试移动过去,就成了这样。

我这是新版的RIDE0.46.1,貌似又新增了一些特性,比如图片里我新增的Resource文件TestFlow.txt是灰色的,因为他没有被加载过。前面我们介绍了怎么把Resource加载到TestSuite上,现在也照着做一遍。加载后就是和res1.txt一样了,就不放图片了。

 

3、接下来我们针对这个测试流程进行分离,因为这个案例流程比较简单,实际上就只有搜索内容这一个值是变化的,因此我们把他改成一个变量,同时把这个UserKeyword的参数加上这个变量。

忽然发现这些关键字都是黑色的了,别急,这是因为我们在TestFlow.txt上没有加载Library,参考前面添加Library的地方把S2L(Selenium2Library缩写)加进去就可以了。实际上不加也不影响,只要在运行的地方有加载过Library,就可以正常执行。只是这里显示看的不太舒服而已。为了证明可以正常执行,我这就先不加S2L了。

 

4、再回头看看case的内容

搜索测试的后面一个格子变红色了,这是提醒我们这个UserKeyword有一个参数必须要填写,我们写上case要测试搜索的内容。

 

5、接着我们再把case2的内容都清掉,重新写一个和case一样的脚本,来调用搜索测试这个UserKeyword

 

6、再运行一次, 结果和之前相同,都是pass了。大家可以自己运行一下看看。

 

到现在我们完成了一个简单的分层,把搜索测试这个流程剥离成一个关键字,然后在不同的case调用这个关键字,然后传递不同的参数,用以进行不同数据在同一个流程下的测试。

这样就不用担心再新增10个或100个案例了,因为这个案例比较简单,通过复制也可以做出10个或100个案例,但是最大的区别在于,如果我的流程中间需要做一点小的调整和优化,对于流程和数据分离的案例来说,我这样维护一下搜索测试这个UserKeyword就行了;对于复制的案例,那你就要辛苦了,你有多少个案例就改多少吧。

其实这个道理引申出来,我们做自动化测试也是一样,选择不同的方法或者工具都可以实现最终的目标,但是我们需要考虑的不是把案例做起来,因为这个比较容易实现。对于自动化案例来说,最大的难度不是在于怎么做案例,而是怎么维护案例。因为随着需求的更新,系统的流程或者页面会发生很多的变化,这时候的维护成本的高低才是我们首要考虑的,如果自动化案例建立起来之后,没有后续维护的投入,最终经过若干个版本,这些自动化案例基本就是废弃的了。

好了,下一讲我们继续讲分层,将分层进行到底。

你可能感兴趣的:(RobotFramework,RF的WEB自动化验收测试)