[英]Running a python function as keyword in robot causes infinite loop
我有一個python函數:
def send_batch_email(recipient, batch=3, limit=50):
for i in range(0, batch):
for j in range(0, limit):
jsonStr = "{\"Subject\":\""+str(i+1)+"--"+str(j+1)+"\", \"Recipient\":\""+recipient+"\"}"
logger.info(jsonStr, also_console=True)
send_email(jsonStr)
time.sleep(200)
我是從Robot Framework測試案例中調用的:
Validate sync of multiple emails
[Tags] Test2
kill_app %{appName}
Wait Until Keyword Succeeds 5 min 0 sec send batch email %{localAccount}
上述測試用例的控制台輸出如下:
{"Subject":"1--1", "Recipient":"test@anuraagbaishya.xyz"}
{"Subject":"1--1", "Recipient":"test@anuraagbaishya.xyz"}
{"Subject":"1--1", "Recipient":"test@anuraagbaishya.xyz"}
{"Subject":"1--1", "Recipient":"test@anuraagbaishya.xyz"}
....(infinitely)
從Python控制台運行該功能可以正常運行,但是從機器人框架開始,循環將無限運行。 我將不勝感激為什么此循環無限運行以及如何解決此問題。 提前致謝
注意:send_email函數正常工作,運行send_batch_email函數時收到無數封郵件
根據獲取的日志判斷,python函數在日志記錄之后的某個地方不斷失敗。
看一下i
和j
的值-它們永遠不會超過0。 發生的所有事情就是Wait Until Keyword Succeeds
繼續執行該功能,並且每次都繼續失敗。
查看Robotframework的執行日志-它可能提供導致失敗的詳細信息/回溯。 如果這樣做沒有幫助,請使用此反模式記錄異常:
# ...inside the inner loop
logger.info(jsonStr, also_console=True)
try:
send_email(jsonStr)
except Exception as ex: # catch *any* exception
logger.error('Failure: {}'.format(ex))
raise ex
順便說一句,這不是一個無限循環,它將以您所說的方式在5分鍾內完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.