Robot Framework-Resource及关键字 的使用

本文介绍如何使用RobotFramework进行软件自动化测试,包括业务逻辑封装、变量使用等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/buaawp/article/details/50804150


在进行软件自动化测试时,我们设计并编写好一个测试脚本的业务逻辑之后,需要将其中的业务数据提取为变量,并对业务逻辑进行封装。在后续的测试过程中,只需设置每次测试的测试数据,而不必更改业务逻辑。

举个例子,我们对baidu搜索进行兼容性测试时,我们的业务逻辑是

[打开浏览器] - [输入搜索内容] - [点击搜索按钮] - [截图保存] - [关闭浏览器]

而对应的业务数据,就是我们所输入的“搜索内容”。

在后续的测试中,我们应该将这一逻辑封装为一个关键字(这里可以理解为一个自定义函数,并将搜索内容作为输入变量)。每次测试时,只需要改变“搜索内容”这一变量即可。

1.建立资源

在导航树中的项目节点点击鼠标右键,选择【New Resource】,打开新建Resource的对话框,填写Resource名称“业务关键字”

2.建立关键字

在刚刚建立的【业务关键字】节点点击右键,选择【New User Keyword】,建立新关键字“百度搜索”

3.为关键字添加变量

点击【百度搜索】节点,展开编辑面板的【Settings】配置,点击Arguments的【edit】按钮,添加变量

按照使用说明,这里的变量使用 ${key} 的格式,多个变量之间使用 | 进行分割。这里我们演示一下多变量。使用${searchword}|${result}

4.为关键字设置业务逻辑
需要注意一下的是,这里的关键字可以理解为一个“函数”的概念,我们需要在TestCase中调用的是这个“关键字”。我们刚刚添加的变量是“关键字”的一部分,在TestCase中体现为具体的业务数据。

作为一个“函数”,除了变量外,我们还需要为之编写业务逻辑:

对应的脚本为

    Open Browser    https://www.baidu.com/    ff
    Input Text    id=kw    ${keyword}
    Click button    id=su
    Sleep    2
    ${title}    Get Title
    Should Contain    ${title}    ${result}
    Capture Page Screenshot    ff.png
    Close Browser

其中${searchword}和${result}表示我们的关键字在被TestCase调用时,传入的数据。而${title}则是作为一个中间过程的临时变量进行使用。

5.为TestSuite添加Resource

与Library类似,在Resource编写完成自后,需要在TestSuite进行 一下引用。

6.编写TestCase

设置完Resource之后,添加一个TestCase,并在其中使用我们刚刚定义的关键字

7.运行测试,获取测试结果

总结:

RobotFrame Work 中的Resource 及关键字给我们提供的是一种类似于“函数”概念的用户自定义机制。我们可以将一些通用的业务过程封装为一个关键字,并声明业务中的业务数据。在编写测试用例时,直接调用关键字,设置业务数据即可。而一旦业务过程发生变化,或元素定位发生变化,我们只需要更改关键字中的业务逻辑即可,而不必更改每个测试用例。

在使用过程中,有些验证逻辑我们可能无法仅仅通过RobotFrame Work 的内置函数或自定义关键字来实现,这个时候需要我们自己编写外部函数来进行验证,也就是需要自定义外部的Library。下一篇文章,我们将会对用户自定义Library进行介绍。


<think>好的,我现在要解决用户的问题:如何在Robot Framework中正确导入resource文件。首先,我需要回忆一下Robot Framework的基本结构和资源文件的用途。资源文件通常用来存放用户自定义的关键字、变量等,方便在不同的测试套件中复用。用户可能在使用过程中遇到了路径问题或者语法错误,导致资源文件无法正确导入。 根据用户提供的引用[2],里面提到Import Resource指令需要绝对路径,并且使用斜杠作为路径分隔符,即使在Windows系统下也是如此。这可能是一个关键点,因为Windows通常使用反斜杠,但Robot Framework要求统一使用斜杠。所以用户在编写路径时需要注意这一点。 接下来,用户可能需要知道如何正确使用Import Resource语法。根据引用[4],Arguments部分可能有不同的参数形式,但在导入资源文件时,正确的语法应该是使用Import Resource后面跟上资源的路径。需要确认路径是否为绝对路径,或者是否可以使用相对路径。但根据引用[2],路径必须是绝对路径,所以用户需要确保路径的正确性。 另外,用户提供的引用[3]中提到通过变量文件来管理不同环境的变量,虽然这与资源文件不同,但可能用户在导入资源时也涉及到路径的动态调整。不过资源文件的导入通常是静态的,所以主要还是关注路径的写法。 现在需要整理出步骤:首先确定资源文件的路径,然后使用正确的语法导入。同时,检查路径中的分隔符是否为斜杠,避免使用反斜杠。另外,可能需要提醒用户关于相对路径和绝对路径的问题,或者如何设置工作目录以确保路径正确。 可能的常见错误包括路径错误、使用错误的分隔符、文件名拼写错误等。用户可能在这些地方出现问题,所以需要在回答中强调这些注意事项。同时,给出一个示例代码会更有帮助,比如展示正确的导入语句和文件结构。 还需要注意,资源文件的后缀通常是.resource或.txt,用户需要确认文件类型是否正确。此外,资源文件内部的关键字和变量定义是否符合Robot Framework的语法,否则即使导入了也无法使用。 总结一下,正确的步骤应该是: 1. 使用绝对路径,路径中使用斜杠。 2. 在测试套件或用例文件中使用Import Resource关键字。 3. 确保资源文件的内容正确无误。 然后根据这些步骤,形成结构清晰的回答,并附上示例代码。同时,生成相关问题帮助用户进一步了解资源文件的使用和其他相关操作。</think>### 如何在Robot Framework中正确导入Resource文件? 在Robot Framework中,资源文件(`.resource`或`.robot`)用于存储可复用的关键字、变量或测试数据。以下是导入资源文件的分步说明: --- #### **1. 基本语法** 使用`Resource`关键字在测试套件或资源文件中导入资源文件,语法为: ```robotframework *** Settings *** Resource path/to/resource_file.resource ``` - **路径格式**:必须使用绝对路径,且路径分隔符为斜杠`/`(即使Windows系统也需遵守此规则)[^2] - **文件类型**:支持`.resource`或`.robot`后缀。 --- #### **2. 路径处理示例** 假设资源文件结构如下: ``` project/ ├─ tests/ │ ├─ login_tests.robot ├─ resources/ │ ├─ common_keywords.resource ``` 在`login_tests.robot`中导入`common_keywords.resource`: ```robotframework *** Settings *** Resource ${EXECDIR}/resources/common_keywords.resource ``` - **`${EXECDIR}`**:表示项目根目录的绝对路径,避免手动硬编码路径。 --- #### **3. 常见错误及解决方法** - **错误1**:`Resource file 'path' does not exist` **原因**:路径错误或文件名拼写错误。 **解决**:检查路径是否从根目录开始,使用`/`分隔符,并确保文件名正确。 - **错误2**:`Importing resource file failed` **原因**:资源文件语法错误(如关键字未定义或变量格式错误)。 **解决**:验证资源文件内容是否符合Robot Framework语法。 --- #### **4. 动态导入资源文件** 若需根据环境动态导入资源文件,可结合变量文件(`.py`)实现: ```robotframework *** Settings *** Variables ${ENV}_vars.py # 根据环境变量加载不同变量文件 Resource ${RESOURCE_PATH}/common_keywords.resource ``` 通过命令行指定环境变量: ```bash robot --variable ENV:test tests/login_tests.robot ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值