關於自動化測試的誤區(二)


 

  繼續胡說(我真姓‘胡’啊!)對自動化測試的一些看法,上一篇文章講得比較模糊,這一篇就具體講講在做自動化測試時的一些誤區,主要針對已經在開始學習自動化的同學。當然,我這里主要指的是webUI自動化以及使用selenium工具的情況下。

 

數據驅動怎么玩? 

   數據驅動:因為數據的改變導致結果的改變。說人話就是,因為我在百度里搜索的是“selenium”導致結果就是包含了“seleniumhq.org”。因為我登錄時候輸入的是“zhangsan”導致的結果就是登錄之后頁面右上角顯示“歡迎,zhangsan”。你自己體會一下,我說的也不一定對。

  曾幾何時,不知哪位測試大牛說的,數據一定要放在excel表格里才逼格滿滿。再后來就演變成元素的定位一定要放到excel里才夠“數據驅動”,才是玩自動化測試的高級境界。

  抱歉,可能我姿勢不對!因為我不知道你們是如何想像着把元素定位放到excel表格里面的。

  但我認為這樣做純屬多此一舉。

  1、讀excel有多麻煩,你知道么?不知道的百度一下,“python讀取excel ” 或 “java 讀取excel”。你想像一下,每個用例的每一步元素定位之前,先讀一下excel是有多麻煩。

  2、這樣好維護!誰告訴你的?你能記清excel125行第2列對應的哪個頁面上的哪個元素的定位?因某個頁面上多加一個元素,我又在excel32行下面插入一行元素定位,從33行往的所有元素的行號都變了,你那些讀取excel中元素定位的操作都要跟着改吧!?

  那你給說道說道,什么情況下需要excel管理用例,在我看還真沒想到什么場景必須excel管理。不過,有什么條件可以參考:

  1、這個數據有點多,比如這個輸入框限制500字,我輸入501個字提交看是否會提示錯誤。這500字寫代碼里有點多了。可以建立個文件讀取。

  2、這個數據經常改動,比如自動化測試用例通過個哪個環境執行,哪款瀏覽器運行,運行哪個項目下的用例。這個配置是需要我經常改的,可以創建一個專門的配置文件來保存。

  3、這個數據作用於多個地方,比如系統的登錄用戶名密碼,可能很多條測試用例都用一個賬號登錄。那我不可能每個用例,都寫一遍這個賬號,假如想統一更換帳號還得每個用例都改一下,這個時候也可以對這個數據獨立保存。

  你看!你看!元素的定位也挺符合你的第23條的,經常變動,一個元素定位可能被多個用例用到。那你為什么不研究一個Page Ojbect 設計模式?專門解決元素變化問題的。

 

web自動化要用多大的數據?

   對了,前兩天有人給我留言:你這個web自動化書吧挺好的(書在本博客面右上!),就是沒有關於數據庫的操作!親,你不是在做web自動化,應該是在做性能自動化吧!?那我要碰到很多數據的情況下怎么存?這一定是你意淫出來的情況。那我在頁面上插入了一條數據,我需要查詢數據庫表檢查對不對呀?

  你確定你是在做web自動化么?web自動化是基於UI的自動化測試,是模擬用戶操作的。你家用戶這么高端,在你們的網站上買了個商品,還要跑到你家數據庫里去查一查,剛才買的商品有沒有寫到xxx表里?

  那自動化怎么知道商品對沒有沒插入到xxx表?那我反問一下用戶怎么知道自己有沒有購買成功,一定是他在“已購買”的商品欄里看到自己的商品。你不會獲取這信息做斷言啊?

  說往數據庫里存數據那位,你家用戶在使用你們的系統的時候,自己要先准備幾千條數呀?你說用戶用excel存數據我信,你說用戶上傳excel數據文件我信,你說用戶弄個數據庫存幾千數據,我不信!

 

這樣的系統不太適合web自動化! 

   什么樣的系統不太適合web自動化?以查詢報表為主的系統,就是以插入,查詢,刪除,編輯為主的xx管理系統。如查你還不清楚的話,下圖僅供參考。

  我此言一出,估計你要灰心了!我家系統就是這種的,添加,查詢,編輯。這種系統一般定位起來也比較麻煩,要寫又臭又長的xpath。(估計你現在已經和我產生共鳴了。)

  這種系統的核心就是數據,其后台實現就是各種查詢接口。功能可用就好,一般這系統不講究用戶體驗之類的。關鍵是數據得正確。尤其是針對金融領域相關的系統,那少算一個數、一個零、一個小數點,事可就大了。但在我看來做web自動化的實際意義並不大。或者這類系統要自動化的並不是系統最重要的部分。當然,我並不是說系統的功能不重要。

  最主要的是這種系統不太好斷言結果,你想,你的數據是查詢出來的,今天查詢出來“張三”在第一頁,后面這個查詢數據增加,“張三”跑后第五頁了,再后來跑到第170頁,你說怎么用固定的信息斷言? 沒有斷言,你怎么知道查詢的結果對不對?

  我可以查數據庫呀,我前面說了,查數據庫的就不是web自動化了。

 

  其實,這類系統非常適合做接口自動化測試。關於,接口自動化的學習和需要掌握的技能,我會放到下一篇介紹(這一篇要還沒啥閱讀量,我就不寫了^_^,畢竟這些吐槽也挺無聊的)。

 

  有同學說了,那我學自動化還有什么用?我家系統就是這種的。

  1、首先,我並不是說這類系統不能自動化,拿來練習web自動化還是可以的嘛。再說了,web自動化也是測試人員必備技能之一嘛,以后為你跳槽加薪好處也是大大地嘛。

  2、你學習的技能並沒有白費:

  2.1、編程能力提升了吧!那編程語言能干的事情可以多了去了。

  2.2、單元測試框架學會了吧!這框架還可以用來寫單元測試和接口測試呢!

  2.3、自動化測試的思想學到了吧!移動自動化也是這么玩的,只是把selenium換成appium而已。

 

  那我就好奇了,蟲師,你家系統是什么樣的?怎么就適合做web自動化了?知道你會這么想(問),我以前寫過一個私有雲的自動化(類似百度雲盤),去年寫過一個bbs社區的自動化,當然也都不算太成功(羞射...)。碰到更多的就是如上圖的,所以,從去年底在開發的幫助下改去寫接口自動化了。

 


免責聲明!

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



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