最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python性能測試對手機號綁定進行壓測

 更新時間:2022年07月21日 14:59:09   作者:FunTester  
這篇文章主要為大家介紹了python性能測試對手機號綁定進行壓測示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

最近遭遇了綁定手機號相關(guān)的壓測需求,有了手機號登錄的經(jīng)驗和測試數(shù)據(jù),這次算起來比較簡單。最重要的是難點就是要求開發(fā)配合調(diào)整配置已經(jīng)在上一期文章:手機號驗證碼登錄性能測試中問題解決了,綁定手機號唯一的難點就是如何在單賬號綁定的過程中不斷切換手機號,而且保證最后賬號的綁定手機號還是一開始的14+uid的模式。

業(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)境固定驗證碼

uid是9開頭的,所以單個用戶的綁定手機號在149148之間切換,149為初始狀態(tài),這里并沒有使用每次換一個新手機號,第一是怕出現(xiàn)偶然重復,第二是數(shù)據(jù)維護不容易

測試方案:

將發(fā)送驗證碼和綁定手機號兩個接口放在一起壓測,需要準備一批測試用戶

單個線程綁定一個用戶,然后不停地發(fā)送驗證碼和綁定新手機號

增加基類屬性phone和模塊類屬性lastTraceNo來完成參數(shù)傳遞

壓測腳本:

threadmark用來標記任務(wù)的,我在模塊方法里面返回了traceNo,表示唯一用戶登錄接口請求操作,方便開發(fā)追蹤日志。

/**
?*?每個用戶先發(fā)短信然后綁定手機號,手機號分為148和149切換,后8位于uid后8位.最后會把測試數(shù)據(jù)固定在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;
????}
????/**
?????*?發(fā)送綁定手機號信息
?????*
?????*?@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性能測試對手機號綁定進行壓測的詳細內(nèi)容,更多關(guān)于python手機號綁定性能測試的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python3 基本數(shù)據(jù)類型

    詳解Python3 基本數(shù)據(jù)類型

    這篇文章主要介紹了Python3 基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • pytest實現(xiàn)多進程與多線程運行超好用的插件

    pytest實現(xiàn)多進程與多線程運行超好用的插件

    本文主要介紹了pytest實現(xiàn)多進程與多線程運行超好用的插件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 對Python3之方法的覆蓋與super函數(shù)詳解

    對Python3之方法的覆蓋與super函數(shù)詳解

    今天小編就為大家分享一篇對Python3之方法的覆蓋與super函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Sanic框架異常處理與中間件操作實例分析

    Sanic框架異常處理與中間件操作實例分析

    這篇文章主要介紹了Sanic框架異常處理與中間件操作,結(jié)合實例形式較為詳細的分析了Sanic框架拋出異常、異常處理、中間件、監(jiān)聽器相關(guān)原理與操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python裝飾器的兩種使用心得

    Python裝飾器的兩種使用心得

    裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic(Python范兒),今天通過本文給大家分享Python裝飾器使用小結(jié),感興趣的朋友一起看看吧
    2021-09-09
  • 深入解析NumPy中的Broadcasting廣播機制

    深入解析NumPy中的Broadcasting廣播機制

    在吳恩達老師的深度學習專項課程中,老師有提到NumPy中的廣播機制,同時那一周的測驗也有涉及到廣播機制的題目。那么,到底什么是NumPy中的廣播機制?本文就來介紹一下
    2021-05-05
  • python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案

    python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案

    當使用 Matplotlib 繪制多個子圖(subplots)時,如果標簽或標題文字交叉或重疊,遇到這樣的問題如何處理呢,下面小編給大家介紹了python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案,需要的朋友可以參考下
    2024-06-06
  • Python的Flask框架中Flask-Admin庫的簡單入門指引

    Python的Flask框架中Flask-Admin庫的簡單入門指引

    這篇文章主要介紹了一個Python的Flask框架中Flask-Admin庫簡單入門的指引,包括介紹和簡單的部署等,需要的朋友可以參考下
    2015-04-04
  • 使用OpenCV實現(xiàn)人臉圖像卡通化的示例代碼

    使用OpenCV實現(xiàn)人臉圖像卡通化的示例代碼

    這篇文章主要介紹了使用OpenCV實現(xiàn)人臉圖像卡通化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • PyQt4 treewidget 選擇改變顏色,并設(shè)置可編輯的方法

    PyQt4 treewidget 選擇改變顏色,并設(shè)置可編輯的方法

    今天小編就為大家分享一篇PyQt4 treewidget 選擇改變顏色,并設(shè)置可編輯的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

曲靖市| 肥西县| 南汇区| 江口县| 北流市| 海盐县| 城口县| 玉田县| 光泽县| 娄底市| 高青县| 上林县| 垫江县| 綦江县| 小金县| 桃园市| 曲麻莱县| 剑阁县| 蓝田县| 临江市| 翁牛特旗| 长沙市| 青河县| 山阳县| 六枝特区| 潜江市| 栖霞市| 泊头市| 施秉县| 广南县| 蒙阴县| 门头沟区| 文昌市| 土默特右旗| 泸定县| 遂溪县| 伊吾县| 广元市| 离岛区| 德清县| 裕民县|