- 浏览: 274548 次
- 性别:
- 来自: 武汉
文章分类
一,文件中创建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;
}
}
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;
}
}
发表评论
-
自动化测试遇到的一些问题
2013-07-11 12:43 8731, 页面上的checkbox 上执行click来勾选,结果出 ... -
敏捷开发与敏捷测试
2013-06-18 16:47 1015敏捷开发 是一种以人为 ... -
(一)Robot Framework的安装与卸载
2013-06-17 16:40 14117序言 关于robot framework (RF) 2.7+版 ... -
自动化测试应该在什么阶段进行?(转)
2013-05-21 13:05 1854软件自动化测试,作为 ... -
简单使用Selenium Grid
2013-01-22 16:59 39561, 启动hub(机器X) Hub作为中央节点,他将接收所有的 ... -
Selenium 2 跑safari浏览器 (在windows XP系统上)
2013-01-21 16:38 31481,配置环境(什么装JDK,ECLIPSE,SELENIUM, ... -
我常用的的处理模态窗口的方法(selenium 2)
2013-01-04 15:44 5814主要思想: 使用Java Robot模拟键盘的回车 来替代 s ... -
selenium + python 环境安装(转)
2012-12-16 04:07 12967安装程序 python-2.7.2.msi,python安装 ... -
Selenium 处理 modal 对话框(转)
2012-11-16 17:27 3600Selenium目前没有提供对IE模态对话框(即通过showM ... -
xpath再学习(持续更新中)
2012-06-19 17:52 1489目标XML代码: <?xml version=" ... -
自动化测试规范(转)
2012-06-17 10:05 1188测试用例名同测试用例的编号。 每个测试用例粒度 ... -
hudson编码问题
2012-06-10 10:54 1383现象1:在系统设置中提示:Your container doe ... -
关于Selenium 使用CSS定位的好教程
2012-01-30 17:36 1809Selenium Tips: CSS Selectors in ... -
selenium2 入门
2012-01-11 15:49 13231.1 下载selenium2.0的lib包 http:/ ... -
selenium支持的浏览器列表
2011-11-15 15:15 1539Supported browsers include: *f ... -
Selenium 的SeleneseTestBase和SeleneseTestCase
2011-11-10 13:21 23632个api的区别:SeleneseTestCase 和 Sel ...
相关推荐
《Python库Robotframework-SSHLibrary 3.5.0rc1详解》 在Python的世界里,库是开发者的重要工具,它们极大地丰富了Python的功能并提高了开发效率。本篇文章将深入探讨一个名为`robotframework-sshlibrary`的Python...
标题 "robotframework-excellibrary-0.0.2.zip" 提供的是一个名为 ExcelLibrary 的 Robot Framework 模块的特定版本(0.0.2)。Robot Framework 是一个通用的自动化测试框架,它允许用户使用关键词驱动的方法进行...
robotframework-ride-1.5a1.win-amd64 exe
robotframework-2.9.py64bit.exe
要让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适配python 3版本,在python3.7.9上安装正常。 下载好压缩包 ->解压 -> 在解压目录的当前文件夹下,打开终端,输入 : python setup.py install 即可,安装成功后,pip list查看
robotframework-selenium2library-1.7.3.win-amd64.exe
标题中的"robotframework-selenium2library-3.0.0.tar.gz"是一个开源自动化测试框架Robot Framework的一个扩展库——Selenium2Library的3.0.0版本的压缩包。Robot Framework是一个通用的、基于关键字驱动的自动化...
Robot Framework Selenium2Library 1.5.0 是一个专门针对Web自动化测试的强大的库,它构建于Robot Framework之上,提供了一套简洁而易用的接口,使得测试人员能够高效地编写自动化测试用例。Robot Framework 是一个...
标题中的“已经修复安装报错:robotframework-excellibrary-0.0.2.zip”表明这是一个关于Robot Framework的扩展库——ExcelLibrary的修复版本,版本号为0.0.2,且该库在之前的安装过程中遇到了错误,但现在已经被...
Robotframework-AppiumLibrary是基于Robot Framework的自动化测试库,专为移动应用自动化测试而设计。Robot Framework是一个通用的自动化框架,支持关键字驱动测试方法,而AppiumLibrary则是其扩展,用于对接Appium...
robort framework RIDE win64,用于64位机。安装64bit的robot framework 需要wxPython2.8的,不然打不开RIDE的快捷方式
**PyPI 官网下载 | robotframework-zoomba-2.8.5.tar.gz** `robotframework-zoomba` 是一个基于 Python 的自动化测试框架,它建立在 Robot Framework 之上,专为 Web 应用程序的端到端测试提供了一套全面的解决方案...
Robot Framework 快速入门 Robot Framework 是一个开源自动化测试框架,设计用于支持各种不同类型的测试,包括功能测试、验收测试、回归测试以及更多其他类型。它以关键字驱动的方式工作,使得测试用例易于编写和...
robotframework-selenium2library-1.7.4.win-amd64.exe
标题"robotframework-excellibrary-0.0.2.rar"表明这是一个名为"robotframework-excellibrary"的库的特定版本,版本号为0.0.2,且以RAR压缩格式提供。Robot Framework是一个通用的自动化测试框架,而Excellibrary是...
Robot Framework是一个开源自动化测试框架,主要适用于软件测试和任务自动化。它支持关键字驱动测试方法,提供了丰富的库,可用于Web应用、数据库、操作系统等多领域的测试。"robotframework-2.8.1.win32.zip" 是这...
robotframework-2.7.3.win32.exe
5. 运行测试:通过命令`robot <test_file>.robot`运行测试,Robot Framework会生成详细的测试报告和日志。 Robot Framework支持多种库,例如SeleniumLibrary用于Web应用程序的自动化测试,OperatingSystem库可以...
**Robot Framework RIDE 1.5.2.1 深度解析** Robot Framework RIDE (Robot Framework Integrated Development Environment) 是一个基于 Python 的开源测试自动化框架的图形化用户界面工具。RIDE 支持 Robot ...