• robot frame基础知识--变量


    robot frame基础知识--变量

    一、变量与常量基础

    1、变量标识符:(1)Scalar  用$做标识符  ${val} (2)List:用@做标识符 @{lval}

    2、变量声明:RF变量一般不需要特别声明,只要有初始值即可使用,硬要有声明可以在TestSuite中手动添加变量声明。操作步骤,在TestSuite中右键点击“Add Scalar”或者‘AddList’按钮来添加如图:其实实际上也是变量赋值的一种形式

    3、打印变量:log/log many分别适用于Scalar变量跟List变量

     4、变量作用域:

    (1)case的变量作用域在case内 (2)userkeyword的变量作用域在userkeyword内  (3)文件型suite变量作用域在该suite内,包含其下所有case

    (4)目录型suite,作用域在该目录下但只在目录内,其下的文件型suite是无法使用的,所以一般不再目录suite添加变量

     5、改变作用域:

    (1)Set Global Variable:设定全局变量,作用于所有的测试案例跟测试套件

    (2)Set Suite Variable:设定File Suite级变量,在当前file suite 内有效

    (3)Set Test Variable:设定case级变量,在当前case有效

    6、常量

    常量有:环境变量。数值常量、特殊字符常量、系统保留常量,其中环境变量的标识符为:%,其他都为:$

    运行结果:

    备注:常用的特殊字符常量有:${/}、${:}、${EMPTY}、${False}、${None}、${null}、${SPACE}、${True}、

     二、Scalar变量

    1、Set赋值:Set Variable关键字赋值,及其Set相关带Variable的关键字也可以进行赋值

     

    示例1:第一个变量${val2}赋值为:abcd     示例2:${valif2}判断如果${val2}的值和abcd相等,就将efgh赋值给${valif2},不相等则赋值:ace

     2、Get赋值:主要用于返回值,包括系统关键字的返回值和用户关键字的返回值

    示例1:获取变量${val2}的长度  示例2:获取时间

    3、命令赋值:使用 “-v” 的参数给变量赋值

    在run界面的Arguments输入:-v val1:running 表示val1赋值为running,那么打印结果就是running而不是前面原先定义的value

      4、变量使用

    (1)在判断中使用:

    ${valif2}判断如果${val2}的值和abcd相等,就将123456赋值给${valif2},条件不成立,则不会有任何操作

     (2)字符串使用:

     1、字符串拼接 : hwt${val2}test,字符串拼接不需要加“+”号

     

    2、字符串截取:${val2[2]},${val2[0:2]},打印结果为:c,ab

    3、参与运算:Evaluate

    (1)数值计算

           结果:

    (2)字符串形式的数值

          结果:

    三、List变量

    1、变量赋值:可用Set Variable赋值,但正式的赋值还是 Create List

     

    结果:  

    2、变量的使用:

       在使用上,最直观的看关键字的参数是Scalar还是List,区别就是看变量名前面是否有*号,可以通过Run Keyword关键字演示体现,如下图:

     

    这个关键字有两个参数,name、*args。name就是支持传入Scalar变量的参数,*args就是支持可以传入List变量的。Run Keyword这个关键字的作用就是传一个name的参数,这是要执行关键字的名字,*args就是要执行关键字的参数,因为每个关键字所需要的参数个数是不定的,所以这里用了可变个数的参数。

        List变量其实是不定个数的,它有几个元素,就相当于有几个Scalar变量。下面结合log 关键字:

     

    备注:并不是说没有星号就不能用List变量,只要是变量个数和List变量里元素的个数相同,就可以用List传值。比如像Log这个关键字,它有2个Scalar型的传入参数,如果想传入List也是可以的,但是必须是一个有2个元素的List。另外,因为Log的第二个参数有默认值,所以如果传入1个元素的List也是可以的。

        综上,对于有多个参数的关键字,可以按照需要传入多个Scalar变量,也可以传入List变量,但是List的元素个数必须要满足关键字需要的最少参数个数,根据自己的需要选择合适的方式。

     3、List元素的使用

    (1)List变量元素获取方式:1、@{变量名}[index]  2、${变量名[index]}

     一维List:

    结果:

     

    (2)二维List:

    结果:

    注意:为啥@{listC}[1][1]的结果是: [u'dajiahao', u'xiexie'][1],而不是xiexie,因为多维List的正确写法是:@{listC[1]}[1]

     

    四、变量的转换

    1、List变量转换成Scalar变量:@{argval4} 换成 ${argval4}

     

     2、Scalar变量转换成 List变量:

     

    3、变量转换的限制:一个变量要转换成另一类变量,只要目标变量值没有初始化或者赋值过,就可以进行转换,如果目标变量已经初始化或者赋值过,就无法进行转换。

     五、其他变量:

    Dictionary变量:跟List类似,List是每个元素是一个值,而Dictionary每个元素是一对值例如:{key:value,key1:value1,key2:value2},一个key对应一个value,key不能重复

    对象变量:对象变量在接口测试中的Request测试库,假设${return}是接口返回的对象,对象的状态是${return.STATUS},对象内容就是${return.CONTENT}

    六、变量文件:

    变量文件只支持Python的.py文件

    引入变量文件方式:

    1、跟添加Library、Resource变量一样添加Variable文件  2、在Suit的Import引入变量文件  3、通过-V的参数因为变量文件

  • 相关阅读:
    VC C运行时库(CRTL)的几个版本及选用
    gtest的安装和测试[good]
    【nginx】上传文件error报413 Request Entity Too Large
    mysql proxysql的简单部署读写分离
    python入门之进程与线程
    mysql主从复制之同步部分库表
    python入门之paramiko模块
    python入门之socket代码练习
    k8s的ingress使用
    【Jenkins】自动触发部署之插件Generic Webhook Trigger Plugin
  • 原文地址:https://www.cnblogs.com/hwtfamily/p/9298073.html
Copyright © 2020-2023  润新知