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的语法包括以下几个部分:
-
Settings(设置):配置测试环境和引入相关文件
示例:
*** Settings *** Documentation This is a sample test suite. Library SeleniumLibrary Suite Setup Open Browser https://www.example.com chrome Suite Teardown Close Browser
-
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
-
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
-
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的语法代码,可以按照以下方式操作:
-
将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
-
将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脚本。