Robotframework中自定义库的加载及注意事项

本文详细介绍了Robotframework中自定义库的加载要求,包括文件名与类名一致、避免使用相对路径创建文件、日志输出、库加载步骤、查看库信息的方法、错误日志排查、用例失败策略以及数据编码格式。遵循这些指导,可以有效管理和使用自定义库。

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

Robotframework中自定义库的加载及注意事项

1.自定义库的文件名必须与库的类名相同
如:文件名为HttpAutoLib.py则其类名必须为HttpAutoLib

class HttpAutoLib(object):
    def __init__(self):
        self.Http = E_Http('./config/http_conf.ini')
        self.MyHttp = My_Http('./config/http_conf.ini')
        self.Global = Global()

2.由于自定义库时,RF会自动实例库中的类,所以自定义看中无法使用相对路径寻找及创建文件
如:下面两种方式均无法正常找到对应的目录

log_file = os.path.join(os.g
### 如何在 RIDE 工具中调用其他测试用例的参数 在 Robot Framework 中,通过变量共享机制可以实现不同测试用例之间的参数传递。以下是具体的方法: #### 使用全局变量 可以通过 `${}` 或 `@{}` 声明全局变量,在不同的测试用例之间共享数据[^1]。例如: ```robot *** Variables *** ${GLOBAL_VAR} Initial Value *** Test Cases *** Test Case 1 Set Global Variable ${GLOBAL_VAR} New Value from TC1 Test Case 2 Log The value of GLOBAL_VAR is: ${GLOBAL_VAR} ``` 上述代码展示了如何在一个测试用例中设置全局变量,并在另一个测试用例中读取该变量。 #### 使用返回值传递参数 如果某个测试用例需要依赖于另一测试用例的结果,则可通过关键字 `Set Suite Variable` 将结果存储为套件级别的变量[^5]。例如: ```robot *** Keywords *** Get Current Time And Store ${current_time}= Get Time Set Suite Variable ${SUITE_TIME} ${current_time} *** Test Cases *** First Test Case Get Current Time And Store Second Test Case Log The time set by First Test Case was: ${SUITE_TIME} ``` 在此示例中,第一个测试用例设置了名为 `${SUITE_TIME}` 的套件级别变量,第二个测试用例可以直接访问并打印这个变量的内容。 #### 导入外部资源文件 当多个测试用例都需要某些公共配置或者初始状态时,可将这些共有的部分定义成单独的 `.resource` 文件[^4]。之后只需导入即可重复利用其中定义的关键字和变量。 ```robot # common.resource *** Variables *** ${COMMON_URL} http://example.com # test.robot *** Settings *** Resource path/to/common.resource *** Test Cases *** Sample Test Log Common URL defined in resource file: ${COMMON_URL} ``` 以上方式能够有效减少冗余代码,提高维护效率。 #### 动态加载或扩展模块 对于更复杂的场景,还可以创建自定义 Python 类来封装逻辑处理流程[^3]。然后借助 `Library` 指令引入此类至 RF 环境下运行。 ```python class SharedData: def __init__(self): self.data = None def store_data(self, data): self.data = data def retrieve_data(self): return self.data ``` 对应RF脚本如下所示: ```robot *** Settings *** Library SharedData.py *** Test Cases *** Store Data In Custom Lib Store Data Some Important Info Retrieve Stored Data From Another Tc ${retrieved_value}= Retrieve Data Should Be Equal As Strings ${retrieved_value} Some Important Info ``` 这种做法特别适合那些跨多组独立但又相互关联的功能模块间的数据交互需求。 --- ### 注意事项 - 如果两个测试用例属于同一个测试套件(Test Suite),那么它们天然就可以互相看到对方所设定的Suite Level以上的Variable;但如果跨越了不同的Suites边界,则需采用更高层次(如Global Varible)或者其他专门设计的技术手段来进行沟通联系。 - 需要确保所有涉及资源共享的地方都具备良好的错误恢复能力,防止因单点失败而导致整个批次作业崩溃的情况发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值