使用远程接口库进一步扩展Robot Framework的测试能力
来源:互联网 发布:华晨中华v5配置数据图 编辑:程序博客网 时间:2024/06/07 16:13
使用原因:
① 测试需要跨越多个物理机器,且有的测试库也必须部署在被测系统上。比如:客户端需要在两台系统分别为windows和linux的服务器下,执行测试环境的初始化及清理工作。
② 一个测试要使用多个库,但是有的只能用jybot运行,有的只能用pybot运行(这种情况很常见)。
远程库接口的原理:
为了解决上述两个难题,Robot Framework提供了远程库接口技术(remote library interface)。
什么是远程库接口技术呢?其实很简单,远程库接口就是把原来的测试库变成了三部分
一部分我们可以叫他远程库(Remote Library),第二部分叫做远程服务器(Remote Server),第三部分是真正的测试库(Test Library)。测试库提供真正的测试功能,它被远程服务器包裹起来,通过XML-RPC协议被远程库访问(见下图)。它的实现思路说白了就是设计模式中的Proxy模式。
操作步骤:
1.服务端操作:
1) 下载robotremoteserver.py并修改:
Robotremoteserver.py为远程服务脚本,客户端通过它来调用服务器端的测试库来执行测试,下载地址如下:
http://robotframework.googlecode.com/hg/tools/remoteserver/robotremoteserver.py
Robotremoteserver.py中需要修改的地方只有一个,为下图中黄色部分:
def __init__(self, library,host='192.168.8.231', port=8270 , allow_stop=True):
SimpleXMLRPCServer.__init__(self, (host, int(port)), logRequests=False)
self._library = library
self._allow_stop = allow_stop
self._register_functions()
self._register_signal_handlers()
self._log('Robot Framework remote server starting at %s:%s'
% (host, port))
self.serve_forever()
修改:Robotremoteserver.py需要放置在服务端;
设置host和port为服务器端ip及端口
2) 创建服务器端测试库(test library),测试库exampleremotelibrary.py脚本内容如下:
#!/usr/bin/env pythonimport osimport sysclass ExampleRemoteLibrary: def __init__(self): """Also this doc should be in shown in library doc.""" def start_efastserver(self): os.system('source ./start_efast.sh') def strings_should_be_equal(self, str1, str2): print "Comparing '%s' to '%s'" % (str1, str2) if str1 != str2: raise AssertionError("Given strings are not equal")if __name__ == '__main__': from robotremoteserver import RobotRemoteServer RobotRemoteServer(ExampleRemoteLibrary(), *sys.argv[1:])
上面“start_efastserver”和 “strings_should_be_equal”为在服务端执行操作的函数,例如:脚本中函数start_efastserver 就是在服务端执行命令‘source ./start_efast.sh’,进行开启EFAST服务操作。
3) 运行服务端测试库
在服务端执行如下命令:
‘python exampleremotelibrary.py’
客户端:
4) 测试套(suite)中引入Remote
注意:Remote后面的参数是服务器的ip及端口
5) 在用例中调用远程测试库
我们调用strings_should_be_equal这个函数,检测下:
6)执行用例:
附注:
https://code.google.com/p/robotframework/wiki/RemoteLibrary
本文中使用原因和远程库接口的原理来自以下文章:
http://www.ltesting.net/ceshi/ceshijishu/zdcs/robotframework/2012/0305/204291.html
- 使用远程接口库进一步扩展Robot Framework的测试能力
- Robot Framework Remote Library 使用远程接口库
- robot framework使用接口框架进行接口测试
- robot framework使用接口框架进行接口测试
- robot framework 接口自动化测试
- Robot Framework之---接口测试实战
- robot framework接口自动化测试post请求
- robot framework使用接口框架进行接口测试之图片上传接口
- Robot Framework自定义测试库
- Robot Framework 创建测试库
- Robot framework+python自定义测试库的方法
- robot framework接口测试之二-四种常见的POST提交数据方式
- robot framework之接口测试(get方式)
- Robot Framework 测试总结
- Robot Framework自动化测试
- robot framework 测试安装
- Robot Framework自动化测试
- python3.6安装 robot framework、使用、编辑器扩展
- openStack 调用API方式create router
- Eclipse is running in a JRE, but a JDK is required 解决方法
- nodejs+mongodb实现curd 登录 注销 分页等功能的实现过程
- 粒子系统模块
- 数值分析 追赶法求解三对角线性方程组 MATLAB实现
- 使用远程接口库进一步扩展Robot Framework的测试能力
- 希尔排序
- iOS 宏(define)与常量(const)的正确使用
- 理解Contact的关键图
- 关于ios的切图颜色处理
- 关于Quicklook 以及 QLPreviewController
- 分享微信信息或者支付
- SQL-测试
- JavaScript_纯Js实现的Ajax