iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
0
Software Development

.Net微服務輕旅行30天系列 第 25

Day 25: 叫郵差跟新人幫你測試Web API(1)

Postman 簡單介紹

開發web api的應該多半有聽過這套工具,寫code到一段落,通常跑起來開啟瀏覽器看一下回傳值,
依靠打開瀏覽器輸入網址只能測試get的結果,其他post, delete之類的需要另外寫測試code或者使用第三方工具來測試結果,Postman就是這樣的一套工具,提供GUI介面讓我們可簡單快速的測試Rest web API

先注意code裡面的API

簡化範例,只使用兩個get

    [Route("api/[controller]")]
    public class ProductsController : Controller
    {
        // GET api/products
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "Product1", "Product2" };
        }

        // GET api/product/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return $"Product{id}";
        }
    }

簡單使用範例

以下是簡單的操作範例,選擇對應的http method --> 填入web api位置 --> 按下send -->得到結果
其他像是post就還需要注意body跟body對應的格式,相關文章有很多,這邊就不介紹了
https://ithelp.ithome.com.tw/upload/images/20180113/20107867Il51LGEqcT.png

使用collection來組織測試

在下圖的紅框處可以看到使用collection來組織測試,不僅僅只是整理方便而已,collection同時還可以設定特定的環境變數共用,後面還可以使用Postman Runner跑批量的測試
https://ithelp.ithome.com.tw/upload/images/20180113/20107867oYxpS81oOB.png

在Postman裡面設定環境變數

設定環境變數可以利於我們重複利用已經做好的測試,舉例來說,服務位置改變。
如果我們寫在Postman的位置像是http://localhost:1234/api/....
一旦port改變我們就需要把所有的測試重新改變,利用環境變數,我們可以一次改變在collection裡面的服務位址,
我們先把位置改成{{Url}}/api/Products
https://ithelp.ithome.com.tw/upload/images/20180113/20107867O0FIr1Mvzp.png
接著右上角有一個齒輪的符號,開啟Manage Environments,設定Url,在右上角選擇環境為Products Service
https://ithelp.ithome.com.tw/upload/images/20180113/20107867cU5H1RdZCr.png
後面不論服務位置怎麼變,我們只要更動環境變數就好
另外特別要注意的是在Postman裡:

  • Environment variable: 只在單一collection裡面有效
  • Global variable : 所有collection共用

針對不同的request可以在Pre-request裡面更動環境跟全域變數

如果有特別的request需要更動環境變數,也可以在pre-request Script裡面設定

// Set environment variable
postman.setEnvironmentVariable("ASPNETCORE_ENVIRONMENT","Production");

// Clear environment variable
postman.clearEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

// Set global variable
postman.setGlobalVariable("ASPNETCORE_ENVIRONMENT","Production");

// Clear global variable
postman.clearGlobalVariable("ASPNETCORE_ENVIRONMENT");

但是要特別注意這個不是暫時性的,更動就會直接改寫環境設定了使用上要特別注意。
不知道指令怎用,旁邊還有code snippets可以參考!
https://ithelp.ithome.com.tw/upload/images/20180113/20107867YS15jAR4b0.png


上一篇
Day 24: Steeltoe OSS提供的Circuit Breaker - Hystrix Netflix (4)
下一篇
Day 26: 叫郵差跟新人幫你測試Web API(2)
系列文
.Net微服務輕旅行30天30

尚未有邦友留言

立即登入留言