mock-針對restful接口,開發mock測試服務
一、為什麼使用mock測試
有了Mock,前、後端人員隻需要定義好接口文檔就可以開始并行工作,互不影響,隻在最後的聯調階段往來密切;
後端與後端之間如果有接口耦合,也同樣能被Mock解決;
測試過程中如果遇到依賴接口沒有準備好,同樣可以借助Mock;
不會出現一個團隊等待另一個團隊的情況。這樣的話,開發自測階段就可以及早開展,進而發現缺陷的時機也提前了,有利于整個産品品質以及進度的保證。
二、使用 nginx 解決,不同域名、端口 指向同一個mock站點問題
1.nginx 配置
#轉發 mock 請求(如果需要監聽多個端口,需配置多個 server 節點)
server {
listen 80; #監聽端口
server_name ""; #監聽域名 “” 為80端口上所有域名
location / {
proxy_set_header Host $host:$server_port; #mock時需要将此内容設定為用戶端實際請求的“域名”和“端口号”
proxy_set_header X-Forward-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header xxx-test $host,xxx,111,222; #自定義測試http 頭資訊
proxy_pass http://localhost:8000/; #轉發請求到以下位址
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2.nginx 常用指令
sudo nginx
啟動nginx
sudo nginx -t
判斷配置檔案是否正确
sudo nginx -s stop
停止nginx:
sudo nginx -s reload
重新開機nginx:
三、傳回mock試資料
不同待mock的服務位址,如:
http://www.aa.com/d/e/f
http://www.bb.com:8080/a/b/c
http://www.cc.com:9090/1/2/3
都可以通過 nginx 的配置進行轉發。在 mock站點中可以得到請求的域名、端口、url位址等資訊;
既然可以得到域名、端口、url,就可以很友善的拼接出一個絕對的 URL 位址,有了URL位址就可以确定對應的響應資料了;
至此,開發一個 mock 測試站點的可行性分析已經結束,東西不多但是作用很大。