本次實(shí)驗(yàn)主要負(fù)責(zé)網(wǎng)頁(yè)端的后臺(tái)邏輯測(cè)試,編寫(xiě).travis.yml配置測(cè)試文件,編寫(xiě)自動(dòng)化測(cè)試用例,進(jìn)行手動(dòng)功能測(cè)試及輔助完成搶票功能的性能測(cè)試。
.travis.yml文件并不難寫(xiě),只要將執(zhí)行build和script的流程弄清楚,安裝必要的python包,配置好數(shù)據(jù)庫(kù)信息就可以了。最后我們對(duì)于測(cè)試用的configs.test.json文件進(jìn)行了加密,防止wechat app id和token的泄露。關(guān)于travis CI的學(xué)習(xí)小結(jié)見(jiàn)Travis CI 技術(shù)小結(jié)
編寫(xiě)自動(dòng)化測(cè)試用例則經(jīng)過(guò)了信心滿滿到屢受挫折的一個(gè)過(guò)程。本次實(shí)驗(yàn)的網(wǎng)頁(yè)端接口很多,并且在核心的邏輯部分:如創(chuàng)建活動(dòng)、修改活動(dòng)etc.考慮的情況也很多。最后編寫(xiě)了約80個(gè)測(cè)試用例。在測(cè)試過(guò)程中,也發(fā)現(xiàn)了很多后端代碼的邏輯錯(cuò)誤,可以說(shuō)測(cè)試用例和后端邏輯代碼是共同在不斷優(yōu)化完善的。
手動(dòng)功能測(cè)試,基本上將編寫(xiě)的自動(dòng)化測(cè)試用例執(zhí)行了一遍。因?yàn)樽詣?dòng)化測(cè)試基本上只判斷處理信息的對(duì)與錯(cuò),對(duì)于信息最后呈現(xiàn)的方式?jīng)]有可觀性。在測(cè)試過(guò)程中,發(fā)現(xiàn)了前端存在的bug,比如時(shí)間的時(shí)區(qū)轉(zhuǎn)換問(wèn)題、創(chuàng)建發(fā)布活動(dòng)不檢查文本輸入的正確性等等。在測(cè)試過(guò)程中,前端和后端的完善也是同步進(jìn)行的。
由于前面的工作拖的時(shí)間比較長(zhǎng),性能測(cè)試則非常的匆忙。在第一次測(cè)試后,結(jié)果讓我們吃驚,對(duì)數(shù)據(jù)的讀寫(xiě)沖突導(dǎo)致已發(fā)放的票數(shù)和用戶搶到應(yīng)票數(shù)不對(duì)應(yīng)。于是團(tuán)隊(duì)決定進(jìn)行進(jìn)一步的優(yōu)化,對(duì)數(shù)據(jù)庫(kù)加鎖。在這個(gè)過(guò)程中,我們也更深入地了解了在如何在高并發(fā)條件下處理請(qǐng)求。這對(duì)于我們之后寫(xiě)學(xué)生節(jié)晚會(huì)小程序的大作業(yè)的也很有幫助。我和隊(duì)友也一起撰寫(xiě)了JMeter性能測(cè)試技術(shù)博客。
最后想說(shuō),這個(gè)大作業(yè)真的沒(méi)有想象中的容易(捂臉),寫(xiě)完代碼很快,但是之后的測(cè)試、debug真的很令人抓狂... ?一開(kāi)始,我本來(lái)是負(fù)責(zé)所有的測(cè)試工作的,結(jié)果網(wǎng)頁(yè)端邏輯測(cè)試到一半的時(shí)候,發(fā)現(xiàn)工作量是在太大,趕緊請(qǐng)求隊(duì)友救場(chǎng).... ? 但在這個(gè)過(guò)程中了解了微信公眾平臺(tái)的接口接入,django項(xiàng)目的體系框架,以及持續(xù)集成技術(shù)Travis CI和性能測(cè)試工具JMeter,也是一次滿滿的收獲了。