什么是RobotFramework?基于Python的关键字驱动的自动化框架
基于Python:就是由python语言开发的这个框架。
关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据
自动化框架:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。
前置环境
RF安装前置条件:学会使用pip
记得修改一下pip的下载源配置
pip list 查看版本
pip config set global.index-url https://pypi.douban.com/simple/
pip config set install.trusted-host pypi.douban.com
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。以下在win10_x64 cmd中操作:
RF做UI自动化的环境安装流程
操作数据库相关的库:DatabaseLibrary : pip install robotframework-databaselibrary
python操作数据库的驱动模块:PyMySQL : pip install pymysql
rf日志中文乱码解决方法:
修改文件 python安装目录下
\Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py 第 565 行,
将 **SYSTEM** 改成 **OUTPUT**,重启ride工具。
Selenium2Library
Open Browser 打开浏览器
Close Browser 关闭浏览器
Close All Browsers 关闭所有浏览器
Switch Browser 选择浏览器
Switch Window 选择窗口
Close Window 关闭窗口
Select Frame 进入Frame
Unselect Frame 退出Frame
Maximize Browser Window 最大化浏览器窗口
Reload Page 重载(刷新)页面
Go Back 返回
Go To 在当前窗口打开一个链接
Input Text 输入文本
Input Password 输入密码
Choose File 选择文件上传
Click Button 点击按钮
Click Link 点击链接
Click Element 点击元素
Click Element At Coordinates 根据坐标点击元素
Click Image 点击图片
Drag And Drop By Offset 将元素以本身为零点拖动到指定坐标
Double Click Element 双击元素
Open Context Menu 右击元素
Assign Id To Element 给某个元素分配一个id
Evaluate 执行Python代码
Execute Javascript 执行JS代码
Get WebElement 获取页面元素
Get WebElements 获取多个页面元素
Get Element Attribute 获取元素属性值
Get Element Size 获取元素大小(宽高)
Get Text 获取元素文本内容
Get Title 获取当前窗口标题
Get Value 获取元素value值
Get Window Handles 获取所有窗口句柄
Handle Alert 处理Alert弹框
Input Text Into Alert 往Alert弹框中输入内容
Mouse Over 鼠标悬浮
Page Should Contain 断言页面存在文本
Page Should Contain Element 断言页面存在元素
Press Keys 按下键盘
Select From List By Index 根据索引选取下拉列表
Select From List By Label 根据文本选取下拉列表
Select From List By Value 根据value值选取下拉列表
Select Radio Button 选择单选框
Select Checkbox 选择复选框
Set Browser Implicit Wait 设置当前浏览器隐式等待
Set Selenium Implicit Wait 设置当前脚本隐式等待
Set Screenshot Directory 设置截图文件夹
Wait Until Element Contains 等待元素存在文本
Wait Until Element Is Enabled 等待元素可操作
Wait Until Element Is Visible 等待元素可见
Wait Until Page Contains 等待页面存在文本
Wait Until Page Contains Element 等待页面存在元素
Capture Page Screenshot 当前页面截图
Capture Element Screenshot 指定元素截图
BuildIn
Sleep 休眠(暂停)
Set Variable 设置变量
Create List 创建列表
Create Dictionary 创建字典
Get Time 获取当前时间
Get Length 获取字符串长度或可迭代对象元素个数
Length Should Be 断言长度
Log 打印
Log Many 打印多个内容或可迭代对象中元素
Run Keyword And Ignore Error 执行关键字并忽略错误
Run Keyword And Return Status 执行关键字并返回状态
Run Keyword If (bool) 条件表达式为True时执行关键字
FOR ${i} IN RANGE 100 … END
Continue For Loop If 条件表达式为True时跳过此次循环
Exit For Loop If 条件表达式为True时结束循环
Should Be Equal 断言==
Should Be Empty 断言为空
Should Be True 断言为True
Should Contain 断言是否是成员
id:以百度搜索输入框为例
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
在RF中写法:id=kw
name:以百度搜索输入框为例
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
在RF中写法:name=wd
xpath:Xml Path Language
xpath路径中…表示上级,和linux类似
绝对路径:从html根部逐级(从上至下)查找
相对路径:根据节点的上下文进行查找
css选择器:好啦这里自己回过头去看html+css篇吧~
匹配元素具有指定属性//input[@maxlength]
匹配元素具有指定属性和值//input[@maxlength=‘255’]
匹配元素文本内容//a[text()=‘设为首页’]
模糊匹配元素文本内容//a[contains(text(), ‘设为’)]
元素定位小技巧:
在Chrome-F12-Console中根据Xpath寻找元素:使用$x(“”),引号中填写xpath路径,如
`$x("/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input")`
在Chrome-F12-Console中根据css寻找单个元素:使用$(“”),引号中填写css选择器,如
$("span>input[id='kw'][name^='w']")
在Chrome-F12-Console中根据css寻找多个元素:使用$$(“”),引号中填写css选择器,如
$$("span>input[id='kw'][name^='w']")
在python安装目录下Lib\site-packages中定义,包的形式,RF会自动去该目录下找
直接.py文件中写函数,在rf中导入.py文件,需要提供路径,可以相对导入
元素层 导入Selenium2Library
流程层 导入元素层
案例层 导入流程层
使用python相关的开发或自动化测试,pip工具不可或缺。
熟练运用xpath和css定位,在实际工作中,很多网页元素都没有id和name属性,我们要考虑最坏的情况。