以前一直想對phoenix_webdriver,phoenix_mobile的代碼進行重構,很多朋友反饋平臺的API不夠直觀,尤爲是webUI和mobile app相關的API有些亂。我本身也有這種感受,尤爲在後續的功能擴展上也比較麻煩,隨着用戶量的增長,這幾個模塊的代碼重構愈來愈迫在眉睫,不然之後會有更多的問題。但苦於一直沒有足夠時間。趁這最近換工做間歇的幾天時間,狠下心來把這幾個模塊的代碼好好重構了一下。java
本次重構只是對重要模塊代碼結構的重構,前面全部版本的功能,在新版本中都會完整保留。此外對頁面的js方法,頁面功能,頁面UI,CSS等都有重構,特別是UI,能給您一種面目一新的感受。node
重構以後的效果以下:android
在develop工程下,用戶邏輯自定義區域使用px或phoenix均能調出平臺支持的全部API接口,接着可直接調用該接口下的全部方法。重構後接口調用也更直觀和方便,尤爲是在我後續若有擴展新功能,就更方便了,代碼邏輯也更清晰。ios
如選擇webAPI方法:git
從如下代碼能夠看出,與以前版本相比,功能已經作了徹底分離。github
webAPI用於對webUI作自動化測試。能對頁面的元素模擬人手點擊的操做,該API裏面的方法一樣都適用於mobile browser。web
調用方法:spring
phoenix.webAPI().....數據庫
示例代碼:json
http://my.oschina.net/u/2391658/blog/607791
此API用於對Androidapp的元素模擬點擊,滑動等操做。支持虛擬機和實體機。
調用方法:
phoenix.androidAPI()....
示例代碼:
http://my.oschina.net/u/2391658/blog/713170
檢查點方法,這裏面全部的方法在其餘API中均可使用。如phoenix.checkPoint().checkIsFalse(條件);可在webUI,Android,socketAPI等等中使用。檢查結果會自動統計,並能夠在統計圖表中查看。
調用方法:
phoenix.checkPoint()......
示例代碼:
String r = phoenix.webAPI().webElement("//*[@id=\"su\"]", LocatorType.XPATH).getAttribute("value");//數據庫中的數據能夠與頁面不變的數據混合使用 phoenix.checkPoint().checkIsEqual(r, "百度一下");//調用檢查點,檢查結果會在日誌中統計
此API中的方法爲其餘各個模塊公用。如數據加載,定位信息加載,等待。以前版本定位信息數據是自動加載的,後來感受沒有必要,就改爲經過此方法手動加載了
調用方法:
phoenix.commonAPI().....
示例代碼:
HashMap<InterfaceBatchDataBean, HashMap<String, String>> datas = phoenix.commonAPI().loadWebCaseDatas(caseName);//加載數據庫測試數據方法 HashMap<String,LocatorBean> locators = phoenix.commonAPI().addLocator(caseName);//加載定位信息的方法
用於操做FTP服務器,可從FTP服務器上下載,而且能夠向FTP服務器上傳文件。
調用方法:
phoenix.ftpClient().....
代碼示例:
px.ftpClient().ftpClientConfig(String serverIp, int serverport, String loginName, String password, String ftpServerFolder); px.ftpClient().ftpUploadFile("test.txt"); px.ftpClient().ftpDisconnect();
用於識別圖片上的文字,這是基於OCR開發的,通常狀況下圖片上的正常文字識別率很高,但部分驗證碼識別率很低。
調用方法:
phoenix.imageReader().....
代碼示例:
http://my.oschina.net/u/2391658/blog/713173
用於接口測試,包含了不少源碼抓取方法,支持https,cookie,動態代理,頁面源碼格式化dom,隨機數工具,正則判斷工具,xml/json數據等不少好用的解析方法。
調用方法:
phoenix.interfaceAPI().....
代碼示例:
http://my.oschina.net/u/2391658/blog/491754
用於對ios應用操做。該接口暫無實現方法,下個版本會增長。
調用方法:
phoenix.iosAPI().....
代碼示例:使用方法同Android app
用於對svn服務器操做,經過此api,能自動獲取到指定目錄下代碼提交者,提交版本,功能描述,以及代碼提交的路徑。實爲自動化持續集成的有力工具。
調用方法:
phoenix.svnClient()....
代碼示例:
http://my.oschina.net/u/2391658/blog/713174
telnetClient用於操做遠程的socket服務器,可向遠程服務器發送telnet指令,socket指令,而且能夠接收遠程服務器的響應內容。
調用方法:
phoenix.telnetClient().....
代碼示例:
http://my.oschina.net/u/2391658/blog/713175
phoenix_web:各table增長了根據id排序功能
phoenix_web:增長部分樣式,如字體調整,增刪改的連接樣式
phoenix_node:修復性能測試時必須開啓監控頁面才能收集被監控機數據的bug
phoenix_web:代碼編輯頁面引入新的代碼編輯器
phoenix_web:頁面js代碼重構
phoenix_webdriver:代碼重構,更易擴展
phoenix_webdriver:支持自定義插入步驟日誌
phoenix_mobiledriver:代碼重構
phoenix_db:增長了多個實用方法,如能夠直接queryObject
phoenix_web:任務/性能測試列表增長自動更新任務狀態功能
phoenix_web:shiro與spring作了集成
phoenix_web:爲shiro增長了緩存支持
phoenix_webdriver:數據及定位信息數據由自動加載改成手動加載
phoenix_webdriver:各個模塊的備註信息完善
可訪問平臺網站:https://feiyang123.github.io/ 來獲取源碼下載地址,及打包好的war包下載。因爲網盤地址會更換,有新的地址發佈時我會在網站上更新。
http://my.oschina.net/u/2391658/blog/706055