现在自己正在使用的就是这套框架,也是驱使自己由浅入深的学习Robot Framework框架的动力之一,由于C/S端的封闭性,自动化测试应用不了WebDriver,同时,C/S需要一定的硬件环境,所以软件的可靠性也是测试重点之一。
一、搭建环境:(由于坑比较多,网上搜了很多,不能从头到尾的成功,所以尽量详细,如果您有补充或者问题请留言)
1.安装JDK
jdk-8u171-windows-i586.exe 双击安装
环境变量:JAVA_HOME C:\Program Files (x86)\Java\jdk1.8.0_171
CLASSPATH .;%JAVA_HOME%\lib
Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
2.安装jython
安装命令 java -jar jython-installer-2.7.0.jar (如果提示:Java不是内部命令,注意Java的版本)
环境变量:JYTHON_HOME C:\jython2.7.0
CLASSPATH C:\jython2.7.0\Lib
Path C:\jython2.7.0\bin
3.安装Skuli X
3.1(不推荐此安装方法)这是网上搜到的安装方法,确实可以启动Skuli,但是要与Robot进行集成,
下载安装包“sikulixsetup-1.1.0.jar”,网址:https://launchpad.net/sikuli/sikulix/1.1.0
将安装包拷贝到安装目录下,如D:\Sikuli1.1
在命令行里运行“Java –jarsikulixsetup-1.1.0.jar”,弹出安装向导:。。。等等。。。
3.2官网直接下载Sikuli-X-1.0rc3 (r905)-win32.exe安装(运行Skuli需要Java1.6的支持,所以此处还要安装jdk-6u45-windows-i586.exe,不需要配置环境变量)
4.配置rf远程调用sikuli环境(搬运的网上大神的,仅供学习非商业用途,如有意见立马删除)
a、新建一个文件夹c:\rf_sikuli
b、将sikuli安装目录下的C:\Program Files\Sikuli X\sikuli-script.jar拷贝到c:\rf_sikuli下
c、下载文件http://robotframework.googlecode.com/hg/tools/remoteserver/robotremoteserver.py到c:\rf_sikuli中
d、在c:\rf_sikuli下新建文件SikuliRemoteLibrary.py,文件内容如下:
1 import sys 2 from robotremoteserver import RobotRemoteServer 3 from org.sikuli.script import * 4 5 class SikuliRemoteLibrary: 6 7 def __init__(self): 8 self.SS = Screen() 9 self.PT = Pattern() 10 11 def _wait(self, imgFile, timeOut, similarity): 12 try: 13 self.PT = Pattern(imgFile) 14 self.PT = self.PT.similar(float(similarity)) 15 self.SS.wait(self.PT, float(timeOut)) 16 except FindFailed, err: 17 print "ERR: _wait" 18 raise AssertionError(err) 19 20 def click_object(self, imgFile, timeOut, similarity): 21 try: 22 self._wait(imgFile, timeOut, similarity) 23 self.SS.click(imgFile) 24 except FindFailed, err: 25 raise AssertionError("Cannot click [" + imgFile + "]") 26 27 def object_exists(self, imgFile, similarity, timeOut): 28 try: 29 self._wait(imgFile, timeOut, similarity) 30 except FindFailed, err: 31 raise AssertionError("Could not find [" + imgFile + "]") 32 33 def type_at_object(self, imgFile, txt, timeOut, similarity): 34 try: 35 self._wait(imgFile, timeOut, similarity) 36 self.SS.type(imgFile, txt) 37 except FindFailed, err: 38 raise AssertionError("Cannot type at [" + imgFile + "]") 39 40 def paste_at_object(self, imgFile, txt, timeOut, similarity): 41 try: 42 self._wait(imgFile, timeOut, similarity) 43 self.SS.paste(imgFile, txt) 44 except FindFailed, err: 45 raise AssertionError("Cannot paste at [" + imgFile + "]") 46 47 if __name__ == '__main__': 48 SRL = SikuliRemoteLibrary() 49 RobotRemoteServer(SRL, *sys.argv[1:])
e、将c:\rf_sikuli目录添加到CLASS_PATH环境变量下
f、打开cmd,到c:\rf_sikuli目录下,执行jython SikuliRemoteLibrary.py
如果出现:Robot Framework remote server starting at localhost:8270,说明配置成功
5.创建一个.bat服务文件
每次导入使用Remote库,都需要打开cmd,到c:\rf_sikuli目录下,执行jython SikuliRemoteLibrary.py,启动服务,可以写一个.bat(Windows系统)的服务,方便操作,方法如下:
a.创建一个TXT文档;
b.写入下面代码即可:
1 @Echo off 2 C: 3 cd \rf_sikuli 4 jython SikuliRemoteLibrary.py