python性能測試手機(jī)號驗(yàn)證碼登錄壓測示例詳解
引言
這兩天遭遇了手機(jī)號登錄相關(guān)的壓測需求,算是比較棘手的。主要原因有兩個,第一:之前從來沒有接手過這個項(xiàng)目,不熟悉各種規(guī)則;第二:數(shù)據(jù)量偏大,需要開發(fā)配合協(xié)調(diào)校驗(yàn)規(guī)則。
業(yè)務(wù)邏輯:
請求發(fā)送驗(yàn)證碼接口,發(fā)送成功(已綁定的手機(jī)號,且有效的用戶狀態(tài))可以獲取到登錄的一個參數(shù)traceNo
使用traceNo、短信驗(yàn)證碼、手機(jī)號請求登錄接口
基本的校驗(yàn)規(guī)則如下:
手機(jī)號校驗(yàn),排除一些不存在的號段,11位數(shù)字類型(接口傳string類型)
間隔(60s)內(nèi)不允許發(fā)第二條短信,短信有效期同隔間
自然天不允許發(fā)10條以上的短信
驗(yàn)證碼隨機(jī)和traceNo必需從發(fā)送驗(yàn)證碼接口獲得
解決方案:
限制條件已經(jīng)做成可配置,可以隨時更改重啟服務(wù)即可
選中14號段,用戶手機(jī)號=14+uid
測試環(huán)境固定驗(yàn)證碼
測試方案:
將發(fā)送驗(yàn)證碼和短信登錄兩個接口放在一起壓測,需要準(zhǔn)備一批測試用戶
單個線程綁定一個用戶,然后不停地發(fā)送驗(yàn)證碼和使用驗(yàn)證碼登錄
增加基類屬性phone和模塊類屬性lastTraceNo來完成參數(shù)傳遞
壓測腳本:
threadmark用來標(biāo)記任務(wù)的,我在模塊方法里面返回了token,表示唯一用戶登錄接口請求操作,方便開發(fā)追蹤日志。
/**
?*?100個用戶通過發(fā)短信然后通過驗(yàn)證碼登錄
?*/
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手機(jī)驗(yàn)證碼登錄").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()
????????}
????}
}
模塊類方法:
????/**
?????*?手機(jī)號登錄
?????*/
????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性能測試手機(jī)號驗(yàn)證碼登錄示例詳解的詳細(xì)內(nèi)容,更多關(guān)于python手機(jī)號驗(yàn)證碼登錄測試的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用在Python中數(shù)值模擬研究氣體擴(kuò)散
在 Python 中,可以使用數(shù)值模擬來研究氣體擴(kuò)散。本文就來通過一些示例為大家講講具體的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2023-01-01
Python中將字符串轉(zhuǎn)換為列表的常用八種方法
本文介紹了Python中將字符串轉(zhuǎn)換為列表的八種常用方法,包括split()方法、列表解析、正則表達(dá)式、str()函數(shù)、map()函數(shù)、re.split()、re.finditer()和逐字符遍歷,感興趣的可以了解一下2024-07-07
Python遍歷pandas數(shù)據(jù)方法總結(jié)
本篇文章給大家詳細(xì)介紹了Python中遍歷pandas數(shù)據(jù)方法以及相關(guān)注意點(diǎn),對此有興趣的朋友參考學(xué)習(xí)下吧。2018-02-02
python3中利用filter函數(shù)輸出小于某個數(shù)的所有回文數(shù)實(shí)例
今天小編就為大家分享一篇 python3中利用filter函數(shù)輸出小于某個數(shù)的所有回文數(shù)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python創(chuàng)建與遍歷List二維列表的方法
這篇文章主要介紹了python創(chuàng)建與遍歷List二維列表的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-08-08

