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