1. 程式人生 > >屬於你自己的自動化框架思路

屬於你自己的自動化框架思路

基礎 學什麽 梳理 程序員 一個 維護 das selenium 去百度

前言

說起自動化,最先想到的應該就是一些編碼技術了。

比如至少會一種語言:java、python、js、c++、vb、等等;

用來設計測試用例和腳本框架,比如至少熟悉一種框架或工具:spring、Django、Selenium、UTF、RobotFramework、JMeter、LR、Appium、Macaca、TestNG、UniTest等等;

用來支持元素抓取,或者寫個高大上的頁面支持你的框架,可能還需要一些前端的知識:h5、css等等;

當然,也需要一些輔助的東西,比如:jdbc、log4j、poi、report、xshell、cmder之類的,讓他們幫助你做數據庫關聯、日誌分析、服務器監控、測試報告輸出等;

然後安裝一堆軟件,搭建各種復雜的環境……

從前端到後臺開發,再到報告分析,還有業務梳理,又要服務器運維,測試人員這麽牛逼?是的,要會很多東西,雖然不是很精,但卻要什麽都懂。

然而這麽一大堆的東西,我們要怎麽去學習和入手呢?那麽,就開始正文——思路!

正文

創造屬於自己的學習思路,這個思路也會幫助你完成自動化,不僅是功能自動化,還有性能的。

我在這裏一步一步的說吧,先說說

語言

不要糾結我到底學什麽語言好,是Java還是Python,又或者是vb。也許你可以根據市場情況做選擇,比如市場占有率最高的Java、比如當下熱門的Python,又或者是為了使用LR或UFT而學習vb。

作為選擇,給你幾種建議

第一,如果你已經有了一種語言的基礎,比如java,那就不要跟風去研究python,如果你把java玩的很溜,那看python的東西絕壁不會很難,精通一種先;

第二,就職的公司語言普遍使用情況,比如公司裏的程序員們都在敲python,你非要用vb跟他們抗衡一下?那也是要求前提你能看懂python;

第三,如果你沒有入職呢,又不會語言,java和python任選,不用糾結,哪個學會了,另一個都能看懂,這就足夠了!扔骰子決定都可以~

框架/工具

會了語言,我們才需要考慮做什麽自動化,功能還是性能。

功能和性能擇一而從,不要糾結,需要哪個就專心學哪個。精通

一個就好,另外的做了解或者稍微熟悉一點就可以。

以自動化為例,做自動化,要麽自己開發腳本、框架、工具,要麽選擇現成的工具來使用。

選擇?沒那個必要,只看當下熱門和公司要求的

1.以Webdriver為首的自動化框架和工具:selenium針對WebUI、appium針對MobileUI。

技術分享技術分享技術分享

後邊這個是阿裏的開源框架macaca,可以同時應用於Web和Mobile~

2.以培訓或學習過的工具為基礎,繼續學習:UFT,惠普三劍客的軟件都是基於vb的,繼續去精通學習它吧,會這個的錢也少不了。

技術分享

利用你學會的語言,去拼命研究這兩個框架吧,搭建好環境,至少寫出第一個腳本,比如去百度搜索個東西這樣的簡單用例。

就像你先學會了print HelloWorld,才開始研究print 1+1的問題一樣,從簡單的開始,由淺入深的去思考你要做的事情。

如果你會了上述的框架,可以寫出簡單的腳本來了,那麽就算公司要求你會RobotFramework也沒問題,它也是webdriver為基礎的工具,而且是python編譯的,沒有難點。

當你覺得現成的工具總是不能如意的時候,你就該考慮自己寫工具或者改造別人的開源工具了!

思路

工具即思想!你需要哪種功能,就會創造哪種工具。你想要一個對象,你就去new一個……,你想要把工具裏的數據統一管理,你就要考慮怎麽關聯數據庫,或者找其他的存儲的地方,等等。

1.構建框架

現在腦中構想你的框架或工具的功能,然後把它畫出來,也許是一個很牛逼的東西,也許你現在只是想想,沒關系,先做個圖,以後慢慢完成,這就是你的目標。

比如:我想要一個頁面或者客戶端類的自動化工具,我只需要把要測試的網址或者客戶端扔進去,他就能幫我完成所有的跳轉類測試;

比如:我只需要把需求輸入進去,他就能幫我搞定這個需求所有需要覆蓋的用例腳本!

就是這種聽起來很厲害的東西,我們完全可以一步一步去完成。

2.搭建測試環境以及初始化腳本

搭建起你想要的測試環境,比如idea+selenium+java+maven;

然後運行你的第一個腳本,比如登錄到公司運營的項目的首頁;

封裝你的第一個腳本,然後再次運行它,比如把它放到別的類裏,你的main方法裏只需要一個login();他就完成了你需要的功能;

3.數據驅動或其他驅動

將你抓取到的element元素都單獨放置到一處來調用,比如一個類中,或者excel裏,或者數據庫裏;

將你登錄的賬號或者其他輸入文本都存在一處來使用,比如一個類中,或者excel裏,或者數據庫裏;

4.加入斷言

測試用例是需要預期結果的,那麽斷言就是用來做這個的。

登錄成功後,assert斷言你登錄成功後頁面的標題,比如assert(實際結果,預期結果),如果判斷相等就print一個oye!不相等就用例執行失敗print一個ono!

5.多用例執行

用例肯定是有很多的,比如註冊、登錄、搜索,甚至是個按鈕點擊的鏈接跳轉;

用什麽來維護多用例呢?你不會全寫在main裏邊吧,之前已經學會了封裝,那在執行的時候,不妨考慮一下testNG(java)、線程、unitest(python)、Junit。

他們可以很好的幫你管理多用例的情況,你可以管理在類裏,也可以管理到csv或excel表格裏,又或者放到xml裏進行,更可以通過多線程來一起執行。

6.測試報告

用例也寫好了,總要一個漂亮的報告吧,讓我們清晰的看到這一堆用例的執行情況,

包括執行結果、執行的什麽用例、如果報錯,有什麽錯、錯誤截圖、等等;

那我們可以考慮自己在類裏做個簡單的頁面來整合這些結果、也可以放到excel中去保存結果、更可以通過學習前端知識,自己寫一個頁面,把結果都關聯進去,更加高大上!

7.優化

完成了以上的這些,我們繼續考慮如何優化我們的小框架,豐富起來,讓他變的“萬能”;

因為這個時候你的思路應該已經拓展起來了,剩下的都是煩惱,只需要把煩惱轉換成實現就可以了。

比如:svn、github的代碼管理,自建一個bug管理工具,搞一個持續集成~

8.其他

其他自己想去,思路是自己的,隨便你怎麽去想,自己去完成就好!

千萬不要對學習糾結,有糾結的時間,你隨便學一個,學會了就很厲害!

屬於你自己的自動化框架思路