[技術項目3]--流量回放項目總結


1、背景

最近做了一個測試項目-流量回放。我主要負責前端的工作。
 
該項目主要功能是回放線上的接口數據,用以進行自動化測試,畢竟線上的數據大,場景多。拿到這批數據測試用例后,無論是用來壓測還是用來進行接口自動化價值都是很大的
 
流量回放的價值:通過記錄線上流量,在開發或者測試環境回放,來發現系統是否能夠正常運行,降低代碼變動整體系統帶來的風險。
 
 

2、技術背景

  • 后端用的springboot,前端vue
  • 后端主要是從es中讀取數據,將接口的url、入參數、出參數等需要的數據,進行過濾,放到對應的數據庫中。然后組裝對應接口的用例,生成最終的測試用例,將數據流出供下面業務場景使用
  • 前端搭建測試平台,主要功能有項目管理:以項目和業務做區分,管理項目中的接口;用例執行:單條多條用例執行;任務管理:建立任務,以任務的維度進行管理對應接口的用例
 
流程圖

 

 

3、主要功能展示

 

 

主要分為3大塊:接口庫、流量回放、系統配置

3.1、接口庫

以項目的維度將接口分類,一個項目下多個接口,一個接口對應多條用例【該功能是對拿到的數據進行的延伸功能】
最終頁面是一個接口對應的用例頁面。可以對單用例執行,單接口多用例執行,對該接口的用例進行增刪改查,可批量導入用例
 

3.2、流量回放

這個是主要的功能,以創建計划的維度將計划與接口關聯。當然每個接口都有用例的屬性,自然三者進行了關聯
  • 計划:創建了某個計划就可以選擇關聯多個接口,可以將該計划整個運行,可以單個接口運行,當然也可以一個接口下的某個用例運行。最終生成這個計划的報告。ps該計划的報告肯定是多條,每個維度運行一次就生成一次報告。報告中有該計划每次任務維度的報告。有整個計划的報告
 
  • 計划下接口:就是一個計划可以關聯多個接口。每個接口進行更新,就是定時拉取該接口下從es拿到的回放的接口數據。
 
  • 接口下用例:這個就是對單個接口進行的操作。運行用例時因為有對應操作,所以可以手動設置期望結果,如code=100等;可以自動設置期望結果:將上次運行的接口設置為期望結果;因為有些接口是post請求,對一些一次性操作的參數需要修改下,如參數中的郵箱等,所以設置了批量修改參數,對該接口下用例進行批量替換參數;進行比對的時候有些返回接口不需要比對,如時間等,所以可以設置忽略項,運行時比對就忽略了該項;單個接口可以編輯它的參數域名地址期望結果;
 

3.3、系統配置

就是為接口運行進行的輔助功能設置
  • 用戶列表:不用說了,就是該項目的用戶表
  • 環境配置:設置的環境信息,對應有環境的header

 

4、部署總結

 
最終前后端都完成后,進行的服務器的部署,將項目放到服務器上,在jenkins上部署了對應的項目,以便有代碼更新時,可以方便部署
 

4.1、Jenkins配置項目

配置對應的git地址;配置對應的運行腳本;運行完成后將對應的包放到服務器上固定的位置A(npm run build:prod后打成一個dist的文件夾,需要將文件夾壓縮成dist.zip的包)這個備注中說明下如何打包成壓縮文件
rm -rf /neworiental/latest/aliceVue/* && unzip -d /neworiental/latest/aliceVue/ /neworiental/backupalice/dist.zip

  

4.2、服務器配置

在上一步驟中的A位置創建文件夾,放項目的包
在/neworienta目錄創建backupalice目錄
在/neworiental/latest/創建aliceVue目錄
 
 
設置nginx:
cd /usr/local/nginx/conf/site
vim alice.conf
 
====前端nginx====
server {
    listen 80;
    server_name   alice.xdf.cn;

   location /alice {
            alias /neworiental/latest/aliceVue/;
            index index.html;
            try_files $uri $uri/ /alice/index.html;
    }

    error_page 500 502 503 504 /50json.html;
    location = /50json.html {
        root   /usr/share/nginx/html;
    }

    location ~* ^/prod-api/(.*) {
        proxy_set_header       Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        proxy_read_timeout 600;
        if ($request_uri ~ /prod-api/(.+))
        {
            set $p1 $1;
        }

        proxy_pass http://alice-api/alice/$p1;

   }

}



后端配置server
upstream alice-api {
        server 127.0.0.1:9898;
        keepalive 1000;
}

  

重啟nginx
../../sbin/nginx -s reload

5、前端打包后,自動生成dist.zip壓縮包

vue項目運行后生成dist.zip壓縮文件
 

5.1、下載插件

filemanager-webpack-plugin
npm install filemanager-webpack-plugin --save-dev
 

5.2、配置使用

 
老版本在webpack.prod.js文件下
新版本在vue.config.js文件下
 
上方引用:
const FileManagerPlugin = require('filemanager-webpack-plugin')
在configureWebpack中增加plugins。如紅框中所示

 
 

 

 

6、項目總結

這算是完整的第二個項目,第一個項目缺少了部署這一步,這個項目從最開始到上線每個流程都參與進來了。在這個項目中前后端不是一個人,更多的需要前端先去mock數據,然后在跟后端聯調。最終的部署上線流程因為是第一次做,學到了很多,可能現在還是比葫蘆畫瓢的去配置各種東西,不太知道原理,但是最起碼入門了。相信接觸的新事物多了,以后會越來越熟練的。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM