robot之python扩展库编写 - 51ste软件测试部落-中国软件测试者的乐园
登录|注册

robot之python扩展库编写

作者:ruink  发布时间:2015-12-10 17:43:55  关键字:robot扩展库 

通过对robot自动化框架的使用,大大方便了我们做自动化测试。但很多时候官网提供的扩展库并不能满足我们的测试要求,此时就需要我们编写自己的扩展库。这里以ubuntu下使用python编写自定义扩展库举例说明。

最近笔者在做物联网方面的自动化测试,所以这里以编写MQTT扩展库作为示例:

1)首先在~/pythonX(笔者使用的python版本为2.7,所以X2.7/dist-packages/下新建一个库名如MyLibrary

当然也可以在其它路径下新建扩展库,引用时注意指向库的绝对路径即可;按上面新建,引用则只需要填写库名MyLibrary

2)新建一个关键字库_pubmsg.py,如:

#-*- coding:utf-8 -*-

import ConfigParser

import string, os, sys ,time

import paho.mqtt.client as mqtt

import paho.mqtt.publish as publish

from keywordgroup import KeywordGroup

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

 

class Pubmsg(KeywordGroup):

    def __init__(self):

        cf = ConfigParser.ConfigParser()

        homedir = os.path.split(os.path.realpath(__file__))[0]

        cfgdir= homedir + "/mqtt_config.ini"

        cf.read(cfgdir)

        self.host = cf.get("server", "host") 

        self.port = cf.get("server", "port")

        self.username = cf.get("auth", "username")

        self.password = cf.get("auth", "password")

 

    def pubMsg(self,topic,cnt,qos=1):

        """ 可以在这里对关键字作使用说明"""

        host = self.host

        port = self.port

        username = self.username

        password = self.password

        publish.single(topic=topic, payload=cnt, qos=int(qos), retain=False, hostname=host,port=int(port), client_id="", keepalive=60, will=None, auth={'username':username,'password':password},tls=None,protocol=mqtt.MQTTv31)

        print "sned ok"

上面实际为一个python类,里面有一个关键字,为pubMsg。实际一个关键字为一个函数,如果同类关键字有多个,则可以在里面编写多个对应函数。

3)编写了关键字类,但要想在robot framework启动后加载这个关键字,还需要在MyLibrary目录下创建__init__.py文件,内容如下:

import os

from _pubmsg import Pubmsg

#上面_pubmsg为关键字文件名,Pubmsg为类名,如果有多个,字按上面格式一一引入

__version__ = '0.1'  #声明版本

class MyLibrary(

    Pubmsg,

本文由51ste.com网友编辑,未经授权,不得转载使用上述作品盈利;个人转载,需标明原文作者及出处。

说说看法查看全部评论(0)

微信二维码

部落微信公众号

QQ二维码

部落QQ群二维码