ROBOTFRAMEWORK如何在其他测试用例中使用Test Setup及相关报错处理
Robot Framework 问题解决方案
1. 报错「Setting 'Test Setup' is not allowed in suite initialization file」解决方法
报错原因
Robot Framework 的套件初始化文件(__init__.robot)仅支持配置套件级别的设置项(如Suite Setup、Suite Teardown),不支持配置用例级别的设置项(Test Setup、Test Teardown),属于框架原生规则限制。
修复方案
你可以从两种方案里选符合你需求的:
- 方案一:将
Test Setup配置迁移到你已引入的公共资源文件(main.resource)的*** Settings ***块中,所有导入了该资源文件的测试套件,都会自动继承这个Test Setup配置,无需每个测试套件重复编写。 - 方案二:保留
__init__.robot里的公共关键字定义,在对应目录下的每个测试套件文件的*** Settings ***块中单独添加Test Setup Test setup from __init__.robot配置即可。
2. 数据库数据调取+Test Setup复用实现方法
按照以下步骤实现即可:
步骤1:安装依赖库
根据你使用的数据库类型安装对应依赖,以MySQL为例:
pip install robotframework-databaselibrary pymysql
步骤2:封装数据库查询公共关键字
你可以将该关键字定义到公共资源文件中,方便所有测试套件调用:
*** Settings *** Library DatabaseLibrary *** Keywords *** 从数据库查询测试数据 [Arguments] ${查询SQL} # 数据库连接参数可存到公共变量文件统一管理 Connect To Database pymysql ${数据库名} ${账号} ${密码} ${数据库地址} ${端口} @{查询结果} Query ${查询SQL} Disconnect From Database [Return] ${查询结果}
步骤3:整合到Test Setup实现数据预加载
在你要复用的Test Setup关键字中调用查询逻辑,将获取到的数据库数据设置为套件级变量,所有同套件下的测试用例均可直接调用:
*** Keywords *** Test setup from __init__.robot # 调取数据库获取测试用例需要的填充数据 ${测试用户数据} 从数据库查询测试数据 SELECT username,phone FROM test_user LIMIT 1; # 设置为套件级变量,所有当前套件下的测试用例都可直接使用 Set Suite Variable ${测试用户名} ${测试用户数据[0][0]} Set Suite Variable ${测试用户手机号} ${测试用户数据[0][1]} # 原有逻辑保留 access some menu
步骤4:测试用例中直接使用变量填充输入
*** Test Cases *** 提交用户信息测试 输入文本 用户名输入框 ${测试用户名} 输入文本 手机号输入框 ${测试用户手机号} 点击按钮 提交按钮 页面应该包含 提交成功
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

