互聯網金融P2P行業,近三年來發展迅速,如火如荼。
據不完全統計,全國有3000+的企業。
“互聯網+”企業,幾乎每天都會碰到一些奇奇怪怪的bug,作為在互聯網企業工作的測試人員,風險和壓力都巨大。那么我們如何降低風險呢?
P2P主要的業務場景概括地說有6個,請看下圖:

我的想法是做成生產者-消費者模式,類似一個生態系統,將不會對測試環境造成不良影響。
假設發標僅受這些輸入參數的影響:
Parameters:
項目類型[XX寶, XX貸, projectC, projectD]期限單位[天, 月]還款方式[到期還本付息, 按月付息到期還本, 月N日還息到期還本, 等額本息, 還款方式5]道具[coupon1, coupon2, coupon3, coupon4, coupon5]
下面我們先設計一下發標自動化測試用例吧:
如果考慮以上四個參數的各種組合影響,使用窮舉法。將會有4*2*5*5=200。呵呵,如果是手工做功能測試的話,單是發200個標也要耗費不少的時間。
當然我們是理性的人,不是人傻時間多。我們可以使用
ACTS工具,該工具很牛叉是NIST研究的產物,使用的是IPOG算法(當然也有其他替代的工具,如
allpairs,
PICT)。通過該工具我們可以得到最優的25個用例,如下:
Relations: Test Case# 項目類型 期限單位 還款方式 道具 0 XX貸 月 到期還本付息 coupon1 1 projectC 天 到期還本付息 coupon2 2 projectD 月 到期還本付息 coupon3 3 XX寶 天 到期還本付息 coupon4 4 XX貸 天 到期還本付息 coupon5 5 projectC 月 按月付息到期還本 coupon1 6 projectD 天 按月付息到期還本 coupon2 7 XX寶 月 按月付息到期還本 coupon3 8 XX貸 月 按月付息到期還本 coupon4 9 projectC 月 按月付息到期還本 coupon5 10 projectD 天 月N日還息到期還本 coupon1 11 XX寶 月 月N日還息到期還本 coupon2 12 XX貸 天 月N日還息到期還本 coupon3 13 projectC 月 月N日還息到期還本 coupon4 14 projectD 月 月N日還息到期還本 coupon5 15 XX寶 天 等額本息 coupon1 16 XX貸 月 等額本息 coupon2 17 projectC 天 等額本息 coupon3 18 projectD 月 等額本息 coupon4 19 XX寶 月 等額本息 coupon5 20 XX貸 天 還款方式5 coupon1 21 projectC 月 還款方式5 coupon2 22 projectD 天 還款方式5 coupon3 23 XX寶 月 還款方式5 coupon4 24 XX寶 月 還款方式5 coupon5
我們通過多種方式發布這25個項目,如果是在ui上,建議使用selenium,將這25個項目信息錄入到csv。測試腳本讀取csv,可以每日不停的發項目,發布后記錄下項目id。現在生產者有了,是時候考慮消費者了。如果生產者生產出來的是項目,那么消費者就是我們的投資客戶。
為了更好的一一對應,我們就制造出25個投資客戶。步驟是:
注冊->綁定郵箱->實名認證->充值-》發放道具
准備數據的過程也很簡單。
客戶 道具 甲子 coupon1 乙丑 coupon2 丙寅 coupon3 丁卯 coupon4 戊辰 coupon5 己巳 coupon1 庚午 coupon2 辛未 coupon3 壬申 coupon4 癸酉 coupon5 甲戌 coupon1 乙亥 coupon2 丙子 coupon3 丁丑 coupon4 戊寅 coupon5 己卯 coupon1 庚辰 coupon2 辛巳 coupon3 壬午 coupon4 癸未 coupon5 甲申 coupon1 乙酉 coupon2 丙戌 coupon3 丁亥 coupon4 戊子 coupon5
最后,這25個投資用戶與25個項目對號入座,意思就是用戶甲子使用道具投資XX貸的這個項目,過程中我們將檢驗各種流水,得出一個這樣的測試結果:
TestResult Case# 項目類型 期限單位 還款方式 道具 客戶 測試結果 0 XX貸 月 到期還本付息 coupon1 甲子 √ 1 projectC 天 到期還本付息 coupon2 乙丑 √ 2 projectD 月 到期還本付息 coupon3 丙寅 √ 3 XX寶 天 到期還本付息 coupon4 丁卯 √ 4 XX貸 天 到期還本付息 coupon5 戊辰 √ 5 projectC 月 按月付息到期還本 coupon1 己巳 √ 6 projectD 天 按月付息到期還本 coupon2 庚午 √ 7 XX寶 月 按月付息到期還本 coupon3 辛未 √ 8 XX貸 月 按月付息到期還本 coupon4 壬申 √ 9 projectC 月 按月付息到期還本 coupon5 癸酉 √ 10 projectD 天 月N日還息到期還本 coupon1 甲戌 √ 11 XX寶 月 月N日還息到期還本 coupon2 乙亥 √ 12 XX貸 天 月N日還息到期還本 coupon3 丙子 √ 13 projectC 月 月N日還息到期還本 coupon4 丁丑 √ 14 projectD 月 月N日還息到期還本 coupon5 戊寅 √ 15 XX寶 天 等額本息 coupon1 己卯 √ 16 XX貸 月 等額本息 coupon2 庚辰 √ 17 projectC 天 等額本息 coupon3 辛巳 √ 18 projectD 月 等額本息 coupon4 壬午 √ 19 XX寶 月 等額本息 coupon5 癸未 √ 20 XX貸 天 還款方式5 coupon1 甲申 √ 21 projectC 月 還款方式5 coupon2 乙酉 √ 22 projectD 天 還款方式5 coupon3 丙戌 √ 23 XX寶 月 還款方式5 coupon4 丁亥 √ 24 XX寶 月 還款方式5 coupon5 戊子 √
這樣的話,每一次發布,我們都可以做到覆蓋這幾個流程了

那么,剩下的就是還款和提現了。
還款通常要做成作業服務,當然測試環境還是得實現,不可能某個項目的期限是30天,要等到30天后才還款,所以還款的參數需要可控到還款日期(業務發生日期)和操作時間。
提現就更簡單了。