RobotFrameWork导入自定义的模块

产生原因:

由于测试流程会使用python 调用C接口,所以将C接口使用了一层封装,需要将C接口转化为python接口,且可以被RF使用

执行步骤如下:

参考链接:https://zhuanlan.zhihu.com/p/108924718

1.创建一个目录为RmSDK
2.py文件为:libRunner.py
(这里注意py文件和类名需要保持一致,可以不区分大小写)

#因为是windows调试库,所以内容我都删了
import os
from ctypes import *
from enum import Enum, unique

class LibRunner(object):
    __lib = ""
    __soundio = None

    def __init__(self):
        """加载测试库"""
        pass

    def RM_SDK_Global_Initialize(self,filepath):
        """调用初始化接口"""
        return filepath

3)创建__init__.py在RmSDK目录下

#-*- coding: utf-8 -*-
from libRunner import LibRunner

class RmSDK(LibRunner):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

在RF中导入

我的误区:
误区

实际:
需要将库目录放到python\Lib\site-packages\目录下,然后直接导入包名字
在这里插入图片描述
然后调用了里面函数:
run一下试下,发现找不到模块名
在这里插入图片描述

emmm…决定写个python小脚本验证下,就在__init__.py中加入了一个main`

#-*- coding: utf-8 -*-
from libRunner import LibRunner


class RmSDK(LibRunner):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'


if __name__ == '__main__':
    result = LibRunner().RM_SDK_Global_Initialize("test")
    print(result)`

调试__init__.py执行通过

证明是RF无法找到这个模块…
所以划重点了:
1.RF时候发现找包的路径没有RmSDK 这一个层级,so,修改init

#-*- coding: utf-8 -*-
from RmSDK.libRunner import LibRunner

class RmSDK(LibRunner):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

#这里加上了RmSDK路径!rf搜索路径才有~~但是车过去执行了一下init…emmm …
把文件目录加入环境变量后解决
sys.path.append(os.path.dirname(file))

以上是windows添加路径的方法

linux 添加搜索目录的方式:

1)sys.path在这里插入图片描述
查看path的路径,在这里有的目录都可以用,随便选其中一个目录,创建个文件 “xxx.pth”,然后把你存放三方库的路径放进去

# cd /mnt/python/python35/lib/python3.5/site-packages
# touch 3dparty.pth
# vi 3dparty.pth
/mnt/python/src/demo
#这是三方库的路径是在这个目录下的,在/demo下的目录RmSDK中

测试一下RF
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值