sikuli+selenium在robot framework实现的demo

模态对话框、activex、flash等各种自定义控件处理起来是不是很头疼。Sikuli是一个根据图形匹配的测试工具,尤其是结合了selenium,基本上可以解决web测试上所有的技术问题。不知道sikuli的可以下载了先体验一下,IDE很简单,用截图也能做测试,但是这也不是本文介绍的重点。本文介绍在RF下sikuli+selenium协同工作互补不足。所以本文仅针对在RF下selenium不能满足需求的使用者。如果你不懂sikuli,可以先了解一下,一种截图测试工具。

Sikuli与robotframework集成

Sikuli只能jython调用,而在RF中,selenium库是python写的。所以要把sikuli当成一个远程库调用。jython没安装的,请参考前一篇日志http://www.51testing.com/index.php?uid-424226-action-viewspace-itemid-845458。

Sikuli远程环境

1、 下载sikuli,并安装。这个不用说太多了吧。ps:sikuli只能在32位jdk6跑Java 7 or 64-bit are not supported 装完看到有sikuli_home的环境变量才算成功。

2、 创建一个测试文件夹[C:\robot] [C:\robot\data] [C:\robot\libs] [C:\robot\suites]

3、 下载文件http://robotframework.googlecode.com/hg/tools/remoteserver/robotremoteserver.py另存在[C:\robot\libs]文件夹内

4、 复制sikuli的安装目录下的C:\Program Files (x86)\Sikuli X\sikuli-script.jar到[C:\robot\libs]文件夹内

5、 加上环境变量到class_path (C:\robot\libs\sikuli-script.jar).

6、 新建一个文件SikuliRemoteLibrary.py到[C:\robot\libs]文件夹内(此文件在群GX可以下载Rf+sikuli+selenium例子.rar,)

7、 运行sikuli远程库,如果你前面的环境是完全按照我的教程能运行jybot,那现在应该在命令行敲jython.bat C:\robot\libs\SikuliRemoteLibrary.py 如果出现robot framework remote server starting at localhost:8270 那就成功启动了sikuli远程库了。反之,好好检查环境变量吧,或者把sikuli-script.jar拖到 class_path 所在的目录。

Robot framrwork调用sikuli远程库,拿百度来说事吧。

很简答的例子,一个是调用selenium在百度输入selenium并搜索,另一个case是调用sikuli在百度输入selenium并搜索。

文档粘贴在本文最后,请复制并保存在[C:\robot\suites]。图片截图很简单,input.png是输入框的,请尽量截图让sikuli知道是唯一的。Submit.png是百度一下的按钮,截图放在[C:\robot\data]。以上内容均可以加入群247870083去群共享取Rf+sikuli+selenium例子.rar

*** Settings ***

Documentation Integrating Selenium, Sikuli into Robot Framework

Test Setup

Test Teardown Run Keyword If Test Failed Take Screenshot

Library Selenium2Library 15 # Selenium library

Library Remote http://localhost:${port} # Sikuli

Library Screenshot # Taking screenshots when a test fails

*** Variables ***

${url} http://www.baidu.com #百度网站

${browser} ff # Browser

${port} 8270 # Default port number for the remote server

${data_path} c:\\robot\\data # Sikuli images

${similarity} 0.90 # Used in Sikuli image comparison

${timeout} 10 # Time to wait for objects

*** Testcases ***

login To Baidu And Serch With Selenium

[Tags] selenium

登录百度首页

用slenium的方式输入并点击搜索

[Teardown] close all browsers

login To Baidu And Serch With Sikuli

[Tags] sikuli

登录百度首页

用sikuli的方式输入并点击搜索

*** Keywords ***

登录百度首页

open browser ${url} ${browser}

maximize browser window

用slenium的方式输入并点击搜索

input text wd selenium

click button kw

用sikuli的方式输入并点击搜索

Object Exists ${data_path}\\input.png \ ${similarity} ${timeout}

type at object ${data_path}\\input.png \ selenium ${timeout} ${similarity}

Object Exists ${data_path}\\submit.png \ ${similarity} ${timeout}

click object ${data_path}\\submit.png \ ${timeout} ${similarity}

发表评论

电子邮件地址不会被公开。 必填项已用*标注