理解Ride是如何控制Robot Framework執行


具體流程

1.在Ride加載控制執行的插件的時候,會開啟一個守護線程,這個線程開啟了一個監聽器服務,這個監聽器后期會用來獲得robotframework發送過來的結果 
2.在Ride點擊run的時候,做了下面幾件事:

  1. 生成robotframework要執行的腳本命令,在這個命令中附加了一個監聽器,監聽robotframework的運行,此時監聽器已經獲得了前面ride啟動的監聽器的端口號,以及是否在用例失敗的時候不再執行的參數。由於在同一個機器上面,地址統一是localhost

  2. 執行腳本開始運行,這時附加在這個腳本上listerner,它也開啟了一個服務,這個服務用來接收指令用的,是一個Debugger服務,可以通過給這個服務接收指令,讓腳本暫停,或者一步步的執行。另外值得一提的就是由於是ride開啟腳本運行的,因此ride自然知道了Debugger服務的端口號了,以及它的pid,這樣才能給它發信,並且終止它的運行

3.腳本執行的listener,會把所有的運行信息已json格式的方式,發送給ride的監聽服務,ride接收到腳本運行的信息后,將其添加到運行面板上,這就是為啥可以同步看到腳本運行的信息的原因了

4.Debugger服務收到指令后,它會通過Theading模塊Event.set()方法,激活或者讓其他線程等待運行,這樣即達到了控制運行的目的,而具體控制的狀態由監聽器它內部的一個變量判定。

整個過程的通訊都是通過socket完成的,為啥不用指定端口號,是因為端口由系統來決定即設置端口號為0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM