Robot Framework中如何摆脱API密钥依赖访问员工应用API?
摆脱手动API密钥配置的Robot Framework方案
作为经常用Robot Framework做API自动化的开发者,我太懂你每次切换员工就得手动找密钥、改配置的麻烦了!下面给你几个实用的方案,帮你彻底消除这个依赖:
1. 自动通过身份认证流程获取动态Token
如果你的员工应用支持OAuth2.0(比如密码模式)或者账号密码登录获取Token的接口,那这是最理想的方案。你可以写一个关键字,用员工的账号密码自动请求Token,完全替代手动复制密钥的操作。
示例关键字:
Get Employee API Token [Documentation] 根据员工账号密码自动获取API访问Token [Arguments] ${emp_username} ${emp_password} # 先创建认证接口的会话 Create Session auth_session ${base_url_api} disable_warnings=1 # 构造登录请求体 &{auth_payload}= Create Dictionary username=${emp_username} password=${emp_password} # 发送登录请求获取Token ${token_response}= Post Request auth_session /api/auth/login json=${auth_payload} # 从响应中提取Token(根据实际接口返回结构调整) ${api_token_key}= Set Variable ${token_response.json()['access_token']} # 关闭认证会话(可选) Delete All Sessions [Return] ${api_token_key}
然后修改你原来的关键字,集成这个自动获取Token的逻辑:
Create Session And Post Request With Auto Token [Documentation] 自动获取员工Token并发送Post请求 [Arguments] ${request_body} ${emp_id} ${module_name} ${status_code} ${emp_username} ${emp_password} # 自动获取当前员工的Token ${api_token_key}= Get Employee API Token ${emp_username} ${emp_password} # 后续流程和你原来的一致 Create Session session ${base_url_api} disable_warnings=1 &{headers}= Create Dictionary Content-Type=application/json x-api-key=${api_token_key} ${api_response}= Post Request session ${emp_id}/${module_name} json=${request_body} headers=${headers} log to console API URL : ${api_response.url} Verify API Status Code ${api_response} ${status_code} [Return] ${api_response}
2. 从配置文件批量加载员工密钥
如果每个员工的API密钥是固定不变的,你可以把所有员工的密钥存在一个配置文件里(比如JSON/YAML),然后写一个关键字根据${emp_id}自动读取对应的密钥,不用每次手动输入。
第一步,创建配置文件employee_api_keys.json:
{ "emp_001": "your_emp001_api_key", "emp_002": "your_emp002_api_key", "emp_003": "your_emp003_api_key" }
第二步,写加载密钥的关键字:
Load Employee API Key [Documentation] 根据员工ID从配置文件加载对应的API密钥 [Arguments] ${emp_id} # 读取配置文件内容 ${config_content}= Get File ./employee_api_keys.json # 解析JSON为字典 ${emp_key_map}= Evaluate json.loads('''${config_content}''') json # 根据员工ID获取密钥 ${api_token_key}= Set Variable ${emp_key_map[${emp_id}]} [Return] ${api_token_key}
第三步,集成到你的原有关键字:
Create Session And Post Request With Auto Token [Documentation] 自动加载员工密钥并发送Post请求 [Arguments] ${request_body} ${emp_id} ${module_name} ${status_code} # 自动加载当前员工的密钥 ${api_token_key}= Load Employee API Key ${emp_id} # 后续流程不变 Create Session session ${base_url_api} disable_warnings=1 &{headers}= Create Dictionary Content-Type=application/json x-api-key=${api_token_key} ${api_response}= Post Request session ${emp_id}/${module_name} json=${request_body} headers=${headers} log to console API URL : ${api_response.url} Verify API Status Code ${api_response} ${status_code} [Return] ${api_response}
3. 利用管理员模拟员工身份接口(如果应用支持)
有些企业内部应用会提供管理员专属的接口,允许用管理员Token模拟任意员工的身份,获取临时的员工API凭证。这种方案不用维护每个员工的密钥或账号,只用维护一个管理员Token即可。
示例关键字:
Simulate Employee To Get Token [Documentation] 使用管理员Token模拟员工身份获取API密钥 [Arguments] ${emp_id} ${admin_api_token} Create Session admin_session ${base_url_api} disable_warnings=1 &{headers}= Create Dictionary x-api-key=${admin_api_token} Content-Type=application/json &{simulate_payload}= Create Dictionary employee_id=${emp_id} # 发送模拟身份请求 ${simulate_response}= Post Request admin_session /api/admin/simulate-employee json=${simulate_payload} headers=${headers} # 提取员工的临时Token ${api_token_key}= Set Variable ${simulate_response.json()['employee_access_token']} Delete All Sessions [Return] ${api_token_key}
选择建议
- 如果应用支持账号密码登录获取Token,优先选方案1,最安全也最灵活;
- 如果密钥固定不变,方案2配置简单,适合小规模员工列表;
- 如果有管理员权限且应用支持模拟功能,方案3最省心,不用维护大量员工凭证。
你可以先查看应用的API文档,或者咨询开发团队,确认哪种方式更适合你的场景~
内容的提问来源于stack exchange,提问作者vectyvec
相关产品推荐
相关产品推荐

