• RF学习使用记录【4】


    四 Extending Robot Framework

    4.1 Creating test libraries

      RF的测试能力由测试库支持决定,已经有许多的测试库,有一些随着RF框架安装,但是更多的需要创建新的库来支持。RF提供了API来支持个人用户自建库。

    4.1.1 Introduction

      RF使用Python语言写成的,所以支持使用python写的库,当使用jython运行RF的时候,可以使用java来写库,如果是由纯python写的代码可以在python和jython环境下运行。使用python的时候也可以通过python c api使用C语言写的库,使用ctypes模块来完成python库和C代码的交互。也可以将外部脚本和工具作为独立进程运行。

      创建库的指导文档:http://code.google.com/p/robotframework/wiki/PythonTutorial

    Different  test library APIs:

    RF 支持三种不同的API,所有的API是以静态API为基础:

    Static API:最简单的就是使用python模块中的方法直接映射为关键字,关键字和该方法有相同的参数。关键字通过Return关键字返回日志和异常输出失败信息。

    Dynamic API

    Hybrid API:

    4.1.2 Creating test library class or module

      测试库可以是一个python模块也可以是python和java类。

    Test library names

      测试库的名称就是在导入库的时候使用的名称,例如一个MyLibrary.py的文件创建一个名称为MyLibrary的库。python的类包含在模块中,如果python中class的名称和module的名称一样,例如Mylib.py中定义一个Mylib的类,import Mylib包之后则可以直接使用Mylib来使用该类,如果名称不同则必须使用模块名和类名来调用类如Mylib.Myclass.其中python语言的库支持接收参数,且可以使用变量。

    *** Settings ***
    Library    MyLibrary     10.0.0.1    8080
    Library    AnotherLib    ${VAR}

    上面的第一个是python模块,第二个是java,其对应的定义如下:

    from example import Connection
    
    class MyLibrary:
    
        def __init__(self, host, port=80):
            self._conn = Connection(host, int(port))
    
        def send_message(self, message):
            self._conn.send(message)
    public class AnotherLib {
    
        private String setting = null;
    
        public AnotherLib(String setting) {
            setting = setting;
        }
    
        public void doSomething() {
            if setting.equals("42") {
                // do something ...
            }
        }
    }

    Test library scope

      库文件作为类有一个内部状态,这个状态可以由关键字和参数来修改。由于该状态可能会影响关键字的运行动作,所以需要确定不会多个用例之间不会意外影响。这种相互影响的存在可能导致一些很难debug的问题。

      RF默认对每一个用例都在调用库时候创建独立的实例来努力保证用例的相互独立,但是这并不能全部适合,因为有时候用例之间需要共享一些状态。

    mark

  • 相关阅读:
    Js操作Select大全
    Mybatis 中获得 connection
    A②权限管理角色列表——ui效果;表格展开列;添加编辑删除自己写注意点;id的传参
    A③权限管理表格展开得权限思路;删除标签按钮实现思路
    报错记录:vue.runtime.esm.js?2b0e:619 [Vue warn]: Invalid prop: type check failed for prop "data". Expected Array, got Object
    表单校验小tip
    A①权限管理权限列表——git创新分支;请求数据带有参数type;权限等级tag标签;权限管理思路
    网页导航菜单弹出子菜单的制作
    细线表格的制作方法
    下拉的DIV+CSS+JS二级树型菜单,刷新无影响
  • 原文地址:https://www.cnblogs.com/lvxiaobo616/p/6639221.html
Copyright © 2020-2023  润新知