天天看點

mock-針對restful接口,開發mock測試服務

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 測試站點的可行性分析已經結束,東西不多但是作用很大。

繼續閱讀