今天總結一下在作自動化測試中測試用例設計的一些建議,總結爲三原則:shell
1. 保持Case之間的獨立性服務器
case獨立性就是可以獨立運行,當咱們有隨機的跑其中某個Case或亂序的跑這些Cases時,測試的結果都應該是準確的。併發
好比在執行過程當中用例的運行環境取決於其餘測試用例的執行狀態,那麼,其中的測試用例不能複用時,與之相關的測試用例的可複用性也不復存在。框架
有時候咱們碰到在本地沒問題,可是在server上跑有問題,大機率就是這個緣由致使的。測試
2. 提升Case執行效率設計
測試人員能在最短的時間內執行測試覆蓋,不只能提升團隊的工做效率,也可加強團隊的信心調試
a.若是有對執行條件的檢查,若檢查失敗,則儘快退出執行;
b.將數據準備或環境清除等工做抽取成關鍵字放到更高的層級中,能夠合理利用TestNG的註解來實現;
c. 用例中儘可能少的出現sleep,建議用"wait until ..."來代替;
d. 能夠採用併發執行用例的方法來提高效,這須要原則1case的獨立性來作保證。server
3. 減小case的依賴性對象
依賴包括執行環境,測試對象,外部設備部署
執行環境:
你在本地上使用Webdriver框架編寫、調試用例後,上傳到代碼塊,而後其餘同事拉取你的用例在他的本地運行,隨後又被部署到持續集成服務器上。因此你編寫的用例時就要儘可能避免使用不一樣平臺的庫或者shell命令。這個咱們通常能夠用Maven來進行依賴管理。
測試對象:
使用Page Object模式,主要是將每個頁面抽象成一個頁面對象類,把該頁面中的元素定位,元素操做,業務流程等都封裝在該類的方法中,編寫用例時,直接已面向對象的思想調用該頁面類中的方法。同時,當頁面元素屬性變化時,只須要更改頁面對象類便可。
外部設備:
有時候被測系統可能須要和硬件交互,外部設備可能會升級或更換,那咱們能夠將外部設備的操做從測試用例中抽離出去,封裝成測試庫,秩序維護這個測試庫就能夠了。好比打印功能。