滚滚向前滚

导航

 

目录

一、RF安装

1.1 Ride安装

  1. 安装Python2.7,配置好环境变量
  2. 安装wxPython 2.8.12.1 (目前只有这个版本是官方支持的),一键式安装
  3. 安装ride,下载安装包后,解压后使用python setup.py install安装
  4. 安装RF,下载安装包后,解压使用python setup.py install安装
  5. 安装完成后,在scripts文件夹下,使用python ride.py即可运行

1.2 eclipse安装

  1. 安装eclipse、python2.7,配置好环境变量
  2. 配置python编译器(这一步可以不用配置
    1. 下载PyDev(下载地址)。将下载文件解压,将features和plugins中的文件分别拷贝至eclipse安装目录下的features和plugins目录下。
    2. 打开eclipse,选择windows->references->PyDev,选择本地的python2.7.exe
  3. 配置eclipse应用于RF的插件(这一步也可以不用配置
    1. 安装RED插件(有两种方法)

      1. 打开eclipse,选择Help->Install New SoftWare->Add,在弹出窗口中Name填写:RobotFramework-EclipseIDE,URL填写:http://master.dl.sourceforge.net/project/red-robot-editor/repository,点击ok,后根据提示操作,安装完成后重启eclipse

      2. 下载RED_feature,打开ECLIPSE,选择Help->Install New SoftWare->Add,点击弹出框的Archive...按钮,选择本地下载好的RED的zip包,安装完成后重启即可

      注意:重启后eclipse显示的是java视图,为方便后续操作,须将其更改为robot视图,修改方法为:Windows->Perspective->Open Perspective->Other。在弹出窗口选择Robot

    2. 选择windows->references->Editors->File Associations,在File types选择*.txt,在Associated editors选择RobotFramework-EclipseIDE,点击Associated editors的default,设置txt默认打开方式为RobotFramework-EclipseIDE

    3. 任意创建一个txt格式的文件,默认的编辑器均为RobotFramework-EclipseIDE

  4. 安装RF:pip install RobotFramework
  5. eclipse其他设置
    1. 编码设置:indows->references->workspace,在Text file encoding中选择utf-8
    2. 自动提示设置:windows - preference - RobotFramework - Editor - Content Assitant
      加上如下内容:.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$@&*:[

二、RF简介

        RF全称Robot Framework,是一款python编写的功能自动化框架。具备良好的可扩展性、支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。

2.1 Robot Framework特点

  1. 开源,基于Python2.7开发(暂时不支持python3)
  2. 具有丰富的第三方库,支持UI、API、IOS以及Android
  3. 编写用例简单、方便,可以用txt,tsv或者html等格式编写用例
  4. 支持关键字驱动,数据驱动和行为驱动
  5. 利用已有关键字,测试人员可以创建自己的关键字,形成更高级的行为
  6. 可以像编程一样写测试用例、支持变量使用、可以使用IF语句和FOR循环语句
  7. 支持集成svn、git以及jenkins等工具
  8. 灵活、可扩展(可自己扩展测试库)

2.2 RF中四大组件

        在RF中,比较常用的有Settings、Variables、Keywords和Test Cases。这其中每一个部分都有各自的作用:

2.2.1 *** Settings ***

  • 包括导入库(Library)、导入资源(Resource)、导入变量(Variables)文件、设置setup和teardown等。RF导入第三方库写在*** Settings ***下,案例如下:

2.2.2.1 Librarys

库: 相当于python中的模块,是系统关键字的集合。可以分为RF标准库第三方库自定义库

*** Settings ***
Library    SeleniumLibrary

RF标准库 | 第三方库 | 自定义库

  • | - | -
    这类库不需要安装,直接导入就可以使用 | 需要anzhuangku以及依赖库,需要导入之后才能使用关键字 | 需要先开发python模块及其函数,之后安装导入后才能使用该关键字

① RF标准库

RF系统库列表

  1. Builtin: 包含经常需要的关键字。自动导入,无序import
  2. Dialogs: 提供了暂停测试执行和从用户的输入方式
  3. Collections: 提供一组关键词处理Python列表和字典
  4. OperatingSystem: 允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,是各种操作系统相关的任务在RF正在运行的系统中执行
  5. Remote: 远程接口的一部分。没有自己的任何关键字,作为RF和测试库之间的代理,实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现
  6. Screenshot: 提供关键字捕获 和存储桌面的截图
  7. String: 用于处理字符串并验证他们内容的库,用于生成、修改和验证字符串
  8. Telnet: 支持链接到Telnet服务器上打开的连接执行命令
  9. XML: 用于生成、修改和验证XML文件的库
  10. Process: 系统中运行过程的库
  11. Date Time: 日期和时间转换的库,支持创建和验证日期和时间值以及他们之间的计算

② 第三方库

  1. web自动化库: SeleniumLibrary、Selenium2Library、Selenium2Library for Java、waitir-robot等
  2. windows GUI测试: AutoltLibrary
  3. 移动测试: Android library、IOS library、Appium library等
  4. 数据库测试: Database Library(Java)、Database Library(Python)、MongoDB library等
  5. 文件对比测试: Diff Library
  6. HTTP测试: HTTP library(invest)、HTTP library(Requests)等

2.2.1.2 Resources

  • 用户关键字的集合,用来对用户关键字进行管理,相当于用户用python自己编写的类

登录首页关键字

*** Settings ***
Library           SeleniumLibrary

*** Variables ***
${用户名输入框}         //*[@id="loginname"]
${密码输入框}          //*[@id="pl_login_form"]/div/div[3]/div[2]/div/input
${登陆按钮}           //*[@id="pl_login_form"]/div/div[3]/div[6]/a
${登陆失败-提示信息框-非中间}    //*[@id="layer_15254979692111"]/div/p
${登陆成功页面元素}       //*[@id="v6_pl_rightmod_myinfo"]/div/div/div[2]/div/a[1]

*** Keywords ***
登陆
    [Arguments]    ${url}    ${username}    ${pwd}
    SeleniumLibrary.Open Browser    ${url}    chrome
    BuiltIn.Comment    comBuiltIn.Sleep    10
    SeleniumLibrary.Maximize Browser Window
    SeleniumLibrary.Wait Until Element Is Visible    ${用户名输入框}    50
    SeleniumLibrary.Input Text    ${用户名输入框}    ${username}
    SeleniumLibrary.Input Text    ${密码输入框}    ${pwd}
    SeleniumLibrary.Click Element    ${登陆按钮}
    SeleniumLibrary.Wait Until Element Is Visible    ${登陆成功页面元素}    50

测试用例中调用登录首页关键字

*** Settings ***
Library    SeleniumLibrary    

Resource    ../用户关键字/登陆页面.robot
Resource    ../测试数据/登录测试数据.robot
Force Tags    login
Test Teardown    SeleniumLibrary.Close Browser

*** Test Cases ***
登陆新浪微博——成功用例
   [Tags]    smoke
   登陆页面.登陆    ${测试环境地址}    ${正确的登录名}    ${正确的密码}

2.2.1.3 Variables

  • 导入变量,可以是RF中定义的变量文件,也可以是python中定义好的变量

2.3.6 TestCases/TestSuite

2.2.2 *** Variables ***

  • RF中自定义变量都在Variables下定义,案例如下:
*** Variables ***
${用户名输入框}    //*[@id="loginname"]
${密码输入框}    //*[@id="pl_login_form"]/div/div[3]/div[2]/div/input
${登陆按钮}    //*[@id="pl_login_form"]/div/div[3]/div[6]/a

2.2.3 *** Keywords ***

  • 提供特定功能的函数,包括系统关键字用户关键字。关键字中的空格就是函数名称中的下划线。查找关键字可以按F5或者点击菜单栏为"K"的按钮。使用关键字时,如果显示关键字为蓝色,表示关键字存在并且可以正常使用,如果关键字为黑色,表示关键字不能正常使用
*** Keywords ***
登陆
    [Arguments]    ${url}    ${username}    ${pwd}
    SeleniumLibrary.Open Browser    ${url}    chrome
    SeleniumLibrary.Wait Until Element Is Visible    ${用户名输入框}    
    SeleniumLibrary.Input Text    ${用户名输入框}    ${username}
    SeleniumLibrary.Input Text    ${密码输入框}    ${pwd}
    SeleniumLibrary.Click Element    ${登陆按钮} 

2.2.4 *** Test Cases ***

  • RF中用户的测试用例都放在Test Case中
*** Test Cases ***
登陆新浪微博——成功用例
   [Tags]    smoke
   登陆页面.登陆    ${测试环境地址}    ${正确的登录名}    ${正确的密码}

2.3 RF常见标识

  • [Arguments]参数
  • [Return]返回值
  • [Documents]关键字说明
  • [Tag]用例标签
  • [Setup]用例标签
  • [Teardown]用例标签
posted on 2018-05-04 11:28  滚滚向前滚  阅读(1153)  评论(0编辑  收藏  举报