zoukankan      html  css  js  c++  java
  • Robot Framework--RIDE面板与库的说明

    Robot Framework的测试用例是以project作为单位进行管理的。
    一个project可以包含多个Test Suite文件,每一个Test Suite可以包含多条测试用例
    一个Test Suite文件包含四段内容:Setting、Variable、Testcase、Keyword

    1. project----Edit区域

    大体分成4个部分。

    (1)加载外部文件

    Library:加载测试库,主要是[PYTHON目录]Libsite-packages里的测试库。

    Resource:加载资源,主要是你工程相关的资源文件。

    Variables:加载变量文件,不怎么用,可暂时忽略。

    (2)定义内部变量

    Add Scalar:定义变量。

    Add List:定义列表型变量。

    Add Dict:

    (3)元数据定义

    Add Metadata:定义元数据。

    (4)settings

    一般settings是隐藏的,点击settings按钮,则会显示。

    Documentation:文档,每一项都有。可以给当前的对象加入文档说明。

    Suite Setup:指的是测试套件启动的时候就执行某个关键字。设置Test Suit执行前的动作(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)

    Suite Teardown:指的是测试套件结束的时候就执行某个关键字。设置Test Suit执行完成后动作

    Test Setup:指的就是案例启动的时候执行某个关键字。设置每一个TestCase执行前动作

    Test Teardown:指的就是案例结束的时候执行某个关键字。设置每一个TestCase执行完成后的动作

    Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。

    Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

    Force Tags:在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元素设置的tags。

    Default Tags:默认标记,其实和Force Tags没啥区别的。

    Arguments:传入参数。

    Return Value:返回值。

    2. project----Text Edit区域

    测试套件测试用例文本信息。

    3.project----Run区域

    Execution Profile:选择运行方式,里面有pybot、robot、jybot和custom script。默认pybot即可。

    Start:运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。

    Stop:停止案例。

    Report和Log: 报告和日志,要运行之后才能点击。他们的区别,报告更多是结果上的展示,日志更多是过程的记录,更多使用的还是日志。

    Autosave: 自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。

    Arguments: pybot的参数(或者jybot等)。完整版的参数可以在doc命令行输入pybot.bat --help

    Only Run Tests with these Tags: 只运行这些标记的测试案例。在case的setting里可以添加tag。

    Skip Tests with these Tags: 跳过这些标记的测试案例。在case的setting里可以添加tag。

    4.test case--Edit区域

    (1)settings

    Documentation:文档,每一项都有。可以给当前的对象加入文档说明。

    Setup指的就是案例启动的时候执行某个关键字。

    Teardown指的就是案例结束的时候执行某个关键字。

    Tags:标记某个测试用例。在Run区中Only Run Tests with these TagsSkip Tests with these Tags,会通过这个标志位来识别是否运行或跳过用例。

    Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

    Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。

    (2)表格区

    最重要的部分,编写测试用例。

    第一列一般写的是关键词,关键词的来源包括BuiltIn库,第三方导入库,自己编写的导入库。

    使用技巧:

    通过ctrl+alt+space可以自动带出相关关键字。以及相关用法,里边有对入参的说明。

    Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示关键字的相关用法。

    第二三四五列,一般是入参,红色的表示必填的入参。浅灰色表示选填的入参。深灰色表示无需填写。

    输入sho再同时按住ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。

    对于已输入的关键字,忘了其用法,可以点击输入框再同时按住ctrl+alt+space键,即可查看该关键字的用法。

     4.test case测试用例--Text Edit区域

    同project。

    5.test case测试用例--Run区域

    同project。

    6.Robotframework库的介绍

    (1)BuiltIn内建库

    作为一门表格语言,为了保持简单的结构,RF没有像别的高级语言那样提供类似if else while等内置关键字来实现各种逻辑功能,而是提供给了用户BuiltIn库。如果用户想在测试用例中实现比较复杂的逻辑,

    那就需要对BuiltIn中的重要关键字有一些了解。另外,BuiltIn库中还封装了很多常见方法和能够控制RF运行状态的关键字,如果想用好RF,一定要对BuiltIn库中的函数有一个比较全面的理解。

    点击F5可查看某个函数的具体用法。
    如Should Contain有两个入参,下方还有具体的说明。
    Should Contain item1 item2  :item2要在item1里,比如说item1为hello  item2为he  则通过。
    Convert To系列关键字:
    Convert To Binary
    Convert To Boolean
    Convert To Hex 
    Convert To Integer 
    Convert To Number 
    Convert To Octal 
    Convert To String
    做类型转换,将某个值转换为相对应的类型。
     
    Run keyword系列关键字:
    Run Keyword If
    Run Keyword If All Critical Tests Passed
    Run Keyword If All Tests Passed
    Run Keyword If Any Critical Tests Failed
    Run Keyword If Any Tests Failed
    Run Keyword If Test Failed
    Run Keyword If Test Passed
    Run、Keyword If Timeout Occurred
    这些关键字能根据一个判断条件的真假来看是否执行关键字。一般使用这些关键字来实现高级语言中的ifelse功能。最常用的是Run Keyword If 和 Run Keyword unless 他们俩实现的效果正好相反。
     
    Exit For Loop关键字:
    用作退出循环,一般和Run Keyword If关键字联合使用,来实现条件退出。
     
    Wait Until Keyword Succeeds关键字:
    这是一个将异步调用变为同步调用的关键字。举一个例子:如果call某个WebService,并且需要得到返回结果才能做下一部操作。我们就会用到这个关键字。
     
    比如日期相关的关键字GetTime。
    让测试暂停的Sleep等。都相当有用。
    RF目前仅有2个内置关键字:FOF 和 IN,来实现循环结构。功能还是比较弱的。
     
    了解关键字的用法,直接点击F5,在Search term中,输入关键字,按回车键,可以在下方对这个关键字的入参用法进行说明。

    7.第三方库

    只有内建的库往往还不能满足需求,还可以导入第三方库,如操作页面的Selenium2Library。

    第三方库,主要是[PYTHON目录]Libsite-packages里的库,一般安装的库会在此目录下。

    在测试套件下的工作区的右方,点击Library,在弹出框的name栏输入“Selenium2Library”,点击OK即可。

    当工作区的Library那一行黑色显示,说明导入成功(如果显示红色说明导入不成功,可自行百度解决)。

    点击F5快捷键查看,可查看多了一个Selenium2Library的库。

    8.导入自己编写的库

    比如说有些功能想自己编写,比如说如下代码,想要导入实现校验url的功能,文件名为Myimport.py(文件名随意取的,最好是英文的),该文件保存在D: obotframeworkMyLibrary,

    此时需要将该路径添加到[PYTHON目录]Libsite-packages下的后缀名为pth的文件(文件名随意取的,最好是英文的)中。

    # -*- coding:utf-8 -*-
    """
    自己编写,验证获得一个URL地址的扩展名。
    """
    import re
    
    def Matchurl(str0):
        u'''
        验证url的有效性
        '''
        str1=re.split("[.]",str0)
        listt = ['php','html','asp','jsp']
        if str1[-1] in listt:
            return "TRUE"
        else:
            return "FAIL"
    
    if __name__=='__main__':
        str_input='hehe.php'
        print match_url(str_input)

    然后重启ride,在测试套件的工作区的右方,点击Library,在弹出框的name栏输入“Myimport”,点击OK即可。

    点击F5,即可看到导入自己编写的库。

    注意,在Myimport.py文件中编写函数描述时,前面要加u,否则F5查看时,会乱码。

    注意,在Myimport.py文件中函数命名为MatchUrl和Match_Url,在ride中都会解析为Match Url。

    在project中加的资源resource在这也可显示:login方法包含两个参数

     9.外部资源(External Resources)

    外部资源是指不在Project管辖范围内的资源文件,什么样的资源文件才算不在管辖范围内呢?如果是目录的Project,只要不在自己目录内的资源文件都算是外部资源;如果是文件的Project,因为本身无法创建资源文件,

    其他的资源文件都算是他的外部资源,即使是和Project文件平级的。

    在External Resources外部资源上单击鼠标右键,只有『Add Resource』命令,用来添加已有的外部资源文件。Project内部的资源文件没有必要再添加,因为它已经显示在资源区了。

    添加外部资源文件,在External Resources上添加只能看看,真正的引用还是要到Test Suite或者Resource那里去添加才行。 

  • 相关阅读:
    [转]C++中cin、cin.get()、cin.getline()、getline()函数的简单总结
    Assert 的用法
    [转]C/C++作用域详解
    C++ 的getline问题
    字符数组的定义与赋值
    [转] 字符数组的赋值
    [转]标准C++中的string类的用法总结
    [转]memmove、memcpy和memccpy
    关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
    Java动态代理演变之路
  • 原文地址:https://www.cnblogs.com/dydxw/p/10535427.html
Copyright © 2011-2022 走看看