UI 自動化測試中遇到的問題,希望可以獲得大佬們的解答

漆黑的橘子發表於2020-12-01

公司要求搭建UI的自動化測試,我用的pytest+Python3+ChromeDriver+selenium,現在寫了幾百個case,但是遇到了很多問題,並且執行時間很長,我搜尋了很多的網站,但是並沒有搜尋到針對我的問題而言很有用的資料,所以在這裡發帖求助,看看大家是否有什麼思路可以供給我,萬分感謝
問題:
1、拋開連線SQL外,有什麼其他好的方法回收麼?公司不允許我這邊連線生產的庫,所以我在case中手寫的資料回收,如在case中建資料A,依據A執行用例,而後刪除A,這樣有個隱患就是一旦case執行失敗了,那麼後續資料回收的步驟也全部受到影響,導致我這邊的環境會有大量的垃圾資料,因為系統之中有些垃圾資料影響是全域性的,會影響其他使用同樣的用例,從而造成連鎖反應,導致用例成功率不穩定,忽上忽下的,並且執行完成後還需要手動刪除垃圾資料。
2、公司做的是ToB的Web端SaaS服務,用域名+使用者賬號來進行分離,並且賬號不允許多端登入,如何進行併發?之前是單執行緒執行,現在希望提速,我準備用redis,每次執行自動化測試時,將這些賬號放到redis賬號池中,每個用例從池子中取出賬號後,將其狀態標識為不可用,後續的case不能使用該賬號,只能選取其他賬號,case執行完成後,釋放該賬號,將其狀態變為可用,我不知道這樣是不是最佳實踐,但是目前能解決我的困境,如果有好的方案,希望可以和我分享
3、系統中存在的ajax請求、非同步操作的情況下,如何提高UICase的成功率?比如A賬號登入後,更新其某個狀態,這裡面會有一些非同步操作,比如MYSQL、ES的讀寫,觸發相關服務的sidekiq操作等,因為在非同步操作執行期間,前端會有一個狀態變更成功的假象,所以用UI定位狀態變更成功,但是後續執行時可能會導致非同步操作沒有處理完,狀態更新操作執行後,後端資料沒有更新完畢,導致case執行失敗,在這些問題上,我現在迫不得已用sleep來解決的,ajax的請求也一樣,我不知道是否有更優的解決方案,這很困擾我,同時也影響了case的成功率及執行速度

現在我在優化我自己的框架,但是思路很混亂,我不知道這樣做是對是錯,網上包括GitHub中的框架都很簡單,我找不到太多和我類似的情況的問題

相關文章