首页 > 解决方案 > 无法在 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

标签: pythonrobotframework

解决方案


尝试:

${result} =  Run Process  python -c ./statuspgm.py app1 timeout=10s  shell=true

python" " 和 " "之间有一个双空格-c。所以删除一个空格并将shell参数设置为True.


推荐阅读