Robot Framework (六)变量和常量

018-08-30  08:39:52

一、变量与常量基础

1.变量标识符

  每一个变量都可以用    变量标识符{变量名}   来表示。

  Scalar变量    ${var}  单值变量  单值并不仅仅是像字符串、数值这样的,还有可能是个对象或者字典

  List变量   @{var}    多值变量  只有带@的变量才能够确认是List型变量,带$的变量取决于它的变量值,才能确定是什么变量,因为变量之间是可以相互转换的

2.变量声明

  RF的底层是Python,变量不需要特别声明,只要有初始化赋值即可。

  在Test Suite下面可以通过“Add Scale", "Add List"来初始化赋值。

  在Test Case中用Log, Log many 来打印Scalar, List变量。如图:

  

  

  

  

  

  

  

3.变量的作用域

  默认情况下,变量的作用域为:

  • 一个case里的变量,作用域在这个case内部
  • 一个File  Suite里的变量,作用域在这个Suite内部
  • 一个userkeyword里的变量,作用于在这个Userkeyword内部

  变量的作用域是可以改变的,通过关键字的处理:

  • Set Global Variable 设定全局级变量。作用域在所有的测试用例和测试套件里都有效
  • Set Suite Variable 设定File Suite级变量。作用域在当前的File Suite里有效
  • Set Test Variable 设定Case级变量。作用域在当前Case内有有效

4.常量

  1)环境变量:标识符为 % ,无论是Windows系统还是Mac系统都可定义自己的环境变量,RF可以打印出Windows or Mac系统的环境变量,但是不可更改

  

  

  2)数值常量:

  在RIDE里所有字符都会被当作字符串,打印出来是u‘2.6‘, u‘ABC‘ 这样子unicode字符串

  如果想让一个数字以数值的形式存在,要写成 ${2.6} ,如图:

  

  

  说明:这里其实是定义了一个 list 变量,用 scalar 的形式展现出来,所以说单值变量的变量类型取决于变量值。

  3)特殊字符常量、系统保留常量

  在Case里双击一下空白的单元格,按“Ctrl+Alt+空格”,如下图:

  

  特殊字符常量主要有${/}  ${:}  ${EMPTY}  ${Space}  ${False}   ${True}   ${None}   ${null}  ,其余都是系统保留常量

  这里面每个常量的值都可以在右边的提示框里看到其Value, 如果值为空的(除了EMPTY) 在运行时才有它的值。

二、Scalar变量

  1.变量赋值

  1)Set Variable, Set Variable If

  

  

  Set Variable If 判断 ${var2} 和 abcd 的值,如果相等,则赋值 ${varif2} 为efgh, 如果不相等,则赋值  ${varif2} 为ace

  2) Get Length, Get Time

  Get length 是获取字符串的长度, Get Time 是获取时间,如图:

  

  

  3)命令行赋值

  在Run界面的 Arguments里加上一行:-v val1:running, 然后再 Log ${val1}, 看运行结果(从value变成了running)

  

  

  

  2.变量的使用

  1)在判断中使用,Run Keyword If

  若判断条件成立,则运行后面的关键字,若判断条件不成立,则不会做任何操作

  如图1,2为成立,图3,4为不成立

  

  

  

  

  

  

  2)当字符串使用

  字符串的连接,如: Log     123${var1}efgh

  字符串的截取,如:想截取 ${var2} 的第三个字符,和第一到三个字符,写成 Log   ${var2[2]},   Log   ${var2[0:3]}, 字符串的索引下标是从0开始的

  

  

  3)参与运算, Evaluate

  

  

  

  

  

三、List变量

  1.变量赋值 Create List

  

  

  2.变量的使用

  F5查看关键字 Run Keyword 的使用说明,对于可传入的参数前面有*(*args 代表不定长参数),就可以用List变量,或者要求传入多个参数的关键字,也可以用List变量,但是List元素个数必须满足关键字所需要的最少参数个数。

  Run Keyword 关键字的使用:后面接关键字名,所用的关键字需要传入的参数

  

  

  

  3.List 元素的使用

  @{list}[index], 元素的下标从0开始

  ${scalar[index]}, 总结:list 元素的下标在外面, scalar 元素的下标在里面

  

  

四、变量的转换

  系统会默认 @{var2} 是 ${var2} list 形式, ${var2} 是 @{var2} 的scalar 形式。

  转换的限制:被转换的变量要进行赋值(初始化)后,才能进行转换。如果没有进行过赋值,在RIDE里会用”紫色“表示。

五、其他变量

  Dictionary 变量:每个元素是一对值,一个Key 对应一个 Value, Key 不能重复。键值对用逗号隔开。

          例如:{key1:value1, key2:value2 }

  对象变量:将在接口测试 Request 测试库里用到, 假设 ${return} 是接口返回的对象,更多时候使用的是对象的属性值,例如:${return.STATUS}   对象的状态   ${return.CONTENT}  对象的内容

六、变量文件

  前面介绍了如何在 Suite 中导入 Library, Resource, 其实还可以导入 Variables 变量文件, 变量文件只支持导入Python的py文件。

  

  例如:

  import random

  __all__=[‘scalar‘, ‘LIST__var‘, ‘interger‘]

  scalar= ‘hello world‘

  LIST__var=[‘hello‘, ‘list‘, ‘world‘]

  interger=random.randint(1,10)

  有几点要注意的,__all__是用来列出这里有哪几个变量的,LIST__var 真实的变量名是var, 只是用LIST__来标明是个list变量, 其他的都是Scalar变量

  

原文地址:https://www.cnblogs.com/Agnes1994/p/9560271.html

时间: 2024-10-11 00:28:20

Robot Framework (六)变量和常量的相关文章

Robot Framework(八) 资源和变量文件

2.7资源和变量文件 测试用例文件和测试套件初始化文件中的用户关键字和变量只能在创建它们的文件中使用,但资源文件提供了共享它们的机制.由于资源文件结构非常接近测试用例文件,因此很容易创建它们. 变量文件提供了一种创建和共享变量的强大机制.例如,它们允许除字符串以外的值,并允许动态创建变量.它们的灵活性来自于它们是使用Python代码创建的,这也使它们比Variable表更复杂. 2.7.1资源文件 使用资源文件 使用“ 设置”表中的“ 资源”设置导入资源文件.资源文件的路径在设置名称后面的单元格

Robot Framework - 入门与操作(5)

Creating test data ***** Test suites 测试集没有测试用例个数的限制,但建议不要超过 10 个测试用例. 除非是使用数据驱动模式,这种模式的测试用例仅包含一个高级别关键字. 测试集的注释是在测试集的设置表格中使用 Documentation 标示. 除注释之外的其他元数据可以使用测试集表格中的 Metadata 设置. 这种方式的元数据将在测试报告和日志中显示出来. 测试集的 setup 和 teardown 都可以使用参数. 一个测试集的 setup 将在所有

Robot Framework 内置变量

转自:https://blog.csdn.net/qq_26886929/article/details/53907755 Robot Framework 内部提供了一下直接可用的内置变量 1. 操作系统相关变量 内置的操作系统相关的变量,减少了测试数据对操作系统之间的差异性的关注 RF 中可用的操作系统相关的内置变量如下表: 变量 用途 ${CURDIR} 测试数据文件所在目录的绝对路径,该参数是大小写敏感的 ${TEMPDIR} 操作系统临时目录的绝对路径,在类 Unix 系统中,该路径通常

Robot Framework自动化测试(六)--- robotremoteserver使用

robotremoteserver 是什么? Python Remote Server for Robot Framework 下载地址:https://pypi.python.org/pypi/robotremoteserver/ robotremoteserver是一种远程库接口技术(remote library interface).其实,通过这两天的使用,我的理解它就是一个远程库的容器.这看上去有点不太好理解,我们知道当我要使用的Robot Framework的库是被安装在..\Pyth

python+robot framework接口自动化测试

python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的封装实现一定意义上的脚本与用例的脱离! robot framework 的安装不过多说明,网上资料比较太多~ 实例:!!!!! 步骤一:新建项目 测试项目可以目录或文件存储,格式可以用TXT,TSV或HTML格式, 建议项目选择目录和TXT,这样便于管理 步骤二:新建测试套 测试套与测试项目一样,也

Robot Framework自动化测试---Selenium API

一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com chrome 浏览器对应的关键字: firefox FireFox ff internetexplorer Internet Explorer ie googlechrome Google Chrome gc chrome opera Opera phantomjs PhantomJS htmlunit HTMLUnit htmlunitwithjs HTMLUnit with Javas

robot framework的使用方法

1.后台代码: 目录结构: 测试代码:Arithmetic.py 2.开始编写用例 直接在eclipse上新建一个txt文件即可,或者是通过ride编写用例. (1).首先在eclipse上新建目录Testcase,文件 测试.txt (2)在测试.txt里编辑用例 第一部分:settings 主要用于引进所使用的资源: 或者是测试用例测试集的初始化或销毁(后续会详细讲解) 注意:(1)上述用的是相对路径  (2)../ 表示当前目录的上一级目录 (3)Liabrary 要与后面的路径至少要有两

Robot Framework自动化测试(三)---Selenium API

Robot  Framework  Selenium  API 说明: 此文档只是将最常用的UI 操作列出.更多方法请查找selenium 关键字库. 一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com chrome 浏览器对应的关键字: firefox FireFox ff internetexplorer Internet Explorer ie googlechrome Google Chrome gc chrome opera Op

Robot Framework自动化测试Selenium2Library库详细用法

一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com chrome 浏览器对应的关键字: firefox FireFox ff internetexplorer Internet Explorer ie googlechrome Google Chrome gc chrome opera Opera phantomjs PhantomJS htmlunit HTMLUnit htmlunitwithjs HTMLUnit with Javas