王朝輝(廣東工貿職業技術學院,廣東 廣州 510510)
基于Django的測試工作平臺的設計實現
王朝輝
(廣東工貿職業技術學院,廣東 廣州 510510)
摘 要:隨著軟件質量越來越受到重視,各大互聯網企業均對測試提出了更高的要求,與以往手工測試相比,更青睞于自動化測試,本文基于Django web開發框架,快速開發實現了基于B/S(瀏覽器/服務器)的測試工作平臺。該系統遠程訪問appium服務器,來執行UI層自動化測試,并通過celery可以實現自動化測試任務的分發。
關鍵詞:測試工作平臺;Django web開發;appium服務器;自動化測試
隨著國內軟件產業的高速發展,尤其是百度、騰訊、阿里巴巴三大巨頭形成鼎力之勢,使得其他中小型企業的發展步履維艱,只有將軟件質量做的更好,才能分得一杯羹。軟件質量的把控有賴于軟件測試人員的把關,測試得越充分才能發現軟件更多的bug,從而提高產品質量,但互聯網企業迫切希望在保證產品質量的同時,降低軟件開發測試成本,國內互聯網企業的現實是開發人員與產品人員的比例為5:1,測試人員的不足往往會造成漏測發生。基于此,軟件測試迫切的希望能通過借助于自動化測試來彌補這個不足。由于互聯網企業長期重開發,輕測試,導致測試嚴重落后于開發,經過近十幾年的發展,測試越來越受到重視,并且借助于敏捷開發已經形成自己的一套模式。目前測試需要全程參與產品的整個生命周期。主要包括需求評審,技術評審,用例設計評審,迭代測試。
1 UI自動化測試框架
目前市場上主流的UI自動化測試的框架有selenium,阿里巴巴的淘測試,testin云測,appium自動化。UI自動化的原理是通過與機器通信,識別當前界面元素,對手機發送指令來完成相應的操作,比如點擊,雙擊,滑動,長按,縮放等。通過綜合考慮,本文選取了appium,主要是因為它支持多種語言編寫腳本,跨平臺支持安卓和iOS,有很專業技術很強的團隊在開發維護,不用擔心出了問題沒人修復,而且還在不斷更新,添加新的方法,還有testerhome(測試之家)論壇提供各種問題的技術支持。
2 appium服務器的使用
如前所述,appium是支持多語言并且是跨平臺的,本文選取Python作為腳本編寫語言。通過Python編寫腳本并與appium進行通信來達到自動化測試的目的。
1 Django web開發框架簡介
Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便的以“插件”形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性。它還強調快速開發和DRY(Do Not Repeat Yourself)原則。
2 測試工作平臺需求
測試工作平臺需要滿足的是所有測試人員都可以登錄平臺編寫測試用例,添加設備,創建任務,執行任務,查看報表。為了滿足需求,本文采用mysql數據庫,采用south管理數據庫,south可以靈活的修改數據庫結構,而不改變數據。數據庫結構設計如下:在model.py中創建相應的model類,然后同步數據庫即可生成對應的數據表。數據庫中包括用戶表,用戶表用來存取用戶信息,測試人員可以通過用戶信息來登錄平臺;手機表,用來保存當前手機信息;測試用例表,測試用例與人員進行綁定,記錄哪一位測試人員創建了測試用例;任務表,用來創建任務,與測試用例、手機和結果進行綁定;結果表明,存取每次任務執行的結果。
3 Web UI設計
Web UI設計采用ligerui前端架構,配合javascript,采用ajax技術和服務端進行數據交互。測試人員可以通過瀏覽器,直接在web端進行操作,編寫用例更加快捷。創建任務界面如下:測試人員只需要填寫任務名稱,選擇自己或者其他人編寫的測試用例,選擇設備(如果不選擇,則智能分配),選擇安裝包和收件人(任務結束后,報表會以郵件的形式發給收件人),提交任務即可。
本文設計的系統中使用djcelery對任務進行調度,支持定時任務和臨時任務,分發的任務會智能選擇手機。另外對手機的管理采用云端管理的方式,測試人員只需要將手機信息添加到設備管理,該手機就可以接收分發的任務。

圖1 數據庫設計

圖2 創建任務
本文使用Django web開發框架開發測試工作平臺,通過對工作平臺的介紹,簡要敘述當前社會對自動化測試的需求越來越迫切,根據自身需求選取合適的自動化測試框架,構建web頁面來對測試用例和任務進行管理。Django對于數據庫采用ORM開發思想,減少sql語句編寫,也防止了數據庫操作的失誤,提高了web開發效率,不得不說,Django是一款十分優秀的web開發框架。
參考文獻
[1]趙穎.基于Django的自動化測試框架設計與實現[D].大連理工大學,2012.
中圖分類號:TP391
文獻標識碼:A