[問題] 如何在robot的Start Process秀輸出訊息?

作者: starlin2 (重新開始生活)   2023-09-15 17:29:26
如題,因為我有一個程式是需要在背景執行,有點server的程式,
所以會像這樣執行,然後如果手動執行的話會在cmd line秀出一些訊息的~
${process} Start Process server.exe
手動執行大概像這樣,
C:\server.exe
server is running
然後我在robot想看他輸出的訊息,
Log To Console ${process.stdout}
Log To Console ${process}
但都一直看不到,輸出的訊息是長這樣:
<_io.BufferedReader name=5>
<subprocess.Popen object at 0x000001D0CB1D2160>
也有試著加過shell=true了,結果一樣,
另外,我也試了改用Run Process,結果變只有輸出我執行的檔案
C:\server.exe
.<result object with rc 0>
不知道這邊有沒有熟悉robot的大神可以幫忙解答一下的?
感謝萬分。
作者: zerof (貓橘毛發呆雕像)   2023-09-15 20:35:00
Robot 完整的 code 呢?你 process 怎麼執行的
作者: wuyiulin (龍破壞劍士-巴斯達布雷達)   2023-09-16 07:47:00
什麼Robot,你用哪方的API?
作者: starlin2 (重新開始生活)   2023-09-17 22:36:00
Robot framework https://robotframework.org/Run Process是robot預設的指令。
作者: lycantrope (阿寬)   2023-09-18 11:54:00
可能要把stdout=sys.stdout
作者: zerof (貓橘毛發呆雕像)   2023-09-19 12:52:00
我問的是你 Start Process 帶的參數。如果你實際上是跟第三行一樣的寫法,"subporcess stdout"自己研究一下。 (btw, "Log to console" == print)
作者: lycantrope (阿寬)   2023-09-19 15:11:00
Robot就是用subprocess.Popen,才叫你串stdout
作者: starlin2 (重新開始生活)   2023-09-20 08:51:00
我在Start Process沒有帶參數,有建議的參數嗎?
作者: lycantrope (阿寬)   2023-09-20 10:30:00
看一下process.stderr,server.exe不一定輸出在stdout
作者: Hsins (翔)   2023-09-22 14:34:00
process.stdout.read()東西都還在 io streaming 裡, 這東西又不是字串當然不給你log 啊。
作者: lycantrope (阿寬)   2023-09-22 15:39:00
查robot doc,process.stdout就stdout才會猜server.exe根本不是print在stdout
作者: s860134 (s860134)   2023-10-11 09:42:00
buffer改成 stdout.read()12樓第一句話就可以解了

Links booklink

Contact Us: admin [ a t ] ucptt.com