python - 无法在 Robot Framework 中打印日志
问题描述
我在我的机器人框架中调用 python 程序并尝试在控制台中获取输出。我尝试了很多但无法解决这个问题,因为我是 Robot 框架的新手。
问题:在 python 程序中编码的打印语句未反映在日志控制台中。
我的机器人文件包含以下代码行
*** Keywords ***
Run App1 Health Check
[Documentation] Runs App1 Health check
${result} = Run Process python -c ./statuspgm.py app1 timeout=10s
Log To Console ${result.stdout}
[Return] Pass
程序:statuspgm.py
import string
import time
…
def RetrievePodsForStatus(pod_srch):
out_list.append([i.name, i.status])
print ("Starting the script execution….")
print("Return value:", ret_val)
return out_list
..
# Main Area
arg1 = sys.argv[1]
print ("arg1:", arg1)
component_status = RetrievePodsForStatus(arg1)
print("Out:",component_status)
我的机器人输出是:
KEYWORD ${result} = Process . Run Process python, -c /home/ubuntu/testpgm.py app1
Documentation:
Runs a process and waits for it to complete.
Start / End / Elapsed: 20200914 20:01:50.327 / 20200914 20:01:50.356 / 00:00:00.029
20:01:50.327 INFO Starting process:
python "-c /home/ubuntu/testpgm.py app1"
20:01:50.332 INFO Waiting for process to complete.
20:01:50.356 INFO Process completed.
20:01:50.356 INFO ${result} = <result object with rc 1>
00:00:00.001KEYWORD BuiltIn . Log To Console ${result.stdout}
Documentation:
Logs the given message to the console.
Start / End / Elapsed: 20200914 20:01:50.357 / 20200914 20:01:50.358 / 00:00:00.001
20:01:50.358 INFO ${healthStatus} = Pass
解决方案
尝试:
${result} = Run Process python -c ./statuspgm.py app1 timeout=10s shell=true
python
" " 和 " "之间有一个双空格-c
。所以删除一个空格并将shell
参数设置为True
.
推荐阅读
- javascript - 如何通过服务工作者区分常规和 iframe 请求?
- r - 使用 lasso 回归的交叉验证来找到最佳调整参数 λ
- c - 优化级别打破了 C 代码顺序
- python - 熊猫中的布尔索引结合了可变数量的列
- python - 合并文件路径列表
- angular - 如何在 Angular 中处理不确定数量的输入 FormControl?
- c# - 有没有一种干净的方法在 Autofac 中构建泛型类型参数?
- python - Python 线程使用 pm2 导致内存泄漏
- flutter - 使用提供者更改列表平铺尾随
- sql - 有没有办法在以 YYYYMM 作为 BM 的新字段中显示日期范围或 date_from 和 date_to