目錄
引言
這兩天遭遇了手機號登錄相關(guān)得壓測需求,算是比較棘手得。主要原因有兩個,第一:之前從來沒有接手過這個項目,不熟悉各種規(guī)則;第二:數(shù)據(jù)量偏大,需要開發(fā)配合協(xié)調(diào)校驗規(guī)則。
業(yè)務(wù)邏輯:
請求發(fā)送驗證碼接口,發(fā)送成功(已綁定得手機號,且有效得用戶狀態(tài))可以獲取到登錄得一個參數(shù)traceNo
使用traceNo
、短信驗證碼、手機號請求登錄接口
基本得校驗規(guī)則如下:
手機號校驗,排除一些不存在得號段,11位數(shù)字類型(接口傳string
類型)
間隔(60s)內(nèi)不允許發(fā)第二條短信,短信有效期同隔間
自然天不允許發(fā)10條以上得短信
驗證碼隨機和traceNo
必需從發(fā)送驗證碼接口獲得
解決方案:
限制條件已經(jīng)做成可配置,可以隨時更改重啟服務(wù)即可
選中14號段,用戶手機號=14+uid
測試環(huán)境固定驗證碼
測試方案:
將發(fā)送驗證碼和短信登錄兩個接口放在一起壓測,需要準(zhǔn)備一批測試用戶
單個線程綁定一個用戶,然后不停地發(fā)送驗證碼和使用驗證碼登錄
增加基類屬性phone
和模塊類屬性lastTraceNo
來完成參數(shù)傳遞
壓測:
threadmark用來標(biāo)記任務(wù)得,我在模塊方法里面返回了token,表示唯一用戶登錄接口請求操作,方便開發(fā)追蹤日志。
/**?*?100個用戶通過發(fā)短信然后通過驗證碼登錄?*/class?LoginByTel?extends?OkayBase?{????public?static?void?main(String[]?args)?{????????def?argsUtil?=?new?ArgsUtil(args)????????def?thread?=?argsUtil.getIntOrdefault(0,?100)????????def?times?=?argsUtil.getIntOrdefault(1,?50)????????ClientManage.init(10000,?5000,?0)????????def?threads?=?[]????????thread.times?{????????????def?base?=?getBase(it)????????????def?info?=?new?UserInfo(base)????????????threads?<<?new?LoginTel(info,?times)????????}????????new?Concurrent(threads,?"學(xué)生留存1.2.3手機驗證碼登錄").start()????????FanLibrary.testOver()????}????static?class?LoginTel?extends?ThreadLimitTimesCount<UserInfo>?{????????public?LoginTel(UserInfo?info,?int?times)?{????????????super(info,?times,?null)????????}????????@Override????????protected?void?doing()?throws?Exception?{????????????threadmark?=?t.loginByTel()????????}????}}
模塊類方法:
????/**?????*?手機號登錄?????*/????public?String?loginByTel()?{????????sendCodeOffline(2,?phone);????????String?url?=?Profile.LOGIN;????????JSONObject?params?=?getParams();????????params.put("login_mode",?2);????????params.put("params",?getJson("code="?+?Profile.LOGIN_CODE,?"phone="?+?phone));????????JSONObject?response?=?getPostResponse(url,?params);????????if?(isRight(response))?{????????????token?=?response.getJSONObject("data").getString("token");????????????super.token?=?token;????????????logger.info("賬號?{}?登錄成功",?account);????????}?else?{????????????output(response);????????????logger.warn("賬號?{}?登錄失敗",?account);????????????fail();????????}????????return?token;????}
以上就是python性能測試手機號驗證碼登錄示例詳解得詳細內(nèi)容,更多關(guān)于python手機號驗證碼登錄測試得資料請關(guān)注之家其它相關(guān)內(nèi)容!
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。