RF04 Variables

Posted gupan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RF04 Variables相关的知识,希望对你有一定的参考价值。

目录

目录

一、变量类型和声明

        在RF底层是通过python来实现的,所以RF创建变量和python类似,默认情况下,RF中的变量都是字符类型的。每个变量都是使用 变量标识符 {变量名} 的方式来定义和引用

1.1 scalar变量(也就是str变量)

${变量名}

1.2 list变量(列表)

@{变量名}

1.3 dict变量(字典)

&{变量名}

二、变量赋值

2.1 使用set variable和create关键字进行赋值

  1. scalar变量: 使用Set Variable来赋值
  2. list变量: 使用Set Variable和Create List关键字赋值
  3. dict变量: 使用Create Dictionary关键字赋值
    ${myStr}    BuiltIn.Set Variable    Hello, World    
    ${myStr2}    BuiltIn.Set Variable    I said:${myStr}
    
    @{myList1}    BuiltIn.Set Variable    Hello    World    I
    @{myList2}    BuiltIn.Create List    Hello    World    I
    
    &{miDict1}    BuiltIn.Create Dictionary    name gupan age 12 favour run
    &{miDict2}    BuiltIn.Create Dictionary    name=gupan age=12 favour=run
    &{miDict3}    BuiltIn.Create Dictionary    {"name":"gupan", "age":"12", "favour":"run"}

2.2 get赋值

  • 的返回值和用户关键字的返回值(广义上说,Set也是返回值)

2.3 运行时赋值

  • 设置运行时的参数

三、变量取值

  • 在RF中,如果取出来的值是单个变量,那么还是需要用变量标志符声明$,案例如下:
*** Keywords ***
示范
    @{list1}    BuiltIn.Create List    1    2    3
    &{dict1}    BuiltIn.Create Dictionary    name=gungun    sex=mail
    # 获取列表元素
        # 取列表中的单值变量,采用${list_name[index]}的方式
    log    ${list1[0]}    ${list1[1]}    ${list1[2]}
    
    # 获取字典元素
        # 取字典中的单值变量,采用${dict_name.dict_key}的方式
    log    ${dict1.name}     

四、在Variables打包页面元素定位(Selenium为例)

  • 在RF中使用SeleniumLibrary进行元素定位的方式和selenium的元素定位方式一致。
    • 对于Xpath定位,SeleniumLibrary会 自动识别//为Xpath定位 ,所以可以 直接使用Xpath作为页面元素的locator
    • 如果是css或者class等定位,需要做特殊处理,以css定位为例,需要页面元素定位器前加上css=,案例如下:
      ```python
      *** Variables **
      ${用户名输入框} //
      [@id="loginname"]
      ${密码输入框} //[@id="pl_login_form"]/div/div[3]/div[2]/div/input
      ${登陆按钮} //
      [@id="pl_login_form"]/div/div[3]/div[6]/a

${css定位示例} id=s_kw_wrap

```

五、变量设置技巧

5.1 设置套件级的变量

*** Variables ***
${投标之后—用户余额减少部分}    ${EMPTY}

*** Test Cases ***
用例1
    ...
    ${投标之后—用户余额减少部分}    Builtln.Evaluate    ${投标之前-用户余额}-${投标之后-用户余额}
    Builtln.Set Suite Variable    ${投标之后—用户余额减少部分}  # 会自动更新${投标之后—用户余额减少部分}的值

用例2
    Builtln.Log    ${投标之后—用户余额}





以上是关于RF04 Variables的主要内容,如果未能解决你的问题,请参考以下文章

RF变量的共享使用、python测试库

Apollo 可以从缓存中读取部分片段吗?

Communication - 04.RF Testing

OpenGL - glDrawElementsInstanced - 片段着色器和不正确的颜色

在 delphi 查询中使用 @variables:= 不起作用

Robot Framework04-RF之BuiltIn库常用关键字1