`

(二) robot framework - variable file

 
阅读更多
一,文件中创建variable的两种方式
1) 直接创建:
例子:
VARIABLE = "An example string"   = ${VARIABLE}
INTEGER = 42   = ${INTEGER}
STRINGS = ["one", "two", "kolme", "four"] =  ${STRINGS}
全是scalar类型的variable, 要创建List类型的variable就需要以LIST__ (注意双下划线)开头来命名variable:
LIST__STRINGS = ["list", "of", "strings"]  = @{STRINGS}

还支持创建对象类型的variable,如:
MAPPING = {'one': 1, 'two': 2}    -- 创建dictionary variable  = ${MAPPING}
class MyObject:                  --创建一个类
    def __init__(self, name):
        self.name = name
OBJ1 = MyObject('John')      
OBJ2 = MyObject('Jane')        -创建2个类的对象


此外,还可以动态创建variable:
RANDOM_INT = random.randint(0, 10);
if time.localtime()[3] > 12:
    AFTERNOON = True
else:
    AFTERNOON = False

注1: 通常全局的大写,非全局的小写;
注2: 以下划线_开头的属性不被识别为variable;
注3: 在variable文件中提到的所有不以下划线开头的属性都被认为是variable,可以使用添加下划线的方式来过滤它们, 也可以使用__all__ (双下滑)来将要定义为variable的加进去,如:__all__ = ['AREA1', 'AREA2'],那么只有area1和area2被认为是variable;

2) 从方法或函数中获得返回值的方式 get_variables(),存储结构是python的dictionary 或 java的map;如下例子和1)中的第一个例子效果一样:
def get_variables():
    variables = { "VARIABLE": "An example string",
                  "INTEGER": 42,
                  "STRINGS": ["one", "two", "kolme", "four"],
                  "LIST__STRINGS": ["list", "of", "strings"]
                 }
    return variables

java实现版本:
public Map getVariables() {
        HashMap variables = new HashMap();
        variables.put("VARIABLE", "An example string");
        variables.put("INTEGER", 42);
        variables.put("STRINGS", ["one", "two", "kolme", "four"]);
        variables.put("LIST__STRINGS",["list", "of", "strings"]);
        return variables;
    }

此外,get_variables()也可以接受参数,通常可以用来进行选择导入哪个variable file或者variable value,如下:
variables1 = { 'a': 'Scalar variable',
               'LIST__a': ['List','variable'] }
variables2 = { 'a' : 'Some other value',
               'LIST__a': ['Some','other','value'],
               'extra': 'variables1 does not have this at all' }

def get_variables(arg):
    if arg == 'one':
        return variables1
    else:
        return variables2


二,一些规则
- 当找不到导入的variable文件时,会去python PATH下面找;
- 如果多个引入的variable文件中含有相同的变量名,那么最早的那个将被采用;
- cmd下设置的变量将覆盖文件中的同名variable;
- cmd上导入variable文件:
(--variablefile myvariables.py
--variablefile path/variables.py
--variablefile /absolute/path/common.py
--variablefile taking_arguments.py:arg1:arg2)
此时的variable scope是全局的;

三, 采用java class和python class 来实现 variable files:
一些rules:
1) Python class的名字必须和module的名字相同;
2) java class必须处于默认包中;
3) java class的路径必须以.java或.class结尾,并且两种文件都要存在;

例子-1:创建类属性 ${VARIABLE},@{LIST} 和对象属性 ${ANOTHER VARIABLE}
class StaticPythonExample(object):    --python版本
    variable = 'value'
    LIST__list = [1, 2, 3]
    _not_variable = 'starts with an underscore'

    def __init__(self):
        self.another_variable = 'another value'

public class StaticJavaExample {          -------java版本
    public static String variable = "value";
    public static String[] LIST__list = {1, 2, 3};
    private String notVariable = "is private";
    public String anotherVariable;

    public StaticJavaExample() {
        anotherVariable = "another value";
    }
}

例子-2:
class DynamicPythonExample(object):   --python

    def get_variables(self, *args):
        return {'dynamic variable': ' '.join(args)}

import java.util.Map;
import java.util.HashMap;

public class DynamicJavaExample {     -java

    public Map<String, String> getVariables(String arg1, String arg2) {
        HashMap<String, String> variables = new HashMap<String, String>();
        variables.put("dynamic variable", arg1 + " " + arg2);
        return variables;
    }
}
分享到:
评论

相关推荐

    Python库 | robotframework-sshlibrary-3.5.0rc1.tar.gz

    《Python库Robotframework-SSHLibrary 3.5.0rc1详解》 在Python的世界里,库是开发者的重要工具,它们极大地丰富了Python的功能并提高了开发效率。本篇文章将深入探讨一个名为`robotframework-sshlibrary`的Python...

    robotframework-excellibrary-0.0.2.zip

    标题 "robotframework-excellibrary-0.0.2.zip" 提供的是一个名为 ExcelLibrary 的 Robot Framework 模块的特定版本(0.0.2)。Robot Framework 是一个通用的自动化测试框架,它允许用户使用关键词驱动的方法进行...

    robotframework-ride-1.5a1.win-amd64

    robotframework-ride-1.5a1.win-amd64 exe

    robotframework-2.9.py64bit.exe

    robotframework-2.9.py64bit.exe

    robotframework-seleniumlibrary-2.9

    要让robotframework-ide能正常运行,需要wxpython安装到python2.7目录下(注:我的装是python2.7版本) $cd /usr/tools/wxwidgets2.8.7/wxPython $python setup.py install WX_CONFIG=/opt/wx/2.8/bin/wx-config ...

    robotframework-excellibrary-0.0.2-python3.x.zip

    robotframework-excellibrary适配python 3版本,在python3.7.9上安装正常。 下载好压缩包 -&gt;解压 -&gt; 在解压目录的当前文件夹下,打开终端,输入 : python setup.py install 即可,安装成功后,pip list查看

    robotframework-selenium2library-1.7.3.win-amd64.exe

    robotframework-selenium2library-1.7.3.win-amd64.exe

    robotframework-selenium2library-3.0.0.tar.gz

    标题中的"robotframework-selenium2library-3.0.0.tar.gz"是一个开源自动化测试框架Robot Framework的一个扩展库——Selenium2Library的3.0.0版本的压缩包。Robot Framework是一个通用的、基于关键字驱动的自动化...

    robotframework-selenium2library-1.5.0

    Robot Framework Selenium2Library 1.5.0 是一个专门针对Web自动化测试的强大的库,它构建于Robot Framework之上,提供了一套简洁而易用的接口,使得测试人员能够高效地编写自动化测试用例。Robot Framework 是一个...

    已经修复安装报错:robotframework-excellibrary-0.0.2.zip

    标题中的“已经修复安装报错:robotframework-excellibrary-0.0.2.zip”表明这是一个关于Robot Framework的扩展库——ExcelLibrary的修复版本,版本号为0.0.2,且该库在之前的安装过程中遇到了错误,但现在已经被...

    robotframework-appiumlibrary-1.4.2.tar.gz

    Robotframework-AppiumLibrary是基于Robot Framework的自动化测试库,专为移动应用自动化测试而设计。Robot Framework是一个通用的自动化框架,支持关键字驱动测试方法,而AppiumLibrary则是其扩展,用于对接Appium...

    robotframework-ride-1.5.win-amd64.exe

    robort framework RIDE win64,用于64位机。安装64bit的robot framework 需要wxPython2.8的,不然打不开RIDE的快捷方式

    PyPI 官网下载 | robotframework-zoomba-2.8.5.tar.gz

    **PyPI 官网下载 | robotframework-zoomba-2.8.5.tar.gz** `robotframework-zoomba` 是一个基于 Python 的自动化测试框架,它建立在 Robot Framework 之上,专为 Web 应用程序的端到端测试提供了一套全面的解决方案...

    robotframework-quickstart

    Robot Framework 快速入门 Robot Framework 是一个开源自动化测试框架,设计用于支持各种不同类型的测试,包括功能测试、验收测试、回归测试以及更多其他类型。它以关键字驱动的方式工作,使得测试用例易于编写和...

    robotframework-selenium2library-1.7.4.win-amd64.exe

    robotframework-selenium2library-1.7.4.win-amd64.exe

    robotframework-excellibrary-0.0.2.rar

    标题"robotframework-excellibrary-0.0.2.rar"表明这是一个名为"robotframework-excellibrary"的库的特定版本,版本号为0.0.2,且以RAR压缩格式提供。Robot Framework是一个通用的自动化测试框架,而Excellibrary是...

    robotframework-2.8.1.win32.zip

    Robot Framework是一个开源自动化测试框架,主要适用于软件测试和任务自动化。它支持关键字驱动测试方法,提供了丰富的库,可用于Web应用、数据库、操作系统等多领域的测试。"robotframework-2.8.1.win32.zip" 是这...

    robotframework-2.7.3.win32.exe

    robotframework-2.7.3.win32.exe

    robotframework-2.8.4 and python-2.76

    5. 运行测试:通过命令`robot &lt;test_file&gt;.robot`运行测试,Robot Framework会生成详细的测试报告和日志。 Robot Framework支持多种库,例如SeleniumLibrary用于Web应用程序的自动化测试,OperatingSystem库可以...

    robotframework-ride-1.5.2.1

    **Robot Framework RIDE 1.5.2.1 深度解析** Robot Framework RIDE (Robot Framework Integrated Development Environment) 是一个基于 Python 的开源测试自动化框架的图形化用户界面工具。RIDE 支持 Robot ...

Global site tag (gtag.js) - Google Analytics