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