91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么對手機號綁定進行壓測

發布時間:2022-07-21 17:25:28 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“python怎么對手機號綁定進行壓測”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python怎么對手機號綁定進行壓測”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

業務邏輯:

請求發送驗證碼接口,發送成功(未綁定的手機號,用戶登錄狀態)可以獲取到登錄的一個參數traceNo

使用用戶登錄校驗令牌、traceNo短信驗證碼、手機號請求綁定手機號接口

基本的校驗規則如下:

手機號校驗,排除一些不存在的號段,11位數字類型(接口傳string類型)

間隔(60s)內不允許發第二條短信,短信有效期同隔間

自然天不允許發10條以上的短信

驗證碼隨機和traceNo必需從發送驗證碼接口獲得

解決方案:

限制條件已經做成可配置,可以隨時更改重啟服務即可

選中14號段,用戶手機號=14+uid

測試環境固定驗證碼

uid是9開頭的,所以單個用戶的綁定手機號在149148之間切換,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怎么對手機號綁定進行壓測”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彩票| 白河县| 南郑县| 德州市| 勐海县| 万山特区| 宜昌市| 定远县| 芮城县| 黑河市| 于田县| 武鸣县| 台北市| 监利县| 元朗区| 谷城县| 固原市| 郴州市| 加查县| 陈巴尔虎旗| 平舆县| 岐山县| 绥芬河市| 资兴市| 通海县| 平果县| 宝坻区| 石嘴山市| 富川| 沁水县| 斗六市| 台中市| 玉溪市| 潢川县| 鄂托克前旗| 松溪县| 山东| 盈江县| 项城市| 张家川| 阿勒泰市|