一、目的
web自動化測試作為軟件自動化測試領域中繞不過去的一個“香餑餑”,通常都會作為廣大測試從業(yè)者的首選學習對象,相較于C/S架構的自動化來說,B/S有著其無法忽視的諸多優(yōu)勢,從行業(yè)發(fā)展趨、研發(fā)模式特點、測試工具支持,其整體的完整生態(tài)已經遠遠超過了C/S架構方面的測試價值。那么接下來我們就來具體說說web自動化測試的前世今生吧。
二、說明
此篇中所用的技術棧為Selenium+Python,因其本身編程難度不高,總體思想都是基于面向對象的編程理念,故只要大家的編碼語言基礎不弱,就完全可以做到平替。
三、手工測試與自動化測試的區(qū)別
在正式介紹web自動化測試之前,我們先來聊聊手工與自動化之前的一些區(qū)別與認知。很多科班或者剛踏上測試行業(yè)的同學都會有這么一個認知,自動化測試相較于手工來說技術含量更高,所屬崗位的薪資更好,崗位的可替代性也更小。對于這種看法博主只能說一半一半,對于沒有什么實際工作經驗與實際項目經驗的同學來說,即使自動化的技術含量更高,也盡量推薦大家從手工測試開始。大道理就不多說了,對大家來說最實際的就是你的核心競爭力,那對于測試來說測試的核心競爭力是什么呢?業(yè)務!一定是業(yè)務,但為什么會是業(yè)務呢?
大家設想一下,如果你的技術能力較強,但業(yè)務能力一般,即使能寫出很高效的代碼,但無法貼近產品或者項目的業(yè)務,縱使這樣,寫出來的腳本或者框架也會是無用之物。必須讓其他懂業(yè)務的同事來幫你審核或者修改,但反過來如果業(yè)務理解力強并且對于產品的功能與設計拿捏的比較到位,那無論是測試用例設計或是經驗測試都將無往不利,常??梢园l(fā)現(xiàn)其他人無法察覺的一些產品問題、缺陷甚至于是設計場景上的漏洞。編碼是一個硬技能,可以通過大量的練習來磨煉,而業(yè)務卻不單單是需要理解,更多的情況下是需要去延伸與創(chuàng)新。為什么說測試應該是整個公司內對了解產品與項目的人呢,就是因為他們比任何人都了解其功能的使用,業(yè)務場景的匹配,需求的痛點所在,這個甚至需要超過產品經理的理解。所以在一家公司內決定一個測試能在他的道路上走多遠的永遠不會是技術,而是業(yè)務。
那兩者的區(qū)別呢,基于上面所說的觀點,要做好手工測試,必須滿足這四點:1. 業(yè)務的理解能力 2. 思維邏輯能力 3. 溝通能力 4. 測試基礎能力 , 做不好這四點我敢說你的手工測試能力一定不行。而要做好自動化,除了要做到這上面的四點之外,還需要對自己的代碼能力、思維轉變、框架設計等一些列的能力進行提升。由此可見,自動化與手工的區(qū)別不僅僅在于實現(xiàn)與執(zhí)行的方式有所不同,兩者更是一個循序遞進的過程。所以博主還是建議大家如果要做自動化還是最好可以從手工業(yè)務測試進行切入。
四、框架選擇
說到web的自動化測試框架,市面上已經有了很多成熟的測試框架了,比如QTP、selenium、AutoRunner、Robot Framework、watir、RFT等等等等。
QTP屬于比較老牌的自動化測試框架了,在2012年之前使用的團隊與公司還是比較多的,腳本也是比較簡單易懂的,但另一面的限制也比較大,語言只能支持VBS且費用較高,框架的對象支持靈活度也不夠好。
selenium目前仍為最主流的web自動化測試框架之一,免費開源、支持跨平臺,關鍵是測試執(zhí)行可以在瀏覽器中直接運行,模擬用戶的真實操作。
AutoRunner可以支持豐富的技術框架并且使用Java作為腳本語言,支持生態(tài)比較完善,采用關鍵字提醒、關鍵字高亮、關鍵字驅動。支持同步點、校驗點、參數(shù)化,同時支持數(shù)據(jù)驅動的參數(shù)化。比較適合用它來功能測試、回歸測試、系統(tǒng)測試、構建測試等。
Robot Framework支持python,支持關鍵字驅動和數(shù)據(jù)驅動、自定義關鍵字,框架內的測試用例可以使用多種格式進行編寫,且可以自動生成測試報告,無須像其他軟件需要第三方庫的支持。
watir使用ruby作為腳本語言,現(xiàn)在也可以支持跨平臺的多個瀏覽器了,同樣作為開源框架,watir相較于selenium就有比較多的限制與短板了,比如無法錄制腳本、對js的彈框支持不太友好等。
RFT是由IBM推出,這是一款不僅僅用來做web自動化測試的框架,他也可以測試 HTML、Java、Windows、.NET、Visual Basic、Silverlight、Eclipse、Siebel、Flex、Ajax、Dojo、GEF 和 PowerBuilder 應用程序。但不是開源的,需要收費,并且支持的對象庫也不多,如果是用來學習一下的話還是不錯的。
那么在這些五花八門的框架中如何選擇適合自己的測試框架呢?我們可以從兩個點進行切入,首先評估自己的能力,擅長什么樣的編碼語言,甚至是是否有代碼基礎。針對上述框架的特性,比如沒有代碼能力的可以優(yōu)先選擇帶有腳本錄制功能的框架;又比如擅長java的就可以選擇對java支持比較好的框架。另一個,就是評估自己的被測對象(產品或項目),被測對象是用什么樣的技術棧實現(xiàn)的,頁面的變更或迭代的頻率與規(guī)模等。如果我們的選擇標準基于以上的兩個方面去進行評估的話,大概率是可以選擇到適合自己適合項目或產品的自動化測試框架的。
5. Selenium的工作原理
在具體的描述Selenium的工作原理之前,我們這里先看一張簡單的工作原理圖:
圖中的client其實就是我們使用python寫的源代碼,因為selenium是沒有圖形界面的,所以將客戶端就看成我們用源代碼實現(xiàn)的Selenium業(yè)務功能即可。
driver就是我們的webdriver,大家要知道,我們的源代碼是無法直接指揮瀏覽器進行相應的操作的。我們的代碼必須通過提供的API來建立起與瀏覽器之間的通信會話,有了這個會話之后腳本就可以驅動瀏覽器執(zhí)行你測試所需的特定業(yè)務操作了。
browser作為瀏覽器,則是我們最后呈現(xiàn)出業(yè)務操作的界面對象,selenium的特點就是可以直接在瀏覽器中進行操作實現(xiàn),模擬用戶的真實業(yè)務動作。而瀏覽器在接收到代碼所模擬的http請求之后會進行解析,將業(yè)務所需的特定操作(action)實現(xiàn)在瀏覽器界面中并對所發(fā)出的請求進行響應,告知到請求放操作是否成功。
概括的來說,整體的流程就是我們所寫的代碼腳本去調用selenium,再由selenium來調用特定的API對瀏覽器進行業(yè)務操作,瀏覽器將業(yè)務操作的結果告知到腳本或者IDE。文章來源:http://www.zghlxwxcb.cn/news/detail-698541.html
最后如果你想學習自動化測試,歡迎加入筆者的交流群:735745871,里面會有很多資源和大佬答疑解惑,我們一起交流一起學習!文章來源地址http://www.zghlxwxcb.cn/news/detail-698541.html
到了這里,關于【web自動化測試】入門篇 01—— 框架介紹的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!