Robot Framework中如何对变量做算术运算并传入POST API请求体
没问题,我帮你梳理清楚这个Robot Framework的自动化流程,一步步实现你要的库存调整逻辑:
Robot Framework 库存自动调整实现方案
1. 先准备必要依赖与库导入
首先确保你已经安装了robotframework-requests库(用来处理API请求),然后在测试套件开头导入:
*** Settings *** Library RequestsLibrary
2. 调用GET API获取当前库存值
先发送GET请求拿到目标商品的库存,提取并存储到${quantity1}变量里,记得转成数值类型避免字符串比较问题:
*** Test Cases *** Auto Adjust Inventory Threshold # 发送GET请求获取库存(替换成你的实际API地址) ${get_response}= Get Request https://your-inventory-api.com/items params={"itemId": ${Itemid}} # 验证请求成功(可选但推荐,避免后续逻辑基于错误响应) Should Be Equal As Strings ${get_response.status_code} 200 # 从响应JSON中提取库存值(假设返回的JSON里有"quantity"字段,根据实际结构调整) ${quantity1}= Get From Dictionary ${get_response.json()} quantity # 转换为整数类型,确保后续数值比较准确 ${quantity1}= Convert To Integer ${quantity1}
3. 条件判断与算术运算
接下来判断是否满足调整条件,符合的话计算需要调整的库存值:
# 条件:库存大于4且商品ID为1时执行更新 IF ${quantity1} > 4 AND ${Itemid} == 1 # 按照你的需求计算新值:${newQuantity} = ${quantity1} - 4 # 用Evaluate关键字处理算术运算 ${newQuantity}= Evaluate ${quantity1} - 4 # 注意:如果你的POST API的quantity字段是**调整增量**(比如负数代表减少库存), # 那需要把值改成负数,比如:${newQuantity}= Evaluate -(${quantity1} - 4) # 具体要看你的API定义,这里先按你给出的需求写
4. 构造POST请求并发送更新
最后构造请求体,把计算好的${newQuantity}替换进去,发送POST请求完成库存调整:
# 构造POST请求体(用Create Dictionary生成结构化数据) ${post_body}= Create Dictionary ... distributionPointId=7 ... menuItemId=1 ... quantity=${newQuantity} ... transactionDoneBy=11 ... transactionType=1 ... reasonId=11 ... barcode="" # 发送POST请求更新库存(替换成你的实际API地址) ${post_response}= Post Request https://your-update-api.com/inventory json=${post_body} # 验证更新请求成功 Should Be Equal As Strings ${post_response.status_code} 200 Log 库存已成功调整,调整值为${newQuantity} END
一些关键注意事项:
- 替换代码里的
https://your-inventory-api.com/items和https://your-update-api.com/inventory为你的实际API地址 - 确保
${Itemid}变量已经在测试用例中定义(比如通过Set Variable或者参数化传入) - 如果GET API的响应JSON结构不同,要调整
Get From Dictionary的键名,比如如果库存字段叫stock就改成stock - 可以在POST请求后再加一个GET请求,验证库存确实降到了4以下,让流程更严谨
内容的提问来源于stack exchange,提问作者TG3017
相关产品推荐
相关产品推荐

