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的参数因为变量文件

转载于:https://www.cnblogs.com/hwtfamily/p/9298073.html

robot frame基础知识--变量相关推荐

  1. Python基础知识——变量与运算符

    Python的基础知识一 文章目录 Python的基础知识一 变量的类型 变量--数据的载体 变量的命名 命名规则 变量的使用 总结 Python的运算符 赋值运算符 算术运算符 比较运算符和逻辑运算 ...

  2. JS——基础知识--变量类型和变量计算

    提问: JS中使用typeof能得到的哪些类型 何时使用===何时使用== JS中有哪些内置函数 JS变量按照存储方式区分为哪些类型,并描述其特点 如何理解JSON 涉及知识点:(1)变量类型 值类型 ...

  3. 基础知识——变量和简单数据类型(一)

    基础点 变量命名规则:变量名只能包含字母.数字和下划线.变量名可以字母或下划线打头,但不能以数字打 头,例如,可将变量命名为flying_666,但不能将其命名为666_flying. title方法 ...

  4. 列举python中常用的数据类型_Python基础知识 变量和简单数据类型

    在本章节中,将介绍Python程序中会使用到的各种数据类型,以及如何在程序中使用变量来表示这些数据.其中用到的一些例子均来自<Python编程从入门到实践 第2版>. 一.变量 1. 变量 ...

  5. 数据库基础知识——变量

    1.系统变量 1.1 全局变量 作用域:针对于所有会话(连接)有效,但不能跨重启 查看所有全局变量 SHOW GLOBAL VARIABLES;查看满足条件的部分系统变量 SHOW GLOBAL VA ...

  6. js 的基础知识变量

    什么是变量? 变是一个存储和释放我的数据! 我们用var关键字来声名变量,声名多个变量时用逗号来隔开 在变量没有赋值之前,显示是一个未定义的变量! 1 <script> 2 var a; ...

  7. python基础知识——变量 算术运算符

    人生苦短 我用Python 注释:CTRL+/ 养成写注释习惯 变量: #在控制台打印你好界面 print("hello word") #幼儿园 #小红  2 #小明  3 #小黄 ...

  8. Java基础知识 变量 基本类型 类型转换 标识符 关键字 运算符 循环 分支结构 JVM

    标题JVM **java语言是跨平台的,之所以跨平台是因为在不同的系统中安装不同的JVM这是Java跨平台的前提** 2.JDK:开发工具包-开发必须安装 JRE:运行时环境 JVM:Java虚拟机, ...

  9. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

最新文章

  1. DeepMind提出强化学习新方法,可实现人机合作
  2. Spring mvc 3.0 入门及应用
  3. 集合遍历[设计模式总结] 9. 迭代器模式
  4. 蓄水池问题c语言编程,蓄水池大作战
  5. 5G 超高清关键技术:高帧率重置、高动态渲染、云加端增强
  6. Ubuntu 15.04 安装 boost-python
  7. 华为Mate 40系列预热海报颠覆传闻:这个设计手机圈独树一帜
  8. [USACO13DEC]牛奶调度Milk Scheduling
  9. 如何用一句话证明你搞 IT(挨踢)的?
  10. 数据库中多表连接的左连接、右连接、内连接、全连接的使用场景
  11. 驱动精灵扩展版(集成万能网卡驱动)无法自动识别网卡的解决方案
  12. 如何对多个文件夹进行重命名?这个方法可以批量修改文件夹名、给文件夹名加统一前缀或后缀
  13. 三次曲线和五次曲线函数
  14. 六、股票市场分析实战项目一
  15. 【LeetCode】P70 爬楼梯
  16. pu膜刻字膜热转印膜在衣服上的烫印参数
  17. 第一次服务器被黑 既惊讶 又后怕!!!
  18. 2018年计划和目标
  19. L1-030——一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。
  20. LDO上电瞬间微过冲问题解决和讨论

热门文章

  1. Nginx 配置虚拟主机
  2. 统计学习方法c++实现之二 k近邻法
  3. 打造云上深度学习实验室
  4. JAVA中的多线程(八):线程的优先级和yield方法
  5. 使用js给数组去重的3种常用方法
  6. Python 性能分析入门指南
  7. ubuntu下安装JDK以及配置
  8. win7下手动配置apache+ php + mysql 记
  9. 用Word2007写Blog
  10. Q135:PBRT-V3,随机渐进光子映射(Stochastic Progressive Photon Mapping)(16.2章节)