内置变量——自动化测试精解(8)

发表于:2021-1-08 10:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘云    来源:51Testing软件测试网原创

  6.内置变量
  有些特殊的变量不用赋值,它本身就有某个或某些特定的值,这些变量叫作Robot Framework内置变量。
  1)内置变量
  为了让测试数据和具体的操作系统独立,Robot Framework内置了一些变量来屏蔽具体系统,如表3-2所示。
  2)自动变量
  自动变量指的是一些随着Robot Framework测试用例执行过程自动赋值的变量。有些变量在执行过程中随时在变,有些变量不是整个执行周期里都可用,有些变量只有特定的条件下才有值。表3-3列出了这些自动变量。
  7.特殊变量
  1)数字
  Robot Framework默认的测试数据全是字符型的,即使输入的是一个数字,也将它当成一个字符串来处理。如果要明确表明输入的是数字,就要将数字用“${}”标注,如${123}、${3.14}。
  这种表示方法支持科学记数法,如${-1e-4}指的是?0.0001。
  此外,还可以用二进制、八进制或十六进制数来表示数字,只需在相应的数字前加0b、0o或0x即可,这里b、o、x是不区分大小写的,所以用0B、0O、0X也是可以的。例如:
  ${0b1011}=${11}
  ${0o10}=${8}
  ${0xff}=${255}
  ${0B1010}=${0XA}
  Robot Framework用${true}和${false}表示布尔型的数据。数据不区分大小写,所以${true}和${True}是一样的。
  2)空格和空
  有些时候,如果需要在测试数据中传递空格或空的参数,如某个关键字需要接受3个参数,但第二个参数可以没有值,或需要将某个变量清空,就可以给一个空格或空。Robot Framework用${SPACE}表示空格,用${EMPTY}表示空。如果需要表示多个空格,还可以在SPACE后面直接乘以个数。例如,${SPACE*5} 表示5个空格,用传统的转义法表示为“\ \ \ \ \ \”。
  关于空变量的示例如下。
  *** Test Cases ***
  Test_empty_TestCase
      ${ret}    myKeyword    a    ${EMPTY}    c
      Log    ret=${ret}
      ${ret}    Set Variable    ${EMPTY}
      Log    ret=${ret}
  *** Keywords ***
  myKeyword
      [Arguments]    ${arg1}    ${arg2}    ${arg3}
      Log    ${arg1} | ${arg2} | ${arg3}
      ${ret}    Set Variable    ${arg1}
      [Return]    ${ret}
  输出的日志如下。
  INFO : a |  | c
  INFO : ret=a
  INFO : ret=
  在Java里一般用NULL表示空,在Python里则用NONE表示空。Robot Framework用${null}和${none}表示Java与Python中返回为空的情况。例如,有一个用Python写的关键字“GetValue”(属于用户扩展库函数),要判断它返回的值是不是NONE,可以在Robot Framework里使用如下语句。
  ${ret}    GetValue    arg 
      Should Be Equal    ${ret}    ${none}
  3)日期和时间
  Robot Framework有自己的时间格式。可以只用一个简单的数字表示时间,单位默认为秒。这里的数字可以是真实的数字,也可以是字符串形式的数字,如${10}s和10s是一致的。
  如果时间比较长,用秒来表示就不那么易读。这个时候可以用特殊的时间格式的字符串来表示。Robot Framework支持的时间字符串如下。
  ·days, day, d;
  ·hours, hour, h;
  ·minutes, minute, mins, min, m;
  ·seconds, second, secs, sec, s;
  ·milliseconds, millisecond, millis, ms。
  数字可以包含小数点,甚至可以是负数。时间字符串不区分大小写。可以忽略时间中的所有空格。
  下面给出一些例子。
  1 min 30 secs = 1m 30sec = 1m30s
  2 days 3 hours=2d3h
  -30min
  4)变量内的变量
  Robot Framework的变量名甚至可以动态生成,例如,${${name}_Home}表示动态生成的变量内的变量,其中${name}也是一个可变的变量。
  关于变量内的变量的示例如下。
  Variable_in_Variable_TestCase
     ${John Home }    Set Variable    /home/john
     ${Alice?Home }    Set Variable    /home/alice
     ${name}    Set?Variable    John
     Log    ${${name}?Home}
  输出的日志如下。
  INFO : /home/john

版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号