<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            工商銀行數據中心接口冒煙測試方法(3)

            發(fā)表于:2016-11-17來(lái)源:工商銀行數據中心作者:李雁南點(diǎn)擊數: 標簽:冒煙測試
            實(shí)現方案: 實(shí)現架構非常簡(jiǎn)單,就是一套 開(kāi)源 的ELK日志采集架構,加上python開(kāi)發(fā)的接口測試框架和結果統計功能,如下圖所示: 主要步驟如下: 1,通過(guò)

            實(shí)現方案:

            實(shí)現架構非常簡(jiǎn)單,就是一套開(kāi)源的ELK日志采集架構,加上python開(kāi)發(fā)的接口測試框架和結果統計功能,如下圖所示:

            1.jpg

            主要步驟如下:

            1,通過(guò)開(kāi)源ELK實(shí)現應用日志的采集與管理。在客戶(hù)端部署logstash agent,并配置日志采集策略;日志記錄以key-value的格式上送REDIS內存數據庫,這個(gè)設計主要是為了在client和server之間做一個(gè)緩沖,保證了日志記錄的0丟失;ELSTICSEARCH提供了日志的全文檢索功能,并提供了API服務(wù)用來(lái)外部調用

            2,利用python的pyes庫調用ELSATICSEARCH的API服務(wù),根據特征字段抓取xml和json格式的接口報文。

            3,對采集到的接口報文進(jìn)行格式化處理,格式化日期、流水號或時(shí)間戳等字段,并對格式化后的報文做MD5的校驗。

            4,利用python的http和socket接口庫實(shí)現接口測試案例,這里可能要根據不同應用做一些客戶(hù)化,盡量通過(guò)通用的方式實(shí)現。

            5,對于異常的測試案例進(jìn)行自動(dòng)退出。為了保證案例集的可用性,我們這里做了一個(gè)簡(jiǎn)單的接口退出規則,如果執行超過(guò)三次且每次都失敗的接口案例,會(huì )被系統自動(dòng)定義為失效案例。

            6,對案例的執行結果進(jìn)行成功率分析和錯誤歸因分析,最終發(fā)現存在的接口問(wèn)題。這里不再關(guān)注每一個(gè)測試案例返回的成功和失敗,而是針對每一類(lèi)接口的成功率、失敗率和錯誤類(lèi)型進(jìn)行統計,從數值和數量變化的角度去發(fā)現問(wèn)題。

            7,接口定義平臺提供了一個(gè)web的接口定義模塊,幫助業(yè)務(wù)測試人員根據接口文檔編輯接口要素,并拼裝成接口報文進(jìn)行測試。對于復雜的交易場(chǎng)景(比如流程長(cháng)或交互次數多),可以在平臺上編排接口的調用順序和前后項邏輯關(guān)系,實(shí)現一個(gè)比較復雜場(chǎng)景的接口測試。雖然這個(gè)功能更偏重于自動(dòng)化測試,但是這個(gè)功能幫助我們實(shí)現了無(wú)法通過(guò)應用前段功能測試覆蓋的接口測試,是非常好的補充。

            通過(guò)上述方法,我們在一周的時(shí)間里,在3個(gè)應用進(jìn)行了試驗,發(fā)現了30多個(gè)接口,接近2萬(wàn)筆報文案例,案例的有效性可以達到了97%。通過(guò)每日對這些案例進(jìn)行自動(dòng)化測試,發(fā)現了一些接口功能和應用環(huán)境配置的問(wèn)題。

            原文轉自:http://blog.tingyun.com/web/article/detail/1340

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>