异步轮询与卫兵进程
引言:與fitnesse有關的自動化設計?
?
?背景:
1.業務鏈涉及多個進程,業務進程之間有一定的銜接。當這個用例執行失敗時,想讓程序自己去定位出錯點,這個工作顯然是很麻煩的。
2.fixture代碼最后返回fitnesse結果時,需要獲取當前用例業務結果表數據。這樣預期是希望在被測業務進程在處理完成第一時間或者盡可能短的時間就獲取到業務處理的結果數據,這顯然也是很難辦到的。
?難點分析:
1.對于自動定位錯誤:
模擬生產,默認后臺被測程序都是啟動的,插入數據后應該就會自動觸發被測進程做業務處理。鏈式處理中,可能會遇到被測業務上的bug,那么自動化發現bug或者業務處理錯誤后,一般會先查看涉及業務的表,然后再去查看日志等步驟。不通case涉及到表不同,日志不同,所以這樣讓程序自己識別錯誤和異常等是比較困難。
2.數據比對:
每個case測試的進程執行時間即業務處理場景時間是有差異的,無法設置一個固定值去sleep,當然設置最長時間是不合理的。
?解決方案:
1.對于問題定位,可以總結和梳理信控業務鏈,總結出涉及的表,將共性的抽象為一種策略。這個策略就是定義了若干表名,case在執行時會匹配策略。再設置一個常駐進程去執行具體策略,實際上是輪詢這個策略中配置的若干表,發現錯誤或者異常立即上報,類似于一個衛兵。【實現時為了避免衛兵發現處理中間狀態不是終態,當衛兵發現錯誤和異常后將不會立即上報,而是做確認后再上報。】
2.數據比對,采用異步輪詢機制,設置最長、最短輪詢時間與最多、最少輪詢次數兩個維度,盡量做到第一時間反饋業務結果數據。
?
轉載于:https://www.cnblogs.com/xnchll/p/6612157.html
總結
- 上一篇: Python案例3—计算基础代谢率V_1
- 下一篇: 手把手教你如何创造睡后收入