=======分层方法=======
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就行了;对于复制的案例,那你就要辛苦了,你有多少个案例就改多少吧。
其实这个道理引申出来,我们做自动化测试也是一样,选择不同的方法或者工具都可以实现最终的目标,但是我们需要考虑的不是把案例做起来,因为这个比较容易实现。对于自动化案例来说,最大的难度不是在于怎么做案例,而是怎么维护案例。因为随着需求的更新,系统的流程或者页面会发生很多的变化,这时候的维护成本的高低才是我们首要考虑的,如果自动化案例建立起来之后,没有后续维护的投入,最终经过若干个版本,这些自动化案例基本就是废弃的了。
好了,下一讲我们继续讲分层,将分层进行到底。