RobotFrameWork是一个基于keyword的用于验收测试的自动化框架。(官方地址点击这里)如果使用来做基本web验收测试,需要下载seleniumlibrary,robotframework, ride, 其中ride使用了wxpython编写,需要安装对应的包wxPython来支持。
它的后端是一个selenium server, RF提供了一个Library与selenium server进行通信(seleniumlibrary),同时有一个面向测试人员的一个IDE (ride),用来编写测试案例使用。案例的解析等之类的工作由robotframework(robot)来进行。
这里记录下使用的一些心得:
1. 安装完毕后,将python和python\Scripts两个文件夹加入到环境中,便于后面操作
2.调试脚本的时候,通过批处理文件单独启动selenium server。(也可以在测试脚本中通过start selenium server启动)
大致如下:
@echo off
java -jar D:\python27\lib\site-packages\SeleniumLibrary\lib\selenium-server.jar -userExtensions D:\python27\lib\site-packages\SeleniumLibrary\lib\user-extensions.js -firefoxProfileTemplate D:\python27\lib\site-packages\SeleniumLibrary\firefoxprofile
好处是调试的时候出现失败的概率挺高,如果直接用start selenium server来启动,脚本执行失败后,没有stop 掉,下次再执行的时候,可能会造成端口的冲突
等到调试一些OK了,可以将启动/关闭selenium server的操作放置到测试案例中。
3. 上面的user-extensions.js文件中可以用来加入扩展,比如加入jquery的扩展,就可以使用jquery的语法来寻找元素,如下:
Selenium.prototype.locateElementByJQuerySelector = function(locator, inDocument, inWindow) {
var loc = locator.replace(/>/g, '>');
loc = loc.replace(/</g, '<');
var element;
try {
element = $(inDocument).find(loc);
} catch (e) {
return null;
}
if (element.length == 1 ) {
return element[0];
} else if(element.length > 1) {
return element.get();
} else {
return null;
}
}