您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“python怎么對手機號綁定進行壓測”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python怎么對手機號綁定進行壓測”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
請求發送驗證碼接口,發送成功(未綁定的手機號,用戶登錄狀態)可以獲取到登錄的一個參數traceNo
使用用戶登錄校驗令牌、traceNo
、短信驗證碼、手機號請求綁定手機號接口
手機號校驗,排除一些不存在的號段,11位數字類型(接口傳string
類型)
間隔(60s)內不允許發第二條短信,短信有效期同隔間
自然天不允許發10條以上的短信
驗證碼隨機和traceNo
必需從發送驗證碼接口獲得
限制條件已經做成可配置,可以隨時更改重啟服務即可
選中14號段,用戶手機號=14+uid
測試環境固定驗證碼
uid是9開頭的,所以單個用戶的綁定手機號在149
和148
之間切換,149
為初始狀態,這里并沒有使用每次換一個新手機號,第一是怕出現偶然重復,第二是數據維護不容易
將發送驗證碼和綁定手機號兩個接口放在一起壓測,需要準備一批測試用戶
單個線程綁定一個用戶,然后不停地發送驗證碼和綁定新手機號
增加基類屬性phone
和模塊類屬性lastTraceNo
來完成參數傳遞
threadmark用來標記任務的,我在模塊方法里面返回了traceNo,表示唯一用戶登錄接口請求操作,方便開發追蹤日志。
/** * 每個用戶先發短信然后綁定手機號,手機號分為148和149切換,后8位于uid后8位.最后會把測試數據固定在149號段 */ class BindPhone 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 Bind(info, times) } new Concurrent(threads, "學生留存1.2.3綁定手機號").start() thread.times { def base = getBase(it) def info = new UserInfo(base) info.bindPhoneInit() } FanLibrary.testOver() } static class Bind extends ThreadLimitTimesCount<UserInfo> { public LoginTel(UserInfo info, int times) { super(info, times, null) } @Override protected void doing() throws Exception { threadmark = t.bindPhone() } } }
/** * 獲取用戶信息 * * @return */ public JSONObject getUserInfo() { String url = UserInfoApi.USERINFO; JSONObject params = getParams(); JSONObject response = getPostResponse(url, params); output(response); return response; } /** * 綁定手機號 * * @return */ public JSONObject bindPhone(String phone) { sendCodeOnline(phone); String url = UserInfoApi.BIND_PHONE; JSONObject params = getParams(); params.put("phone", phone); params.put("traceno", lastTraceNo); params.put("code", Common.TEL_CODE); JSONObject response = getPostResponse(url, params); output(response); return response; } /** * 綁定手機號,壓測用 * * @return */ public String bindPhone() { phone = phone.startsWith("149") ? 148 + phone.substring(3) : 149 + phone.substring(3); bindPhone(phone); return lastTraceNo; } /** * 初始化手機號,默認id前兩位改成14 * * @return */ public JSONObject bindPhoneInit() { JSONObject userInfo = getUserInfo(); String tel = userInfo.getJSONObject("data").getString("tel"); if (tel.startsWith("149")) return null; phone = 149 + phone.substring(3); sendCodeOnline(phone); String url = UserInfoApi.BIND_PHONE; JSONObject params = getParams(); params.put("phone", phone); params.put("traceno", lastTraceNo); params.put("code", Common.TEL_CODE); JSONObject response = getPostResponse(url, params); output(response); return response; } /** * 發送綁定手機號信息 * * @param phone * @return */ public JSONObject sendCodeOnline(String phone) { String url = UserInfoApi.SEND_CODE_ONLINE; JSONObject params = getParams(); params.put("scene_type", 1);//1綁定手機 params.put("phone", phone); output(phone); JSONObject response = getPostResponse(url, params); output(response); if (isRight(response)) { lastTraceNo = response.getJSONObject("data").getString("traceno"); } return response; }
讀到這里,這篇“python怎么對手機號綁定進行壓測”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。