1、robot framework

robot framework自动化测试框架(简称:RF框架)是一个基于python的,通过selenium二次封装后得到selenium2library第三方库,通过封装以后的关键字驱动的测试框架。

  1. 基于python,就是用python开发的框架
  2. 关键字驱动测试:关键字驱动页面元素,关键字测试也称为表格驱动测试
  3. 自动化框架,在自动化中,通过加装不同的第三方库来做不同的自动化测试

2、常见的几种测试框架

  1. robot framework + selenium2library :是一款python编写的功能自动化测试框架
  2. python + selenium selenium做自动化要求会语言,写代码,selenium支持多语言,方便,扩展性高,开源版。
  3. qtp:前几年流行

3、rf工作原理

rf是开源,通过加装第三方库组成的测试环境,webdriver通过原生的api进行封装来操作浏览器,使用具体的关键字操作网页上的元素。
总结:使用底层代码封装成关键字通过webdriver去驱动页面元素,实现ui自动化

4、rf安装过程

5、rf中元素定位

id定位

name定位

class定位

xpath定位

css定位

js定位


RF框架支持python多少版本吗 rf框架原理_第三方库

变量

全局变量:$ { } log 打印全局变量

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_02

列表变量:@{ } log many 打印列表变量

RF框架支持python多少版本吗 rf框架原理_封装_03

字典变量:& { } log many 打印字典变量

RF框架支持python多少版本吗 rf框架原理_python_04

常用关键字

reload page

刷新当前页面

RF框架支持python多少版本吗 rf框架原理_封装_05

go to

跳转新的url

RF框架支持python多少版本吗 rf框架原理_第三方库_06

go back

返回上一步

RF框架支持python多少版本吗 rf框架原理_python_07

input text 输入

RF框架支持python多少版本吗 rf框架原理_python_08

input password

RF框架支持python多少版本吗 rf框架原理_python_09

click button

RF框架支持python多少版本吗 rf框架原理_python_10

click elemet

RF框架支持python多少版本吗 rf框架原理_python_11

click link

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_12

get title

RF框架支持python多少版本吗 rf框架原理_python_13

switch browser

RF框架支持python多少版本吗 rf框架原理_第三方库_14

1、通过索引切换浏览器
Open Browser http://discuz.e70w.com/ gc
sleep 2 #休眠
Maximize Browser Window #窗口最大化
Open Browser https://www.baidu.com/ gc
sleep 2
${title} get title
log ${title}
input text id=kw dcs
Switch Browser 1
${title1} get title
log ${title1}

2、通过句柄切换窗口

RF框架支持python多少版本吗 rf框架原理_第三方库_15

3、通过别名切换浏览器

RF框架支持python多少版本吗 rf框架原理_封装_16

下拉框:select from list by index或 value 或label

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_17

iframe

进入框语句:select frame
退出框语句:unselect frame
案例:京东iframe框

RF框架支持python多少版本吗 rf框架原理_第三方库_18

鼠标悬停 mouse ove

RF框架支持python多少版本吗 rf框架原理_封装_19

弹框handle alert

RF框架支持python多少版本吗 rf框架原理_第三方库_20

get title 和 title should be

RF框架支持python多少版本吗 rf框架原理_python_21

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_22

关闭浏览器和关闭和窗口

1、close browsers 关闭当前浏览器
2、close all browsers 关闭所有浏览器
3、close window 关闭当前窗口

场景一:close browsers 关闭当前浏览器

RF框架支持python多少版本吗 rf框架原理_python_23

场景二:close all browsers 关闭所有浏览器

RF框架支持python多少版本吗 rf框架原理_封装_24

场景三:close window 关闭当前窗口

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_25

get text和get value


滚动条


Open Browser    https://www.jd.com    gc
sleep    2
Maximize Browser Window
Execute Javascript    window.scrollTo(0,2000)
sleep    3
Execute Javascript    window.scrollTo(0,0)
get window size 获取屏幕大小


Open Browser    https://www.jd.com    gc
    sleep    2
    Maximize Browser Window
    ${size}    get window size
    log    ${size}
表单操作


Open Browser    file:///F:/flask_projects/dcs/ui_zidonghua/table.html    gc
    sleep    2
    Maximize Browser Window
    input text    name=user    shijie
    Input Password    name=passwd    123456
    Input Password    name=conpasswd    123456
    Select Radio Button    sex    boy
    sleep    2
    Select Checkbox    xpath=//*[@name="subject"][2]
    Select Checkbox    xpath=//*[@name="subject"][3]
    Select From List By Label    xpath=//select    北京大学
    sleep    3
    Click Element    xpath=//*[@type="reset"]
    sleep    3
    Close Browser
判断关键字

robotframework实战常用判断关键字

  1. page should contain #验证页面包含内容
  2. Page Should not Contain #验证页面不包含内容
  3. Page Should Contain Element 页面包含元素
  4. Page Should Not Contain Element 页面不包含元素
  5. Wait Until page Contains 等到页面包含
  6. Wait Until Page Does Not Contain 等到页面不包含
  7. Wait Until Page Contains Element 等到页面包含元素
  8. Wait Until Page Does Not Contain Element 等到页面不包含元素

page should contain #验证页面包含内容

包括继续运行,不包括指定内容报错



RF框架支持python多少版本吗 rf框架原理_python_26

RF框架支持python多少版本吗 rf框架原理_RF框架支持python多少版本吗_27

修改元素


Open Browser    http://www.baidu.com    gc
    sleep    2
    Maximize Browser Window
    Assign Id To Element    kw    dcs
    sleep    2
    Input Text    id=dcs    多测师