RobotFramework 学习记录

安装 RobotFramework

    RF 是基于 python 的,所以一定要安装 python 环境。它是一个通用的验收测试和验收测试驱动开发的自动化测试框架,首先安装 python,然后通过pip install robotframework==2.8.5安装 robotframework,(后面的内容只针对 python2 环境)然后安装 wxPython(wxPython 是 Python 非常有名的一个 GUI 库,因为 RIDE 是基于这个库开发的,所以这个必须安装。)pip install -U wxPython,最后安装 RIDE(RIDE 是 Robot Framework 的官方编辑器。)pip install robotframework-ride,然后切换到 python2.7 的 Scripts 目录,运行 ride.py 文件(我自己的目录在 anaconda 的 Scripts 目录下)。

    我自己还是使用的 VSCode,在其中装上插件就行。

创建测试用例

    robotframework 文件的后缀名为 robot,如下 helloWorld 项目,运行测试用例使用 pybot 命令。

*** Test Cases ***

test case1
    log    hello robot framework
# 运行一条测试用例,test_case 是指定的测试用例
pybot --test test_case test_suit.robot

#运行指定测试文件
pybot test_suit.robot

# 运行以 .robot 为后缀结尾的所有文件
pybot *.robot

# 运行 test_a 目录下的所有用例
pybot test_a

    运行上面的命令后,robotFramework 会自动帮我们生成测试报告,当用例运行结束后,会在文件夹输出三个文件:output.xml、log.html 和 report.html。

output.xml 记录的测试结果是 XML 文件。根据特定的需要可以编写脚本读取 XML 文件并生成特定的测试报告。

log.html 会记录 Robot Framework 运行的每一步操作,主要用于编写测试脚本的过程中查看。

report.html 为测试报告,整理性的展示测试用例的运行情况。
Robot 中的基础关键字
# log 就是编程语言中的 print

*** Test Cases ***
test case1
    log    robot framework
    log    python


# 使用 Set variable 来定义变量

*** Test Cases ***
test case2
    ${a}    Set variable    python
    log    ${a}


# 使用 Catenate 关键字连接多个对象

*** Test Cases ***
test case3
    ${hi}    Catenate    hello    world
    log    ${hi}


# 加上 “SEPARATOR=” 可以对多个连接的信息进行分割。
# 打印出来的信息为:hello---world

*** Test Cases ***
test case4
    ${hi}    Catenate    SEPARATOR=---    hello    world
    log    ${hi}


# 通过 @{} 定义列表的话,可以使用 log many 关键字进行打印

*** Test Cases ***
test case5
    @{abc}    Create List    a    b    c
    log many    @{abc}


# 获取当前时间使用 get time

*** Test Cases ***
test case6
    ${t}    get time
    log    ${t}


# sleep 设置休眠一段时间

*** Test Cases ***
test case7
    ${t}    get time
    sleep    5
    ${t}    get time


# 通过 “run keyword if” 关键字可以编写 if 分支语句
# 注意 sele if 和 else 前面的三个点点点(…)

*** Test Cases ***
test case8
    ${a}    Set variable    59
    run keyword if    ${a}>=90    log    优秀
    ...    ELSE IF    ${a}<=70    log    良好
    ...    ELSE IF    ${a}<=60    log    及格
    ...    ELSE    log    不及格


# for 循环关键字为 :FOR

*** Test Cases ***
test case9
    :FOR    ${i}    IN RANGE    10
    \    log    ${i}

# 遍历列表
test case10
    @{abc}    create list    a    b    c
    : FOR    ${i}    IN    @{abc}
    \    log    ${i}
Evaluate 关键字调用 python
# 可以使用 Evaluate 来调用 python 中的模块


*** Test Cases ***

test case11
    ${d}    Evaluate    random.randint(1000, 9999)    random
    log    ${d}

    除此之外,你还可以自己定义 python 程序,然后在 robot 中调用它。

def add(a,b):
    return a + b

if __name__ == "__main__":
    a = add(4,5)
    print(a)

    上面的 python 定义了两个数相加的函数,然后我们就可以通过 robot 来调用上面的函数。

*** Test Cases ***

test case12
    Import Library    D:/rf_test/count.py
    # 在 Robot Framework 中所有的内容都是字符串类型
    # 所以需要通过 “Evaluate” 将 4 和 5 转化为 int 类型后,再调用 add
    ${a}    Evaluate    int(4)
    ${b}    Evaluate    int(5)
    ${add}    add    ${a}    ${b}
    log    ${add}

# 最后一点就是注释,可以用 # 或者 Comment
Comment 这个也是注释
Selenium Web 测试

    首先需要安装对应的库pip install --pre --upgrade robotframework-seleniumlibrary,然后下载 chromedriver,下载地址为:https://npm.taobao.org/mirrors/chromedriver,可以将 chromedriver 直接放到项目文件夹下面,下面是一个使用 SeleniumLibrary 编写的测试样例。

*** Settings ***
Library           SeleniumLibrary

*** Test Cases ***
Baidu search case
    Open Browser    http://www.baidu.com    chrome
    Input text    id=kw    robot framework
    click button    id=su   
    close Browser

    SeleniumLibrary 常用定位元素的方法有如下方式:

StrategyMatch based onExample
idElement id.id:example
namename attribute.name:example
identifierEither id or name.identifier:example
classElement class.class:example
tagTag name.tag:div
xpathXPath expression.xpath://div[@id=“example”]
cssCSS selector.css:div#example
domDOM expression.dom:document.images[5]
linkExact text a link has.link:The example
partiallink Partial link text.partial link:he ex
sizzleSizzle selector provided by jQuery.sizzle:div.example
jquerySame as the above.jquery:div.example
defaultKeyword specific default behavior.default:example
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guanngxu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值