背景
Robot Framework(RF)是一个比较简单易用的自动化测试框架,可以很方便的根据产品需求设计出数据驱动,或者行为驱动的自动化测试框架。此文章以一个简单的RF的UI自动化作为例子,展示如何使用RF开展自动化测试
测试用例:
- 打开浏览器,输入http://bing.com
- 搜索框输入知乎并提交
- 验证搜索到的第一个结果包含知乎
运行环境准备:
- pip install robotframework #安装RF
- pip install --upgrade robotframework-seleniumlibrary #安装RF的selenium包
- 下载chrome驱动(webdriver)到可执行路径
RF脚本内容
*** Settings ***
Documentation 测试必应搜索功能 #注释和说明部分
Library SeleniumLibrary #调用第三方测试库Selenium2Library
Test Teardown Close All Browsers #测试结束之后执行关键字
#变量定义部分
*** Variables ***
${BING URL} https://cn.bing.com/?mkt=zh-CN
${BROWSER} Chrome
#测试用例部分
*** Test Cases ***
必应搜索 #测试用例名字
Open Browser ${BING URL} ${BROWSER}
Input Text sb_form_q 知乎 #输入搜索文本
Submit Form sb_form #提交表单内容
sleep 5s
Element Should Contain //ol[@id='b_results']//li[1]//div[1]//h2[1]//a[1]//strong[1] 知乎执行过程:

日志截图:

总结
- RF调用的SeleniumLibrary库,因为已经对底层的selenium.webdriver做了二次封装,使用起来非常的方便,在元素定位的时候,可以灵活地使用id,name,xpath等方法进行元素定位。SeleniumLibrary的官方文档有很详细的描述和例子
2.提交表单时候,尝试过click element和click button方法,始终没有办法提交表单内容。后来采用提交表单关键字(Submit Form)或者加enter(\n)解决问题。
3.对搜索结果进行定位时候,没有发现太好的方法,采取绝对路径对(//ol[@id='b_results']//li[1]//div[1]//h2[1]//a[1]//strong[1])取到第一个搜索结果
4.合理利用RF框架的特性可以大大减少UI自动化的测试代码。