屬於你本身的自動化框架思路

前言

提及自動化,最早想到的應該就是一些編碼技術了。css

 

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

 

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

 

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

 

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

 

而後安裝一堆軟件,搭建各類複雜的環境……git

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

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

正文

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

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

語言

不要糾結我到底學什麼語言好,是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.其餘

其餘本身想去,思路是本身的,隨便你怎麼去想,本身去完成就好!

 

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

相關文章
相關標籤/搜索