RFS【简单的用例设计】

     本文总结自己的学习,如何去组建一个完成的案例,尤其数据和流程的分离!实现的功能是打开百度,搜素一个关键字,然后坚持是否包含我的搜索,关闭浏览器!对,就是这么简单。

【第一个,数据和流程在一起的用例】这个用例非常不好维护,如果里面的内容改变,维护起来和重写的代价一样了!而且我们要走测试一个类似的流程只是内容不同的用例,那么也必须再写一个,这个不能重用!

 

比如说我们如果要重用这个用例,全选所有用例,点击鼠标右键选择Extract Keyword!组建为一个关键字!成为resource!如下图,这样我们可以更加方便的复制用例!但是现在还有一个明显不好的地方就是,数据是在流程里面的!那面下面我们把相关的变量都提取出来!

 

此用例里面关键有两个变量,一个地址一个搜索的内容,我们用变量来替代!

 

到这里我们使用起来,重用都是很方便的啦。但是还不够,因为比如登录是一个单独的底层操作,我们其他的流程也会用到,这样导致我们这里的登录不能被独立的重用。对,接下来我们要把底层的每个操作都独立出来!

 

而且分为了两个resource,一个是最底层操作的,一个是流程操作的!

我们刚才上面的例子是一共分为了三层:案例层、流程层、元素层,它们的关系也是一层扣一层。

一般情况下系统分为四层(案例层、流程层、流程构件(页面层),元素层)就足够了,如果系统比较复杂可以考虑分为5层。

 

——————————————————————————————————我是分割线——————————————————————————————————————

      这样做的好处不单是为了以后维护方便,也使得案例的架构层级清晰。越是靠近上层的部分,脚本越贴近自然语言,或者说很像我们的测试案例;越靠近下层 的部分,越是接近页面元素的代码级部分。这样以后如果发生维护的时候,根据需要维护的内容,只需要在很少的地方进行调整即可。比如一个元素的id变了,那 我只要在elements里面更新就行了。比如测试的流程调整了,以前是ABC的页面顺序,现在是ACB的页面顺序,那么只要在testflow层进行调 整即可。

那么回到我们的标题,流程与数据分离,实际上目前我们的流程都集中在testflow以及下面的部分,而数据一般都是在案例层去给流程层传递,这就 是我们的流程与数据分离了。当然,我们还可以再进一步的分离,把数据放到外面,脱离我们的案例,在运行的时候才传递进行,也是可以实现的。

 

此文章参考齐道长的博客,这里这是简述,想看更加详细的,请点击:http://blog.csdn.net/tulituqi/article/details/7748313

posted @ 2015-09-09 09:33  夜淡墨  阅读(481)  评论(0编辑  收藏  举报