robot_framework的robot语法与python脚本之间的语法转换

Robot Framework是一个开源的自动化测试框架,支持关键字驱动和数据驱动的测试方法。它具有简单易学的语法和丰富的库,可以与多种语言进行集成,包括Python。

1. robot 的关键字

Robot Framework 是一个用于自动化测试和自动化任务的开源框架。它使用简洁的关键字驱动的语法,支持多种扩展库和插件,以及跨平台的运行环境。

以下是 Robot Framework 的常见语法和关键字含义的概述:

测试用例组织:

*** Settings ***:全局设置区块。
*** Variables ***:定义变量区块。
*** Test Cases ***:定义测试用例区块。
*** Keywords ***:定义关键字区块。

关键字定义:

Keyword Name:定义一个自定义关键字。
${var_name} 或者 @{list_name}:定义变量或列表。
Run Keyword:调用其他关键字执行。
Arguments:关键字的参数定义。

测试用例定义:

Test Case Name:定义一个测试用例。
Documentation:用于给测试用例添加文档说明。
Tags:为测试用例添加标签。
Setup:定义每个测试用例的前置条件。
Teardown:定义每个测试用例的后置条件。

断言和验证:

Should Be Equal:判断两个值是否相等。
Should Be True:判断给定的表达式的值是否为真。
Should Be False:判断给定的表达式的值是否为假。
Should Contain:判断一个字符串是否包含另一个字符串。
Should Match:使用正则表达式匹配字符串。

条件和循环:

Run Keyword If:根据条件判断是否执行关键字。
Run Keyword Unless:根据条件判断是否不执行关键字。
Run Keyword If All Critical Tests Passed:当所有关键测试通过时执行关键字。
Repeat Keyword:重复执行某个关键字。

文件和日志:

Create File:创建文件。
Delete File:删除文件。
Append To File:向文件中追加内容。
Log:输出日志信息。

以上仅是 Robot Framework 的一部分语法和关键字的示例,还有很多其他功能和扩展库可以使用。如果需要更详细的语法和关键字说明,建议查阅 Robot Framework 官方文档(https://robotframework.org/)。

关于使用 Python 代码语法转换为 Robot Framework 语法,你可以使用 Robot Framework 提供的 SeleniumLibrary、RequestsLibrary 等库进行自动化测试的编写。具体的代码案例可以参考这些库的官方文档和示例。

2.Robot Framework的语法包括以下几个部分:

  1. Settings(设置):配置测试环境和引入相关文件

    示例:

    *** Settings ***
    Documentation   This is a sample test suite.
    Library         SeleniumLibrary
    Suite Setup     Open Browser    https://www.example.com    chrome
    Suite Teardown  Close Browser
    
  2. Variables(变量):定义全局或局部变量,方便在测试中重复使用

    示例:

    *** Variables ***
    ${USERNAME}     example_user
    ${PASSWORD}     example_password
    
    *** Test Cases ***
    Valid Login
        Input Text      username_field    ${USERNAME}
        Input Password  password_field    ${PASSWORD}
        Click Button    login_button
    
  3. Test Cases(测试用例):定义具体的测试步骤和断言

    示例:

    *** Test Cases ***
    Login with valid credentials
        [Documentation]    This is a sample test case.
        [Tags]             Smoke
        Open Browser       https://www.example.com    chrome
        Input Text         username_field             ${USERNAME}
        Input Password     password_field             ${PASSWORD}
        Click Button       login_button
        Page Should Contain Element    welcome_message
    
    Logout
        [Documentation]    This is another sample test case.
        [Tags]             Smoke
        Log                 Logging out from the application.
        Click Element       logout_button
        Page Should Contain Element    login_button
    
  4. Keywords(关键字):定义可重复使用的测试步骤

    示例:

    *** Keywords ***
    Input Text
        [Arguments]      ${locator}    ${text}
        Input Text       ${locator}    ${text}
    
    Input Password
        [Arguments]      ${locator}    ${text}
        Input Password   ${locator}    ${text}
    
    Click Button
        [Arguments]      ${locator}
        Click Button     ${locator}
    
    Page Should Contain Element
        [Arguments]      ${locator}
        Page Should Contain Element      ${locator}
    
    Click Element
        [Arguments]      ${locator}
        Click Element      ${locator}
    

以上是Robot Framework的基本语法,可以根据具体需求进行扩展和定制。关于将Python的class和方法转换为Robot Framework的语法代码,可以按照以下方式操作:

  1. 将Python类转换为Robot Framework的库(Library)

    示例:

    class MyLibrary:
        ROBOT_LIBRARY_VERSION = 1.0
    
        def __init__(self):
            pass
    
        def keyword_one(self, arg1, arg2):
            # Python code here
            pass
    
        def keyword_two(self, arg1, arg2):
            # Python code here
            pass
    

    转换为Robot Framework的库:

    *** Settings ***
    Library    MyLibrary
    
    *** Test Cases ***
    Example Test Case
        Keyword One    arg1    arg2
        Keyword Two    arg1    arg2
    
  2. 将Python类中的方法转换为Robot Framework的自定义关键字

    示例:

    class MyLibrary:
        ROBOT_LIBRARY_VERSION = 1.0
    
        def __init__(self):
            pass
    
        def _internal_method(self):
            # Python code here
            pass
    
        def keyword_one(self, arg1, arg2):
            self._internal_method()
            # Python code here
            pass
    
        def keyword_two(self, arg1, arg2):
            self._internal_method()
            # Python code here
            pass
    

    转换为Robot Framework的关键字:

    *** Keywords ***
    Keyword One
        [Arguments]    ${arg1}    ${arg2}
        MyLibrary.Keyword One    ${arg1}    ${arg2}
    
    Keyword Two
        [Arguments]    ${arg1}    ${arg2}
        MyLibrary.Keyword Two    ${arg1}    ${arg2}
    
    *** Test Cases ***
    Example Test Case
        Keyword One    arg1    arg2
        Keyword Two    arg1    arg2
    

以上是将Python的类和方法转换为Robot Framework的语法代码案例。请根据具体需求进行调整和定制。

3. Robot关键字库是按照一定的分类进行的

  • Builtln
    变量定义、循环控制、数据计算、进制转换、断言判断、日志等等
  • Collections
    处理python列表和字典的相关操作
  • DateTime
    处理日期和时间转换的相关操作
  • Dialogs
    提供暂停执行和获取用户输入的方法
  • OperatingSystem
    提供和操作系统相关的关键字
  • Process
    操作进程相关的关键字,比如运行一个 .py脚本
    Invoke Python Script
    ${result} Run Process python test.py
  • Remote
    特殊库充当 Robot Framework 和其他地方的库之间的代理。实际的库可以在不同的机器上运行, 并且可以使用任何支持 XML-RPC 协议的编程语言来实现
  • Screenshot
    提供用于截取桌面屏幕截图的关键字
  • String
    用于生成、修改和验证字符串的库
  • Telnet
    可以连接到 Telnet 服务器并在打开的连接上执行命令
  • XML
    用于生成、修改和验证 XML 文件的库

Robot Framework是一个开源的自动化测试框架,使用关键字驱动的方法来编写测试脚本。下面是一份详细的Robot Framework语法学习教程:

注释:
在Robot Framework中,可以使用#符号来表示注释,注释一般用于解释测试脚本的目的或者特定部分的功能。

Settings设置:
通过Settings设置可以进行一些框架级别的配置,例如导入库、设置全局变量、设置超时时间等。常用的设置如下:

Documentation:设置测试套件的文档描述信息。
Library:导入需要使用的库,例如SeleniumLibrary用于Web自动化测试。
Resource:导入资源文件,资源文件中可以包含一些公共的关键字和变量。
Variables:定义全局变量,供整个测试套件使用。
Timeout:设置默认的超时时间。
测试用例: 测试用例是Robot Framework的核心,用于描述测试的步骤和预期结果。一个基本的测试用例包含以下内容:
用例名称:用例的名称,描述了该测试用例的目的。
关键字:测试用例执行的关键字和参数,关键字可以是内置的也可以是自定义的。
预期结果:期望的结果,用于判断测试是否通过。
关键字:
关键字是Robot Framework的执行单位,可以是内置关键字、库中的关键字,或者自定义关键字。关键字具有一定的功能和参数,可以通过关键字来完成测试步骤。例如使用内置关键字Open Browser打开浏览器,然后使用Input Text输入内容。

变量:
Robot Framework支持变量的使用,可以通过变量来存储和传递数据。变量可以在测试用例、关键字中定义和使用。变量的定义使用[Variable] ${变量名} 值的方式,例如[Variable] n a m e J o h n 定义了一个名为 {name} John定义了一个名为 nameJohn定义了一个名为{name}的变量,其值为John。

测试套件:
测试套件是一组相关的测试用例的集合。可以将测试用例根据不同的功能或者场景进行划分,并组织成测试套件。测试套件可以嵌套,形成树状结构。

运行测试:
在命令行中使用robot命令来执行测试脚本。例如robot test_suite.robot将执行名为test_suite.robot的测试套件。

以上是Robot Framework的基本语法学习教程,希望对你有帮助。如果需要更详细的教程,你可以查阅Robot Framework官方文档或者其他相关的教程资源。

加粗样式疑问: robot自动化测试,一定要先使用python实现自动化脚本,才能转成robot脚本呢 可以不用写自动化脚本直接写robot脚本吗

不是必须要先使用Python实现自动化脚本,然后再转换成Robot脚本。事实上,你可以直接编写Robot Framework的脚本,而无需使用其他语言编写自动化脚本。

Robot Framework提供了一种简洁的、易于阅读和编写的语法,称为Robot语法。你可以直接使用Robot语法编写测试用例、关键字和测试套件,而无需事先编写自动化脚本。

使用Robot语法编写的脚本示例:

*** Test Cases ***
Example Test
    [Tags]  Example
    Open Browser  https://www.example.com  chrome
    Input Text  id=txtUsername  username
    Input Text  id=txtPassword  password
    Click Button  xpath=//input[@type='submit']
    Page Should Contain Text  Welcome, user!

*** Keywords ***
Open Browser
    [Arguments]  ${url}  ${browser}
    # 自动化步骤实现

Input Text
    [Arguments]  ${locator}  ${text}
    # 自动化步骤实现

Click Button
    [Arguments]  ${locator}
    # 自动化步骤实现

Page Should Contain Text
    [Arguments]  ${text}
    # 自动化断言实现

请注意,如果你需要使用Robot Framework中未提供的自定义关键字或库,那么你可能需要编写一些Python代码来支持这些功能。然而,这并不意味着你必须先实现所有的自动化脚本,然后再转换成Robot脚本。你可以根据需要在任何时候编写和使用Python代码。

总结来说,你可以直接使用Robot Framework的语法编写自动化测试脚本,不一定需要先使用Python实现自动化脚本再转成Robot脚本。

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值