線上日誌回放|線上流量回放、測試左移-http解析篇

本篇介紹線上日誌回放|線上流量回放、測試左移-http解析篇,接入報警篇見https://blog.csdn.net/weixin_42498050/article/details/105439833

 

線上日誌回放

平時測試可以訪問 :

JSON和GET請求字符串互轉

https://qqe2.com/jsontool/json2get

1.背景:由於搜索就2個接口,接口返回數據在6000-8000行。每次客戶端不同版本請求接口,接口返回的格式,取決於客戶端傳的sdkver、version、ver這三個字段。
每次在接口上線之前,讀取線上請求參數日誌,在預發環境改變以上3個傳參的最新值,做線上日誌回放,保證預發環境最新接口正常
2.用HashMap對appScene的來源做去重統計,再篩選出搜索業務線的場景
3.從數據庫讀取出日誌,每次讀取5000行,版本號爲線上最新版本即可,獲取每條SQL的查詢字段內是否存在content字段(裏面爲所有日誌,origialParam爲客戶端全部傳參)
4.解析xx.content.origialParam的json:找到字符串中{第一次出現的位置,截取字符串
5.把日誌裏的json請求轉化爲get請求,調用httpClient,拼接域名+接口名+傳參,解析response請求,對key value做斷言

 

  // 參數格式化
    private static List<NameValuePair> getParamsList(Map<String, String> paramsMap) {
        if (paramsMap != null && paramsMap.size() != 0) {
            List<NameValuePair> params = new ArrayList();
            Iterator var2 = paramsMap.entrySet().iterator();

            while (var2.hasNext()) {
                Map.Entry<String, String> map = (Map.Entry) var2.next();

                // 預發環境最新版本日誌回放,請求參數打開以下if else,註釋掉最後一行
                if (map.getKey().equals("sdkver")){
                    params.add(new NameValuePair(map.getKey() + "", "310"));

                }else if(map.getKey().equals("version")){
                    params.add(new NameValuePair(map.getKey() + "", "8.6.4"));

                }else if(map.getKey().equals("ver")){
                    params.add(new NameValuePair(map.getKey()+"","8.6.4"));

                }else{
                    // 參數格式化,commons-httpclient自帶的方法NameValuePair會自動將==轉爲=,還有特殊符號格式化
                    // NameValuePair是簡單名稱值對節點類型。多用於Java像url發送Post請求。在發送post請求時用該list來存放參數
                    params.add(new NameValuePair(map.getKey() + "", map.getValue() + ""));
                }

                // 線上版本日誌回放,請求參數註釋掉以上3個if else

//                params.add(new NameValuePair(map.getKey() + "", map.getValue() + ""));

            }

 

 

待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章