zoukankan      html  css  js  c++  java
  • RF(自定义关键字)

    1、在 D:work_softwarepythonLibsite-packages 文件夹下, 新建 python package 包 ,例如我的是 TestLibrary

    • 建好后的完整路径:D:work_softwarepythonLibsite-packagesTestLibrary
    • Tips:我的 python 是安装在 D 盘,在创建时,要根据自己的安装路径选择)

    2、在 D:work_softwarepythonLibsite-packagesTestLibrary 文件夹下查看是否有 __init__.py 文件,若没有新建 __init__.py (空内容文件)。

    • 建好后的完整路径:D:work_softwarepythonLibsite-packagesTestLibrary\__init__.py

    3、在 D:work_softwarepythonLibsite-packagesTestLibrary 文件夹下,新建自己的关键字文件,例如我的是 keywords.py

    • 输入自定义的关键字如下
    import time
    
    class ForTime():
    
        def __init__(self):
            pass
        
        def format_time(self):
            """
            返回格式化时间
            """
            return time.strftime("%Y-%m-%d %H-%M-%S")
    
    if __name__ == '__main__':
        print(ForTime().format_time())

    4、D:work_softwarepythonLibsite-packagesTestLibrary __init__.py 修改该文件内容为

    • 特别注意:在 __init__.py 文件中,创建 class 时,类名必须和自己的库文件夹名称相同。
    • 例如我的类名称是 TestLibrary,而创建的库名也是 TestLibrary → D:work_softwarepythonLibsite-packagesTestLibrary
    #__author:Mr.ZHENG  
    #data:2020/3/12
    
    from TestLibrary.keywords import ForTime    #导入刚刚定义的类
    
    class TestLibrary(ForTime):    #新建类继承 keywords.py 文件中的类,且这里的类名需要与自定义的库名一致
    
        ROBOT_LIBRARY_SCOPE = "GLOBAL"    #将我们的库设置全局

    5、在 robotframework 中,点击 Library 导入自定义库

    • 导入自定义库文件 TestLibrary,正确时为灰色字体(导入库文件,就不需要说明了)

    6、完整的文件结构应该是这样:

    • TestLibrary
    • ——- __init__.py
    • ——- keyword_s.py

    7、以下自己遇到的一些问题的debug

    • 尽量在文件的开头加上:# -- coding: utf-8 --,因为 python 默认编码是 ascii,所以如果代码中有(),或中文等等符号,会报错,提示编码不正确
    • 如果写的代码里边有中文,尽量在文件开头加上以下3行代码
    import sys
    
    reload(sys)
    
    sys.setdefaultencoding("utf-8")
    •  如果在初始化函数中,定义了形参,则必须在导入库的时候,也要提供对应的参数,不然会提示少给了变量的报错。
    def __init__(self,a,b):
    
        pass
    • 修改代码后,及时把对应的 .pyc 文件删除并且重启下 robotframework 后,再导入。
    • 如果还是有其他的报错,请点击 Tools→View RIDE log ,查看并 debug。
  • 相关阅读:
    SpringBoot集成Swagger2并配置多个包路径扫描
    SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入
    SpringBoot + SpringSecurity + Quartz + Layui实现系统权限控制和定时任务
    Redis数据持久化(RDB、AOF)
    so安全编译选项(栈溢出保护)
    Python调用Chrome下载文件
    AtomicInteger如何保证线程安全以及乐观锁/悲观锁的概念
    SpringCloud:Eureka的健康检测机制
    共享锁(S锁)和排它锁(X锁)
    Collection接口及其常用子类(java.util包)
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/11697331.html
Copyright © 2011-2022 走看看