RobotFramework框架Word格式.docx
- 文档编号:16034407
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:14
- 大小:513.71KB
RobotFramework框架Word格式.docx
《RobotFramework框架Word格式.docx》由会员分享,可在线阅读,更多相关《RobotFramework框架Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
在详细介绍robotframework的结构之前,接下来我们要先讨论keyword-driventesting。
什么是keyword-driven
testing?
一个keyword是一个可以被用于测试SUT(SystemunderTest)的功能或者一个方法。
一个keyword可以被另外一个keyword定义,也就是说keyword是分层次的:
∙高层次keywords:
反映SUT的某个具体的业务逻辑。
∙低层次keywords:
将一个高层次keyword分解为一些低层次keyword,低层次的keyword是高层次keyword的具体实现。
∙技术keywords:
提供技术实现以访问并测试SUT。
下面引用一副图×
来说明一下:
嵌套的keyword定义
下面让我们看一个实际的例子:
googlesearchkeyword
上面的keyword定义来自SeleniumLibrary的GoogleSearchKeyWord定义.也就是说已经有许多定义到的keywords存在了,我们叫这些预先定义好的keywords为测试库(TestLibraries)。
RobotFramwork概述
RobotFramework的安装包包含核心框架以及一套标准库。
另外,还有许多外部库(additionalexternal
TestLibraries)。
这些外部库由robotframework的社区提供,服务于各种不同目的。
可以随意将所有的keyword和不同的库混合使用。
比如你可以用selenium库的keywords写一个测试web应用的例子,甚至可以远程的控制浏览器执行测试用例,同时使用数据库库去检查某些操作的结果。
甚至不需要写一行代码,只需组合现有的keyword,用他们定义出一个高级别keyword即可。
RobotFramework还提供了一个图形界面的的开发工具(RIDE),用于帮助开发和管理测试用例。
但是,测试库中的技术keyword是不能使用RIDE开发的。
因为测试库中的keyword必须与其开发语言所使用的IDE紧密结合,如使用java语言开发测试库时,eclipse通常是一个选择。
测试用例的集合叫做Testsuites,测试用例保存在ResourceFiles中,这就构成了RobotFramework的三层开发架构。
∙Testsuites:
测试用例(或检查点)在这里被实现。
每一个项目至少有一个testsuite。
在大一点的项目中,不同的测试功能会被放入不同的Testsuite。
∙ResourceFiles:
定义高级别的keywords。
ResourceFiles是可以复用的。
∙TestLibrary:
每一个technicalkeyword需要一个新的TestLibrary实现。
但是除非你用的是非常特出的技术,一般来说不需要写新的technicalkeywords。
而且实现一个TestLibrary并不费力。
必须强调,当使用keyword时,无论使用本地实现的TestLibrary还是使用现存的keywords组合,没有任何区别。
RobotFramework和他的核心库是Python写成的.所以RobotFrameword天然支持Python。
通过Jython,我们可以使用java来实现TestLibrary,或者甚至任何能够通过Java调用的语言。
通过IronPython,RobotFramework可以和.NET集成。
可能的安装是:
远程库(RemoteLibraries)
远程库使我们可以在没有安装RobotFramework的机器上运行测试库(TestLibrary),并且只要支持XML-RPC的语言就可以编写测试库。
远程库与普通的库的使用没有很大区别,除了在测试用力或者资源文件的导入方式上。
RIDE同时也支持远程库。
如果想学习远程库的开发,可以参看数据库库(DatabaseLibrary)。
远程库的功能实际上是一个测试库的addon提供的,另外,远程库启动后,成为一个server,而robotframework作为client去连接的它。
当使用RobotFramework创建一个新的工程时,首先我们可能需要思考以下几个问题:
1.使用哪种编程语言:
Python、Jython还是Java?
2.测试脚本应该使用哪种格式(HTML、TEXT、BDD)?
3.是否需要使用RobotIDE(RIDE)?
4.如何在本地或CI环境上执行测试?
5.如何执行测试(scripting、ANT、Maven)?
RobotFramework提供给我们很多的设置选择,那么,应该如何取舍?
当然,你可以在Eclipse中使用Maven开始Robot测试,然后使用BDD格式编写你的测试用例(比使用HTML格式更加灵活),这是一个很不错的方式。
但是我们的核心思想是:
简明!
那么,让我们一起来创建一个简明且稳定的RobotFramework工程……
2.1
初步思考
在新建RobotFramework工程前,我们要分析被测系统需要使用哪些测试库。
来看几个例子:
web程序测试:
我们需要导入SeleniumLibrary或者Selenium2Library
数据库测试:
可以使用Database库(Python或者Java)
SSH/SFTP测试:
可以尝试SSHLibrary库
除了上述例子外,还有许多其他测试库。
如果现有库无法满足你的测试要求,你可能需要编写一个自定义库文件。
测试库的选择很重要,因为你在部署RobotFramework之前所安装的编程语言环境(Python或Jython/Java),将直接影响你可选择测试库的范围。
不过,你也可以在Python环境中使用远程库接口调用Java的测试库。
让我们设想一下,有一个使用数据库的web应用程序例子。
为了让例子看上去尽可能像一个web被测应用,我们将用google和本地MySQL数据库为例。
该实例将展示如何混合使用多个不同的测试库(本例中使用SeleniumLibrary和DatabaseLibrary),并同时使用DatabaseLibrary的远程库功能。
Tip:
本章的完整的示例源码可以从GitHub下载
2.2
测试部署结构
下图展示了测试部署结构的模型:
概述
Selenium通常需要一个Server。
你可以把Server和RobotFramework部署在同一台机器上,也可以部署在任何一台通过TCP/IP协议连接的计算机上。
DatabaseLibrary也是一样,DatabaseLibrary运行需要RPC。
当然,所有的server都是在本地运行的。
在一些官方的测试环境中,通常RobotFramework被集成在一个CI服务器上,而SeleniumServer部署在一些Windows系统测试机上执行测试,这样你就可以在不同终端上测试各种版本的浏览器。
2.3
测试实施&
组织
终于,我们要开始具体的测试实施章节了。
我们不会讲的太细,具体的细节可以参阅本例工程源文件,但是,有几个问题我们需要关注一下。
测试脚本格式
RobotFramework的测试脚本支持HTML,Text,BDD等格式,测试脚本所使用的文件格式将影响我们是否需要使用RIDE编辑器。
如果已经存在一个可用的数据编辑工具,如Excel,可以把数据编辑好后直接复制粘贴到RIDE里。
当然,很重要的一点是测试既可以在本地也可以在服务器上(CI环境)执行。
这对于RobotFramework来说很容易,你可以通过参数化关键字来实现分布式部署。
举几个例子:
web应用程序的起始URL
SeleniumServer的IP地址和端口
JDBC使用DatabaseLibrary连接数据库的字符串
这些参数通常被存放在变量文件(variablefile)中。
变量文件可以在命令行中作为可选参数传递给RobotFramework。
参数化便于我们在本地和CI服务器上操作不同的启动脚本。
文件结构
项目文件结构
定义一个通用文件结构,以便于不同工程重用。
上图展示了文件结构的布局。
尽量使用相对路径。
例如:
从testsuite中引用一个资源文件或者把一个testsuite作为一个参数传给robot启动脚本。
首先,我们新建一个顶级目录(robot),然后我们把该目录划分成实施(implementation)和执行(execution)。
在implementation目录中,包含testsuites和resources两个目录,分别用来存放测试套件脚本和资源文件。
当然,在一些大型的项目中,需要更深的文件结构。
需要注意的是,在引用任何其他文件时(e.g.在testsuit中引用资源文件),所有的路径信息请使用相对路径。
execution文件夹用于处理不同的目标环境。
通常,这包括本地环境(local)和CI环境(server)。
scripts文件夹用于存放脚本文件(robot脚本,seleniumserver,DatabaseLibrary远程server),settings文件夹用于存放指定的变量文件。
最后来看下lib文件夹。
它是用来存放自己编写的库文件或现成的库文件。
2.4
启动
在谈到执行测试时,我推荐大家使用shell脚本。
shell脚本简单易懂,不容易出现问题,并且在CI环境中使用方便。
在开始前我们在本例中准备了三个脚本,分别用于:
1.
启动robot测试的脚本
2.
启动SeleniumServer的脚本
3.
启动DatabaseLibraryRemoteServer的脚本
2.5
安装部署
首先我们需要安装RobotFramework以及所需的测试库。
假设我们的操作系统是Windows。
RobotFramework不支持3.x版本的Python。
在本例中将需要安装以下安装包:
1.python-2.6.6.msi
–Python2.6.6
2.robotframework-2.7.1.win32.exe
–RobotFramework2.7.1
3.wxPython2.8-win32-unicode-2.8.12.1-py26.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RobotFramework 框架