zoukankan      html  css  js  c++  java
  • RF框架自定义测试库开发

    静态库

    方法(methods)直接映射为关键字名称。关键字接受和方法相同的参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过return 来返回结果。

     创建步骤:

    ▲ 首先,在D:xxxxxLibsite-packages目录下新建包名【比如MyLibrary】

    ▲ 其次,在__init__.py文件用于定义自定义库的相关信息,需要用到的keywords调用继承和声明。

    注意:类名必须跟创建的包名MyLibrary一模一样,否则导入库会失败。

    ▲ 再次,在D:xxxxxxLibsite-packages/MyLibrary目录下新建version.py文件用于描述自定义测试库的版本信息

    ▲ 最后, MyLibrary目录下新建MyKeywords类文件,用于完成想封装的各项功能方法,在函数定义文档注释用于导入RF框架,会显示该库的关键字文档内容信息

    RIDE中导入库,用文件夹名字导入就行。

    如果有多类需要引用,比如引用MyKeywords和MyTest1类,如下方法:

    • 导入测试库

    • 可看测试库信息

    • 执行脚本

    • 输出结果

    动态库

    RF的动态API方式,是利用get_keyword_names、run_keyword、get_keyword_arguments、 get_keyword_documentation四个固定名称的方法来运行关键字。只要你创建的类有这四个方法(主要是前两个),就可以让RF识别关键字。

    动态库和混合库定义版本信息和init文件方法是一样,只是类文件封装方法及机制处理不同。

    • RF的动态API方式,是利用get_keyword_names、run_keyword、get_keyword_arguments、 get_keyword_documentation四个固定名称的方法来运行关键字,只要你创建的类有这四个方法(主要是前两个),就可以让RF识别关键字。
    • get_keyword_names方法实际是告诉RF,我们的库中有哪些关键字。RF会从get_keyword_names方法的返回值中读取关键字名称。

    • run_keyword方法则实际执行关键字对应的代码。run_keyword第一个参数是需要执行的关键字的名称,第二个参数是关键字的参数。

    • get_keyword_arguments方法告诉RF,每个关键字的参数是什么样的。它的参数是关键字的名称,返回值则是关键字的参数。

    • get_keyword_documentation方法告诉RF,每个关键字的说明文档的内容。

    导入库后,查看信息如下图所示:

    混合库

    顾名思义,混合API方式是静态API和动态API方式的混合使用。混合API方式,使用get_keyword_names方法告知RF关键字有哪些,但是不使用run_keyword方法执行关键字。执行方式和静态API相同,执行和关键字同名的方法。

    ▲ 这个例子中,使用get_keyword_names方法告诉RF有“first_keyword”和"second_keyword"两个关键字。其中 “first_keyword”关键字执行first_keyword方法的代码。执行"second_keyword"关键字时,由于没有对应的方法, 所以RF先执行“__getattr__”方法,然后获取“__getattr__”方法返回的值。

    ▲ 注意:这里返回的值是一个可以被RF执行的方法(或函 数),而不是一个字符串。RF找到这个方法(或者函数)后,再执行代码。

    测试库文档

    测试库文档其实就是代码里的document注释,通常用3个双引号括起来,通常建议写在代码注释,这样有一个好处,RF提供了libdoc工具,可以很方便生成一份测试库文档,具体命令参考:

    生成后的文档样本如下:

    每次代码更新,就同步更新document注释,只需重新执行命令生成新的文档即可,文档可以直接为他人使用提供参考便利。

    可以创建文档:

    • 测试库实现 Python 或 Java 使用正常 静态库API,
    • 测试库使用 动态API ,包括远程库
    • 资源文件 

    另外可以使用Libdoc创建的XML规范 作为输入。

    选项

    - f - - -格式 < html | xml >
      指定是否要生成HTML或XML输出。 如果不使用此选项,格式 扩展的输出文件。
    - f ——docformat <机器人其他html文本| | | >
      指定源文件的格式。 可能的 值是机器人框架的文档格式, HTML、文本和恰好。 默认值 可以指定在测试库源代码和 初始默认值 机器人 。 2.7.5新机器人框架。
    - n ——名字 <新名称>
      集的名字记录库或资源。
    - v ——版本 <新版本>
      集的版本库或记录 资源。 测试库的默认值 从源代码 
    - p ——pythonpath环境 <路径>
      额外的位置搜索库 和资源同样时 运行测试 
    - e ——逃避 <什么:>
      转义字符的问题在控制台。 什么 角色的名字逃脱吗 和 与 是字符串来逃避它。 在列出可用的逃 ——帮助 输出。
    - h ,——帮助 打印这个帮助。
    资源文件的路径

    资源文件必须使用指定的路径。 如果路径是 不存在,资源文件中所有目录搜索 的 模块搜索路径 同样当执行测试用例。

    生成文档

    在HTML或XML格式生成文档时,输出文件必须 被指定为第二个参数后,图书馆/资源名称或路径。 输出格式是自动从扩展但也可以设置 使用 - - -格式 选择。

    例子:

    python -m robot.libdoc OperatingSystem OperatingSystem.html
    python -m robot.libdoc --name MyLibrary Remote::http://10.0.0.42:8270 MyLibrary.xml
    python -m robot.libdoc test/resource.html doc/resource_doc.html
    jython -m robot.libdoc --version 1.0 MyJavaLibrary.java MyJavaLibrary.html
    jython -m robot.libdoc my.organization.DynamicJavaLibrary my.organization.DynamicJavaLibrary.xml
    

    查看控制台信息

    Libdoc有三个特殊的命令在控制台上显示信息。 使用这些命令输出文件的名称,而是和他们可以 也附加参数。

    • 列表
    列表的名称关键词库/资源包含。 可以 限于只显示某些关键词通过可选模式 作为参数。 关键词列出其名称是否包含给定的模式。
    • 显示
    显示库/资源文档。 只能是有限的显示吗 某些关键词通过名称作为参数。 如果显示关键字 它的名字匹配任何名字。 特别的观点 介绍 将显示 只有图书馆引进和导入部分。
    • 版本
    显示库版本

    可选模式给 列表显示。 同时也接受 * ?作为通配符。

    例子:

    python -m robot.libdoc Dialogs list
    python -m robot.libdoc Selenium2Library list browser
    python -m robot.libdoc Remote::10.0.0.42:8270 show
    python -m robot.libdoc Dialogs show PauseExecution execute*
    python -m robot.libdoc Selenium2Library show intro
    python -m robot.libdoc Selenium2Library version
    
  • 相关阅读:
    cocos2d-x 配置教程
    cocos2d-x 学习笔记之 CCMenuItemToggle用法
    cocos2d-android-1学习之旅01
    博客园的代码高亮
    JAVA POI 应用系列(2)--读取Excel
    JAVA POI 应用系列(1)--生成Excel
    spring和hibernate的整合
    学习笔记
    mongorestore 命令行恢复 bson
    mysql 插数据 ,版本不一致 需要修改 utf8 COLLATE utf8_general_ci
  • 原文地址:https://www.cnblogs.com/yinjia/p/11920504.html
Copyright © 2011-2022 走看看