51Testing软件测试论坛
标题:
robot framework 学习心得
[打印本页]
作者:
测试积点老人
时间:
2019-1-3 15:25
标题:
robot framework 学习心得
本帖最后由 测试积点老人 于 2019-1-3 15:26 编辑
安装
安装就不着重讲了,网上很多,推荐使用(包含python环境)
websocket长连接区分连接问题
安装python库
1.pip install websocket-client
2.sudo python setup.py install
背景介绍
本次测试主要针对websocket服务器测试,但是项目中存在订阅功能,那么在单个测试用例中必然存在两个连接,但是目前网上的搜到能直接在robot中使用的websocket python库十分不完善,所以自己研究了段时间python.
自己写了一套能够在测试用例中,每个User Keyword能够直接绑定到某个连接的做法.python库:
<span style="font-weight: normal;"><font size="3">#!/usr/bin/env python
#encoding: utf-8
from websocket import create_connection
def connect(URL,header=None):
ws = create_connection(URL,header=header)
return ws
def call_attr(func,method,arg=None):
if arg:
result = getattr(func,method)(arg)
else:
result = getattr(func,method)()
return result</font></span>
复制代码
备注:方法一见名知意,建立了一个websocket连接,并将该连接返回,在robot中被当做变量传递; 方法二第一个func参数实际传递的就是第一个方法中的ws(websocket连接),第二个method参数为这个连接(这里可以把这个连接看为一个对象实例)调用的方法,第三个arg为method方法中需要传递的参数.
测试用例使用:
<span style="font-weight: normal;"><font size="3">${conn1} connect ${url} ${dict}
Call Attr ${conn1} send ${sendMessage:订阅消息}
Call Attr ${conn1} settimeout ${timeout}
${result} Call Attr ${conn1} recv
${conn2} connect ${url}/dealer None
Call Attr ${conn2} send ${sendMessage:修改消息}
${result} Call Attr ${conn2} recv
${result} Call Attr ${conn1} recv</font></span>
复制代码
备注:其中${conn1}为订阅方,在被订阅的topic有任何变化,订阅方都会收到服务器的推送消息. ${conn2}为修改方,修改了${conn1}订阅的topic数据.
自定义python库的引用问题
建议在测试用例文件夹中建立一个Lib文件夹,自定义的python可以书写在该目录下,倘若测试用例文件与Lib同级,引用则是
ib/xxx.py,倘若在Lib下一级寻址则为"../Lib/xxx.py";
总结
其他事情技术含量到不是太高,都是一些繁琐和重复的工作,多查google,多看F5,不行就自己写python,很多事情还是能够解决的,与君共勉~~~
作者:
Miss_love
时间:
2021-1-5 14:51
支持
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2