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

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

 

我搞了个RobotFramework自动化测试公众号

欢迎大家扫一下加入。

这里有最新的安装指南,本文里的版本都比较旧了。

在前一篇的基础上,我们继续做一下进一步的数据分离。大体上有三种方式,第一种适合和Jenkins集成用的,第二种适合有大量数据的,第三种么只有思路,暂时还未实现,如有朋友能实现的话也欢迎分享一下。

一、运行时参数(-v 参数)

先看一下case的脚本:

 

然后我们改造一下,把url和搜索文字都改成变量。

 

然后我们选择RUN页面,在Arguments栏输入参数 -v testURL:http://www.baidu.com/ -v searchText:齐涛-老道长,接着运行一下,这个是木有问题的。

 

作用:这种方式的作用在和Jenkins整合做持续集成的时候非常方便,可以在JOB运行的时候根据传入的参数决定在哪个环境运行。

 

二、参数文件(-V)

这个和上一个的区别就是一个使用大V,一个使用小v,并且大V的是使用文件的。使用文件的好处就是这里你可以写很多的

我们先增加一下var.py的文件(pyc是运行后自动编译生成的,不用管),内容如图。这里要注意的就是中文字符串前面要加u。还有__all__要列出所有的变量。

另外增加了2个变量,一个是LIST型变量,另一个是使用了一个随机数方法,每次都会生成一个1-10的随机数。接着再改造一下我们的案例,增加2个log,把那2个变量的值打印一下。

 

接着我们要加载这个var.py文件,这里有几种方式,推荐第一个。

1、在测试套件上使用Add Variables增加var.py进来,因为我的var.py文件就放在案例相同的目录,所以不用写路径了。

2、和刚才的小v在一个地方RUN的这里写,不过要写完整的路径。感觉不如第一种方便,如果不写路径会报错。或许我没找到如何缩短路径的办法。

3、在脚本中使用import variables,这里可以用${CURDIR}代表当前路径,这样比2好一些,不用写那么长的路径。

 

最后运行一下,可以看到test log里的值已经是使用了var.py文件里的变量值。

 

三、使用外部excel文件

对于这种方案目前我这里还只是构思,没有代码实现出来,所以只说一下思路。

就是类似于QTP的加载excel差不多,但是我们这里需要使用Python脚本来写excel的读写方法,貌似有个xlrd的库,但是好像还要自己做拓展开发,一直没啥时间去写这个公共方法,加上俺Python经验有限,之前写自己的测试库都是边查帮助边写的,缺乏系统化的学习吐舌头。如果有朋友有实现的方法,可以提供给我参考一下哈。

实现了excel读写之后,就可以在测试过程中使用外部的excel文件读取数据或写入数据了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐