您好,登錄后才能下訂單哦!
2017年8月開始接手做持續(xù)集成平臺的工作,該平臺包含打包發(fā)布,每日構(gòu)建,穩(wěn)定測試。做這個的初衷是為了能夠提早的暴露出問題,同時使開發(fā)在打包上盡可能少出錯,提高效率。
首先收集現(xiàn)狀,源碼管理混亂,底層打包空間共用,apk打包在本地,沒有穩(wěn)定性測試,專項測試。需求整理,需要做源碼管理,分離底層共用的空間,打包統(tǒng)一使用服務(wù)器打包,增加自動化測試,穩(wěn)定性測試,專項測試。
下面說下我們的每日構(gòu)建跟穩(wěn)定性測試:
1.客戶端每日構(gòu)建
1.1、單元測試
單元測試主要是由開發(fā)負責(zé)編寫的,主要是因為開發(fā)對產(chǎn)品更加的了解,同時測試開發(fā)團隊人太少了,要做的事情好多,優(yōu)先做其他的。關(guān)于框架選擇,最初想要使用的方案是robolectric + junit4 + mockito + dagger2,然后被項目經(jīng)理及總監(jiān)否定了,選擇了android自帶的測試框架,主要原因相對與互聯(lián)網(wǎng)公司我們公司的平臺也是自己開發(fā)的,所以更需要在真機上執(zhí)行測試。
執(zhí)行過程,每天的凌晨會有定時任務(wù)去svn 上check out代碼,連接設(shè)備,然后使用gralde命令執(zhí)行測試生成測試報告。
1.2、集成測試
在這里我們的集成測試跟單元測試很像,在用例設(shè)計上主要是是按業(yè)務(wù)流程去執(zhí)行的單元測試。
對于集成測試,可以加入ui自動化測試,比較喜歡的一個自動化測試是macaca。
1.3、靜態(tài)代碼分析
靜態(tài)分析的話會在服務(wù)器上安裝sonar-scanner,執(zhí)行掃描后將結(jié)果上傳到sonaerqube上,代碼規(guī)則的的配置會在sonarqube上,最初開始做靜態(tài)代碼分析不建議開啟很多的規(guī)則項,需要給開發(fā)團隊適應(yīng)的過程,規(guī)則如果一開始就開很多,開發(fā)估計就直接不改了吧,而且自帶的規(guī)則會有一定的誤報率,需要人工篩查。
1.4、報告郵件通知
執(zhí)行失敗或者成功都回給開發(fā)測試發(fā)送郵件通知。
2、客戶端穩(wěn)定性測試
穩(wěn)定性測試主要是為了暴露apk的性能問題,提高產(chǎn)品的穩(wěn)定性。
執(zhí)行流程,凌晨定時任務(wù)會去拉取svn上的代碼,代碼更新好后,會使用腳本sed命令去把leakcannary加入到代碼當(dāng)中,接著執(zhí)行apk打包,固件打包,將生成的固件通過OTA升級,(ota升級:將包放到指定的服務(wù)器,在通過接口配置由哪個版本到哪個版本的升級,應(yīng)用本身有個server去檢查,從而實現(xiàn)升級)。執(zhí)行monkey命令,第二天去查看monkey日志,oom日志,已經(jīng)是否存在.prof文件該文件是leakcannary生成的,拿到prof文件后可以使用MAT或者Android Studio去分析。
對于性能測試需要關(guān)注網(wǎng)絡(luò),io,流量,內(nèi)存,cpu,而對于我們的產(chǎn)品更加的關(guān)注內(nèi)存,對于其他的指標(biāo)我們會在功能測試的時候去關(guān)注這塊。
3、服務(wù)端每日構(gòu)建
對于服務(wù)端的每日構(gòu)建主要是做部署,接口測試,靜態(tài)代碼分析。服務(wù)端使用的語言是php,它的部署較為簡單,只需要從使用git pull就可以,部署完成后執(zhí)行接口測試,靜態(tài)代碼分析。接口測試我們使用的是robotframework+requestlibrary,封裝出公共的關(guān)鍵字,寫testcase的時候使用該關(guān)鍵字。靜態(tài)代碼分析使用sonar-scanner,掃描結(jié)果在sonarqube上展示。最后發(fā)送郵件測試報告給開發(fā)/測試。
4、其他
4.1、不足
對于我們的整個流程缺乏ui方面的自動化
靜態(tài)代碼分析規(guī)則不夠完善
單元測試用例太少了
穩(wěn)定性測試缺乏cpu,io,網(wǎng)絡(luò)等的監(jiān)控
部分接口業(yè)務(wù)無法覆蓋(eg:支付)
4.2、躺過的坑
舊的服務(wù)器誰都能上去改東西...
同個服務(wù)器使用多個版本的gradle打包
底層源碼(sdk)管理混亂,開發(fā)隨意更新源碼
不支持接口更新ota配置
源碼管理混亂,分支無規(guī)范,非主干開發(fā)
總結(jié):
在做持續(xù)集成的工作中,開始做流程的優(yōu)化,優(yōu)化功能測試流程,自動化流程;接觸了較多的工具,開始做方案的分析,去做整體的架構(gòu)設(shè)計跟實現(xiàn),去跟項目經(jīng)理溝通,溝通是一個很大的學(xué)問,當(dāng)中你可能會遇到脾氣好的同時也會遇到脾氣差的,遇到脾氣不好的告訴自己多笑笑,多找他幾次也許問題就能解決。開始更加關(guān)注代碼的質(zhì)量,去了解專項測試。
歡迎加入 51軟件測試大家庭,在這里你將獲得【最新行業(yè)資訊】,【免費測試工具安裝包】,【軟件測試技術(shù)干貨】,【面試求職技巧】... 51與你共同學(xué)習(xí),一起成長!期待你的加入: QQ 群: 755431660
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。