我知道優化Robot Framework的基本知識,以提高正常應用程序的速度,但這不是一個正常的應用程序。這不是一個儘可能快的問題,因爲如果代碼在Angular應用程序上執行得太快,它會嘗試點擊未啓用或可見的元素或尚不存在的元素。定時問題比比皆是,結果是我使用關鍵字(下方)來普遍減慢我的程序。問題在於它是硬編碼的,我正在尋找一個更「程序化的」(程序?我不知道確切的術語)解決方案,它將等待元素被點擊,然後在它是。如何優化Robot Framework以加速對Angular應用程序的測試?
這是我每一次點擊後使用關鍵字(${SLOW_TIME}
是一個全局變量設置爲0.5s
):
Slow Down
# EXAMPLE USAGE
# Slow Down ${SLOW_TIME}
[Arguments] ${SLOW_TIME}
Sleep ${SLOW_TIME}
這是我目前的解決方案,這是寫來驗證一個元素是隨時可以點擊進行測試驗證,而不是速度。這不是完整的(需要「是可點擊」),並偶爾導致程序等待更長的時間比它:
Verify Element Is Ready
# EXAMPLE USAGE
# Verify Element Is Ready id=myElementId
# Click Element id=myElementId
[Arguments] ${element}
Variable should exist ${element}
Wait until element is visible ${element}
Wait until element is enabled ${element}
我知道,機器人框架不是專爲速度,但長期測試中,我」 m厭倦了10分鐘無所事事的等待它完成,只能看到我有一個不正確的[Fail]
。如果解決方案涉及Python,Javascript或Java,我可以工作。
編輯:我目前使用ExtendedSelenium2Library,但其隱含的等待並不總是工作,所以我想要第二層等待,但只要有必要。
這心不是一個真正的答案 - 但你說你正在等待10分鐘,看是否它失敗或通過。爲什麼不創建一個有你創建的這個新測試的「沙箱」,看看它是否有效。它會在幾秒鐘內失敗,如果通過,您可以將其添加到主文件的末尾。如果這有道理?然後,當它添加到主文件時,它應該正常工作,如果安裝和拆卸正確完成。 – Goralight
它確實有道理,我通常這樣做,但有時與主文件本身的集成即使不應該也會導致失敗,並且運行整個測試以查看它是否一起工作需要很長時間。 –
爲什麼在等待它可見之後立即調用'element should be visible'?這似乎是多餘的。 –