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}

autoit+selenium在robot framework上的实现demo

AutoIt 是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务.而这是其它语言不可能做到或无可靠方法实现的。在web测试中,许多控件selenium完成起来有难度的。此时结合Autoit可以达到事半功倍的效果。比如上传下载,activex,web上遇到大部分的windows控件都可以搞定了。RF+selenium+autoit的强大自己体会去吧。废话不多说,直接上安装教程和简单例子。剩下的各位自己,去摸索。

1,准备安装包,群共享中Autoitlibrary.zip 群 号:247870083

2,安装pywin32.exe,此为autoit的依赖库,在群GX能找到。

3,cmd到Autoitlibrary的解压目录,敲命令python setup.py install如果你第二步没跳过去,应该能安装成功。此时在C盘会有一个robotframework的文件夹,里面有很多例子。

4、启动ride, addlibrary AutoItLibrary 不是红色的,恭喜你成功了。

如果想要测试C/S程序,Autoit+sikuli可以解决绝大多数问题了。那就需要你深入研究Autoit,祝大家开心测试。

下面附送上传文件的例子,大家试试,群GX也会有的。

*** Settings ***

Library Selenium2Library

Library AutoItLibrary

*** Variables ***

${path} e:\\boot.ini

${url} http://www.rayfile.com/zh-cn/option/

${browser} gc

*** Test Cases ***

Login To Rayfile And Upload

[Tags] up

打开浏览器

上传

*** Keywords ***

打开浏览器

open browser ${url} ${browser}

上传

click element upload0

Win Wait Active 打开

Control Set Text 打开 \ [CLASS:Edit; INSTANCE:1] ${path}

Control Click 打开 \ [CLASS:Button; INSTANCE:2]

robot framework开发和调试关键字

使用了一段时间的robot framework,感觉工具的应用理念和扩展性,灵活度都很不错。使用过程中也发现了一些问题,在ride上开发测试用例的确很方便,但是编辑底层的关键字和运行时的调试非常不便。想请中文站上的高手提供这方面的经验。比如使用某个IDE去开发调试底层的关键字和作为整个测试用例运行时的调试。万分感谢