Load Testing With K6

前言 POSTMAN 通常是目前在做 API 層級的測試時的首選,不過通常 API 的測試不會只有 End-to-End 的測試就結束了,有些較完整的還會包含負載測試(Load Test),不過若只有用 POSTMAN 就想要完成 Load test 那就辛苦了。 POSTMAN Test Script 這邊我們就使用 POSTMAN 自帶的 Collection (Postman Echo) 來做實驗,這邊簡單起見就只抓一個 Get method 來做。匯出的檔案大概會長以下這樣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 { "info": { "_postman_id": "{_postman_id}", "name": "{your_collection_name}", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "{your_request_name}", "event": [ { "listen": "test", "script": { "id": "e6b1db6b-fac1-4f5c-820e-d0a6806b1a1e", "exec": [ "tests[\"Body contains headers\"] = responseBody.has(\"headers\");", "tests[\"Body contains args\"] = responseBody.has(\"args\");", "tests[\"Body contains url\"] = responseBody.has(\"url\");", "", "var responseJSON;", "", "try { responseJSON = JSON.parse(responseBody); }", "catch (e) { }", "", "", "tests[\"Args key contains argument passed as url parameter\"] = 'test' in responseJSON.args" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://postman-echo.com/get?test=123", "protocol": "https", "host": [ "postman-echo", "com" ], "path": [ "get" ], "query": [ { "key": "test", "value": "123" } ] }, "description": "The HTTP `GET` request method is meant to retrieve data from a server. The data\nis identified by a unique URI (Uniform Resource Identifier). \n\nA `GET` request can pass parameters to the server using \"Query String \nParameters\". For example, in the following request,\n\n> http://example.com/hi/there?hand=wave\n\nThe parameter \"hand\" has the value \"wave\".\n\nThis endpoint echoes the HTTP headers, request parameters and the complete\nURI requested." }, "response": [] } ], "protocolProfileBehavior": {} } 這個方式的缺點就是 Postman 匯出的最小單位是 Collection ,所以很可能實際運用時你會需要把本機測試用的 Collection 與壓力測試用的分成兩個 Collection。 ...

July 15, 2020 · 4 分鐘 · 772 字

Mock Api With POSTMAN

前言 在開發時應該很多時候都需要跟第三方合作,大多數的時候都是用 API 的方式串接,所以都會先談好介接的格式,像是傳入的資料要用 JSON 或是 XML 等, Http Method 要用 GET, POST, PUT, DELETE, PATCH ,但是當這些規格都談完的時候要進入開發的時候你就會需要一個 Dummy API 可以回應你一個罐頭訊息讓你可以在開發時不會因為對方還沒好就讓你的開發無法進行。 不過,若你手邊有 POSTMAN 的話這個需求可以很輕易的做到。 前製準備 安裝 POSTMAN New 一個 Collection New 一個 request 設定罐頭訊息內容 在設定罐頭訊息之前,會需要先有一個 request,所以點擊 request 之後,就看到畫面的右上方的 Examples 並點擊下去。 點擊後就可以進入編輯。底下有一個很大的輸入框叫 Example Response,它可以輸入 Body, Header, Status Body Heaser Status 回應的內容,這邊將會是去打 Mock Api 時的回應內容 這邊就是打 Mock Api 時他的回應 Header 可以不予填寫 就是回應時的Http Status Code 像是 500 Internal Server Error 或是 200 OK, Response Status Codes 可以參考這裡 ...

June 13, 2019 · 2 分鐘 · 234 字

Use POSTMAN Send SOAP Request

前言: 目前想到要測試 Web Service 的首選或是第一個印入腦簾的我想應該就非 POSTMAN 莫屬了。不過目前大多測試的都是 Restful api 或是資料交換格式用 JSON ,要見到這以外的方式通常會比較少,或是要與舊系統介接時才會遇到,而剛好舊系統通常在做 Web Service 時都是選用 SOAP 做資料交換的協議,因此如何讓 POSTMAN 這個新工具跟老骨頭(SOAP)做搭配就是這篇主要要解決的問題。 前置準備 範例網站 POSTMAN SoapUI 使用 SoapUI 組 message 使用 SoapUI 來幫忙組 message 的話會讓建立 message 的過程輕鬆很多。 首先開啟 SoapUI 後在 將 WSDL 的位置填入,並給一個好識別的名稱,記得把 Create Request 打勾 建立後應該會長這樣 右鍵產生一個新的 request SoapUI 會協助產生一個 message 樣板,複製拿去用即可 這個產生出來的就是去打這個 Web Service 的 Method1 方法,它會產生一個樣板,只要把這個樣板複製到 POSTMAN 的 request body 就好,格式就選 raw (text/xml), http method 選擇 POST,比較需要注意的就是 header 要帶上 SOAPAction ,而他的值就要看一開始去打 WSDL 時該值為何。 ...

March 12, 2019 · 1 分鐘 · 99 字