Robot Framework (selenuim) 自动化测试 初体验

646 阅读2分钟

Robot Framework 对Selenium, Appium, 等框架语法进行了封装,要求的代码能力降低了, 使用和复用起来也更方便。一套框架可以通吃 GUI,接口,app等(3,4个小时总结出的经验,非常有可能不对)

环境搭建

  • 下载谷歌浏览器Webdriver 提取码 el24 下载完成后需要注册到系统的变量的Path中

  • 安装Ride

  • 安装Seleniumlibrary 外部库

    • 文档 Seleniumlibrary 对selenium进行了语义化的封装

    • pip install --upgrade robotframework-seleniumlibrary
      
  • 运行RIDE时候右键使用管理员权限运行不然找不到Chromedriver,如果终端运行,运行的终端需要有管理员权限

简单示例

(百度搜索robot framework)
*** Settings ***
Documentation     SeleniumLibrary
Library           SeleniumLibrary

*** Test Cases ***
使用百度浏览器搜索 robot framework
    [Documentation]    Example test.
    打开浏览器
    输入查询条件
    点击查询按钮
    [Teardown]    关闭浏览器

*** Keywords ***
打开浏览器
    Open Browser    http://www.baidu.com    chrome
    Wait Until Element Is Visible    id:kw

输入查询条件
    INPUT TEXT    id:kw    robot framework

点击查询按钮
    CLICK ELEMENT    id:su
    SLEEP    2 # 睡眠两秒

关闭浏览器
    Close Browser

Settings 设置

  • Document 文档说明

  • Library 引入外部库(SeleniumLibrary, Appnium)查看链接

  • Resource 复用代码块

*** Settings ***
Documentation     SeleniumLibrary
Library           SeleniumLibrary

Variables 全局定义的变量

*** Variables ***
${LOGIN URL}      http://www.baidu.com   # 登录域名
${BROWSER}        gc    # 谷歌浏览器

Test Cases 测试用例

*** Test Cases ***
测试登录 # 用例名称
    打开浏览器 # 调用函数
    输入账号    admin   # 调用函数 和 函数参数
    输入密码    123456 # 调用函数 和 函数参数
    点击登录按钮
    日期会显示出来
    [Teardown]    关闭浏览器 # 生命周期 执行完了

Keywords 定义函数

*** Keywords ***
打开浏览器
    Open Browser    ${LOGIN URL}    ${BROWSER}
    Wait Until Element Is Visible    //*[@id="app"]/div[1]/div[3]/div/form/div[1]/div/div/input

输入账号
    [Arguments]    ${username}
    Input Text    //*[@id="app"]/div[1]/div[3]/div/form/div[1]/div/div/input    ${username}

输入密码
    [Arguments]    ${password}
    Input Text    //*[@id="app"]/div[1]/div[3]/div/form/div[2]/div/div/input    ${password}

点击登录按钮
    Click Button    //*[@id="app"]/div[1]/div[3]/div/form/div[3]/div/button

日期会显示出来
    Wait Until Element Is Visible    class:bf-weather-content

关闭浏览器
    Close Browser