• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 淘寶網 持續集成的 嘗試(2)

    發表于:2012-05-03來源:Taobao QA Team作者:heyun點擊數: 標簽:持續集成
    在depend的數據類中定義全局靜態數據載體屬性,這是一個ThreadLocal對象,能進行線程安全的數據存儲操作。 在被測試應用所有方法入口處插入以下代碼,可

      在depend的數據類中定義全局靜態數據載體屬性,這是一個ThreadLocal對象,能進行線程安全的數據存儲操作。

      在被測試應用所有方法入口處插入以下代碼,可以取得整個調用鏈中所有類與方法名,并將此信息存入全局數據載體中。

      StackTraceElement[] stackTrace = new Throwable().getStackTrace();

      stackTrace[1].getClassName());

      stackTrace[1].getMethodName();

      根據各種類型應用預先設置好入口類,入口類中插入特定代碼以取回URL、特定參數值(如tair的名字空間),下面以webx應用為例說明:

      Webx應用的入口類名為com.xxx.xxxx.xxxx.WebxFrameworkFilter,入口方法為doFilter(request,response,chain),要在此方法的第一行插入如下指令以從request對象中取回URL,并將此URL和上述信息存放在一起,最終傳回服務器進行分析處理。

      aload_1

      invokestatic com.taobao.depend.InfoPicker.getUrl(javax.servlet.http.HttpServletRequest)

      取tair的名稱空間以及其他的值,都是需要依賴特定的API的。

      在服務器端,將所有的URL、方法調用鏈信息去重后存入數據庫,即完成依賴關系收集。

      從SVN取回某個變更了的方法名,取回所有受到影響的方法列表

      實現方法:使用HttpClient開源組件發送請求到URL:

      http://XXXX:8080/depend/rest.do,同時帶上如下參數:

      名稱 類型 必選 描述 示例值

      api String 是 method.previousMethod.get

      v String 是 API版本號,請設置成0.1 0.1

      app_name String 是 應用名稱 xxxx

      class_name String 是 類名稱 com.xxx.xxx.xxxxx. xxxxxx

      method_name String 是 方法名稱 xxx

      ivk_type Integer 是 調用方式。0為全部,1為本地調用,2為遠程調用。 0

      valid_day Integer 否 有效日志天數。查詢時只使用有效天數之內的日志。默認值為30天 7

      format String 否 返回的數據格式,前期支持json json

      請求的返回值為json格式:

      {

      “app_name”: “xxxx”,

      “class_name”: “com.taobao.xxx.xxx.xxx”,

      “method_name”: “xxxx”,

      “methods”:

      [{

      “app_name”:”xxxx”,

      “class_name”: “com.taobao.xxx.xxx.xxx”,

      “method_name”: “xxxxx”,

      “ivk_count”: 105

      },{

      “app_name”:”xxxx”,

      “class_name”: “com.taobao.xxxxx”,

      “method_name”: “xxx”,

      “ivk_count”: 13048

      }]

      }

      其中[ ]中的內容即為受影響的方法列表(包含類名)。

      其他API的調用方法相同,參數請參照原文檔。

      對于測試類里面的方法,可以通過解析獲取到一個測試類里面的方法所直接調用的方法列表。

      4. 用例來源與組織

      來源: Web UI; API; Android; IOS;

      組織:

      業務線回歸(on time): P0,P1,P2,P3;

      公司級回歸(on demand): P0, P1;

      精準回歸(on event): P0,P1,P2,P3;

      通過用例的邏輯操作,可自由加入回歸實驗室;

      5. 時間分析

      WebUI腳本Profiler

      現狀:WebUI腳本執行時間長,7000個TC,在70臺機器執行需要3小時;而測試人員并不能分析出其中的性能瓶頸:automan框架引起的、腳本編寫、或者是被測系統響應慢;

      辦法:提供WebUI腳本的運行各環節的時間消耗,以及腳本中各個step的時間消耗,推送到kelude平臺匯總分析;

      WebUI腳本的執行給出硬性規定,5分鐘算超時,10分鐘回歸系統強行結束;

      從近2周的數據,我們已經準確的分析出了automan平臺的瓶頸,以及 淘寶被測系統的瓶頸,運行最慢的腳本等;

      例如:3.6分析了最近7天,平均訪問超過 5S 的10次的URL 共有50+個;

      價值:直接給測試員提供性能瓶頸;分析出淘寶的性能瓶頸URL;

      2012.3.14的回歸時間:

      l

      6. 環境部署

      Daily下應用的部署

      現狀:目前主站應用數大致為 800多個,應用的daily環境為 1120多個(虛機)。

      基本的部署過程: build.sh先更新代碼和配置項打包后進入以下過程

      部署方式

      目前部署已經實現web化操作 daily環境的建立和維護人為scm,開發、測試、scm都可以有權限來進行部署

      在scm.taobao.net平臺中申請環境部署權限,可以通過頁面實現以下部署

      今年daily環境將要進行的工作:

      1.daily主要應用梳理,備機方式

      解決問題:應用部署時,對測試的影響

      應用出現問題,可以切換到備機

      2.二套標準環境推廣

      項目、沙箱或者開發環境可以綁定二套標準環境,提升環境的穩定性

      7. 測試環境(daily 環境)穩定

      Daily下應用部署的監控

      現狀:對于daily下應用的部署情況只有片面、粗略的了解,沒有辦法基于數據做一些分析

      辦法:收集daily下所有應用的部署事件:svn, ip, app等,后續可挖掘出跟環境相關的很多信息:例如部署次數最多的應用;

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>