change: add post form data in demo

This commit is contained in:
debugtalk
2021-10-15 20:31:29 +08:00
parent ec604c9001
commit 54531339f8
6 changed files with 230 additions and 34 deletions
+10
View File
@@ -47,6 +47,16 @@ var demoTestCase = &TestCase{
AssertEqual("status_code", 200, "check status code"). AssertEqual("status_code", 200, "check status code").
AssertLengthEqual("body.json.foo1", 5, "check args foo1"). AssertLengthEqual("body.json.foo1", 5, "check args foo1").
AssertEqual("body.json.foo2", 12.3, "check args foo2"), AssertEqual("body.json.foo2", 12.3, "check args foo2"),
Step("post form data").
POST("/post").
WithParams(map[string]interface{}{
"foo1": "$varFoo1", // reference former extracted variable
"foo2": "${max($a, $b)}", // 12.3; step level variables are independent, variable b is 3.45 here
}).
Validate().
AssertEqual("status_code", 200, "check status code").
AssertLengthEqual("body.form.foo1", 5, "check args foo1").
AssertEqual("body.form.foo2", "12.3", "check args foo2"), // form data will be converted to string
}, },
} }
+157 -32
View File
@@ -7,11 +7,11 @@
}, },
"entries": [ "entries": [
{ {
"startedDateTime": "2021-10-11T20:33:08.070+08:00", "startedDateTime": "2021-10-15T20:29:14.396+08:00",
"time": 1348, "time": 1528,
"request": { "request": {
"method": "GET", "method": "GET",
"url": "https://postman-echo.com/get?foo1=Kie7p&foo2=34.5", "url": "https://postman-echo.com/get?foo1=HDnY8&foo2=34.5",
"httpVersion": "HTTP/1.1", "httpVersion": "HTTP/1.1",
"cookies": [], "cookies": [],
"headers": [ "headers": [
@@ -31,7 +31,7 @@
"queryString": [ "queryString": [
{ {
"name": "foo1", "name": "foo1",
"value": "Kie7p" "value": "HDnY8"
}, },
{ {
"name": "foo2", "name": "foo2",
@@ -49,7 +49,7 @@
"cookies": [ "cookies": [
{ {
"name": "sails.sid", "name": "sails.sid",
"value": "s%3AOf5eKs36eD8xIj5lio09zXrhVra1yPHo.PJyQYxoyPvXNUPal4Tj0OaJDLDJ7tZfZ%2BCL37XxD5Qg", "value": "s%3Az_LpglkKxTvJ_eHVUH6V67drKp0AGWW-.PidabaXOnatLRP47hVyqqepl6BdrpEQzRlJQXtbIiwk",
"path": "/", "path": "/",
"domain": null, "domain": null,
"expires": null, "expires": null,
@@ -62,7 +62,7 @@
"headers": [ "headers": [
{ {
"name": "Date", "name": "Date",
"value": "Mon, 11 Oct 2021 12:33:09 GMT" "value": "Fri, 15 Oct 2021 12:29:15 GMT"
}, },
{ {
"name": "Content-Type", "name": "Content-Type",
@@ -74,7 +74,7 @@
}, },
{ {
"name": "ETag", "name": "ETag",
"value": "W/\"12c-R4rXPU4pP2zRVaUP5eVfknZVx78\"" "value": "W/\"12c-1pyB4v4mv3hdBoU+8cUmx4p37qI\""
}, },
{ {
"name": "Vary", "name": "Vary",
@@ -82,7 +82,7 @@
}, },
{ {
"name": "set-cookie", "name": "set-cookie",
"value": "sails.sid=s%3AOf5eKs36eD8xIj5lio09zXrhVra1yPHo.PJyQYxoyPvXNUPal4Tj0OaJDLDJ7tZfZ%2BCL37XxD5Qg; Path=/; HttpOnly" "value": "sails.sid=s%3Az_LpglkKxTvJ_eHVUH6V67drKp0AGWW-.PidabaXOnatLRP47hVyqqepl6BdrpEQzRlJQXtbIiwk; Path=/; HttpOnly"
}, },
{ {
"name": "Connection", "name": "Connection",
@@ -92,27 +92,27 @@
"content": { "content": {
"size": 300, "size": 300,
"mimeType": "application/json; charset=utf-8", "mimeType": "application/json; charset=utf-8",
"text": "eyJhcmdzIjp7ImZvbzEiOiJLaWU3cCIsImZvbzIiOiIzNC41In0sImhlYWRlcnMiOnsieC1mb3J3YXJkZWQtcHJvdG8iOiJodHRwcyIsIngtZm9yd2FyZGVkLXBvcnQiOiI0NDMiLCJob3N0IjoicG9zdG1hbi1lY2hvLmNvbSIsIngtYW16bi10cmFjZS1pZCI6IlJvb3Q9MS02MTY0MmYwNS0xOTZjNjZhNDUzYjEyNTk4NTNiYzc1NGMiLCJ1c2VyLWFnZW50IjoiSHR0cEJvb21lciIsImFjY2VwdC1lbmNvZGluZyI6Imd6aXAifSwidXJsIjoiaHR0cHM6Ly9wb3N0bWFuLWVjaG8uY29tL2dldD9mb28xPUtpZTdwJmZvbzI9MzQuNSJ9", "text": "eyJhcmdzIjp7ImZvbzEiOiJIRG5ZOCIsImZvbzIiOiIzNC41In0sImhlYWRlcnMiOnsieC1mb3J3YXJkZWQtcHJvdG8iOiJodHRwcyIsIngtZm9yd2FyZGVkLXBvcnQiOiI0NDMiLCJob3N0IjoicG9zdG1hbi1lY2hvLmNvbSIsIngtYW16bi10cmFjZS1pZCI6IlJvb3Q9MS02MTY5NzQxYi01YjgyNTRjZTZjZThlNTU2NTRiNzc3MmQiLCJ1c2VyLWFnZW50IjoiSHR0cEJvb21lciIsImFjY2VwdC1lbmNvZGluZyI6Imd6aXAifSwidXJsIjoiaHR0cHM6Ly9wb3N0bWFuLWVjaG8uY29tL2dldD9mb28xPUhEblk4JmZvbzI9MzQuNSJ9",
"encoding": "base64" "encoding": "base64"
}, },
"redirectURL": null, "redirectURL": null,
"headersSize": 0, "headersSize": 0,
"bodySize": 300 "bodySize": 300
}, },
"serverIPAddress": "54.209.48.16", "serverIPAddress": "44.193.31.23",
"cache": {}, "cache": {},
"timings": { "timings": {
"dns": 137, "dns": 105,
"connect": 938, "connect": 1108,
"ssl": 579, "ssl": 721,
"send": 1, "send": 1,
"wait": 271, "wait": 312,
"receive": 1 "receive": 2
} }
}, },
{ {
"startedDateTime": "2021-10-11T20:33:09.646+08:00", "startedDateTime": "2021-10-15T20:29:16.120+08:00",
"time": 273, "time": 306,
"request": { "request": {
"method": "POST", "method": "POST",
"url": "https://postman-echo.com/post", "url": "https://postman-echo.com/post",
@@ -120,7 +120,7 @@
"cookies": [ "cookies": [
{ {
"name": "sails.sid", "name": "sails.sid",
"value": "s%3AOf5eKs36eD8xIj5lio09zXrhVra1yPHo.PJyQYxoyPvXNUPal4Tj0OaJDLDJ7tZfZ%2BCL37XxD5Qg" "value": "s%3Az_LpglkKxTvJ_eHVUH6V67drKp0AGWW-.PidabaXOnatLRP47hVyqqepl6BdrpEQzRlJQXtbIiwk"
} }
], ],
"headers": [ "headers": [
@@ -142,7 +142,7 @@
}, },
{ {
"name": "Cookie", "name": "Cookie",
"value": "sails.sid=s%3AOf5eKs36eD8xIj5lio09zXrhVra1yPHo.PJyQYxoyPvXNUPal4Tj0OaJDLDJ7tZfZ%2BCL37XxD5Qg" "value": "sails.sid=s%3Az_LpglkKxTvJ_eHVUH6V67drKp0AGWW-.PidabaXOnatLRP47hVyqqepl6BdrpEQzRlJQXtbIiwk"
}, },
{ {
"name": "Accept-Encoding", "name": "Accept-Encoding",
@@ -152,9 +152,9 @@
"queryString": [], "queryString": [],
"postData": { "postData": {
"mimeType": "application/json; charset=UTF-8", "mimeType": "application/json; charset=UTF-8",
"text": "{\"foo1\":\"Kie7p\",\"foo2\":12.3}" "text": "{\"foo1\":\"HDnY8\",\"foo2\":12.3}"
}, },
"headersSize": 271, "headersSize": 269,
"bodySize": 28 "bodySize": 28
}, },
"response": { "response": {
@@ -165,7 +165,7 @@
"cookies": [ "cookies": [
{ {
"name": "sails.sid", "name": "sails.sid",
"value": "s%3A3unIFKLK0Hl_B2pdTkPkT7EfMFT-Haj4.IP8%2BW82GuC6rgKB3ftSTzeIuU06XtsL9MfK7MVk3ADE", "value": "s%3AS5e7w0zQ0xAsCwh9L8T6R7QLYCO7_gtD.r8%2B2w9IWqEIfuVkrZjnxzm2xADIk34zKAWXRPapr%2FAw",
"path": "/", "path": "/",
"domain": null, "domain": null,
"expires": null, "expires": null,
@@ -178,7 +178,7 @@
"headers": [ "headers": [
{ {
"name": "Date", "name": "Date",
"value": "Mon, 11 Oct 2021 12:33:09 GMT" "value": "Fri, 15 Oct 2021 12:29:16 GMT"
}, },
{ {
"name": "Content-Type", "name": "Content-Type",
@@ -186,11 +186,11 @@
}, },
{ {
"name": "Content-Length", "name": "Content-Length",
"value": "528" "value": "526"
}, },
{ {
"name": "ETag", "name": "ETag",
"value": "W/\"210-jFdmdcCipJ2EiYEjcIabSk/psPI\"" "value": "W/\"20e-aXqJ0H6Q30sU41c/D7asB+yXWeQ\""
}, },
{ {
"name": "Vary", "name": "Vary",
@@ -198,7 +198,7 @@
}, },
{ {
"name": "set-cookie", "name": "set-cookie",
"value": "sails.sid=s%3A3unIFKLK0Hl_B2pdTkPkT7EfMFT-Haj4.IP8%2BW82GuC6rgKB3ftSTzeIuU06XtsL9MfK7MVk3ADE; Path=/; HttpOnly" "value": "sails.sid=s%3AS5e7w0zQ0xAsCwh9L8T6R7QLYCO7_gtD.r8%2B2w9IWqEIfuVkrZjnxzm2xADIk34zKAWXRPapr%2FAw; Path=/; HttpOnly"
}, },
{ {
"name": "Connection", "name": "Connection",
@@ -206,24 +206,149 @@
} }
], ],
"content": { "content": {
"size": 528, "size": 526,
"mimeType": "application/json; charset=utf-8", "mimeType": "application/json; charset=utf-8",
"text": "eyJhcmdzIjp7fSwiZGF0YSI6eyJmb28xIjoiS2llN3AiLCJmb28yIjoxMi4zfSwiZmlsZXMiOnt9LCJmb3JtIjp7fSwiaGVhZGVycyI6eyJ4LWZvcndhcmRlZC1wcm90byI6Imh0dHBzIiwieC1mb3J3YXJkZWQtcG9ydCI6IjQ0MyIsImhvc3QiOiJwb3N0bWFuLWVjaG8uY29tIiwieC1hbXpuLXRyYWNlLWlkIjoiUm9vdD0xLTYxNjQyZjA1LTExMTZkZmZlN2U0YTQ5ODg0NDBjMDI2NiIsImNvbnRlbnQtbGVuZ3RoIjoiMjgiLCJ1c2VyLWFnZW50IjoiR28taHR0cC1jbGllbnQvMS4xIiwiY29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCIsImNvb2tpZSI6InNhaWxzLnNpZD1zJTNBT2Y1ZUtzMzZlRDh4SWo1bGlvMDl6WHJoVnJhMXlQSG8uUEp5UVl4b3lQdlhOVVBhbDRUajBPYUpETERKN3RaZlolMkJDTDM3WHhENVFnIiwiYWNjZXB0LWVuY29kaW5nIjoiZ3ppcCJ9LCJqc29uIjp7ImZvbzEiOiJLaWU3cCIsImZvbzIiOjEyLjN9LCJ1cmwiOiJodHRwczovL3Bvc3RtYW4tZWNoby5jb20vcG9zdCJ9", "text": "eyJhcmdzIjp7fSwiZGF0YSI6eyJmb28xIjoiSERuWTgiLCJmb28yIjoxMi4zfSwiZmlsZXMiOnt9LCJmb3JtIjp7fSwiaGVhZGVycyI6eyJ4LWZvcndhcmRlZC1wcm90byI6Imh0dHBzIiwieC1mb3J3YXJkZWQtcG9ydCI6IjQ0MyIsImhvc3QiOiJwb3N0bWFuLWVjaG8uY29tIiwieC1hbXpuLXRyYWNlLWlkIjoiUm9vdD0xLTYxNjk3NDFjLTIxN2RiMGI3MWFkYjgwYmQ3ODUxOTI2OCIsImNvbnRlbnQtbGVuZ3RoIjoiMjgiLCJ1c2VyLWFnZW50IjoiR28taHR0cC1jbGllbnQvMS4xIiwiY29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCIsImNvb2tpZSI6InNhaWxzLnNpZD1zJTNBel9McGdsa0t4VHZKX2VIVlVINlY2N2RyS3AwQUdXVy0uUGlkYWJhWE9uYXRMUlA0N2hWeXFxZXBsNkJkcnBFUXpSbEpRWHRiSWl3ayIsImFjY2VwdC1lbmNvZGluZyI6Imd6aXAifSwianNvbiI6eyJmb28xIjoiSERuWTgiLCJmb28yIjoxMi4zfSwidXJsIjoiaHR0cHM6Ly9wb3N0bWFuLWVjaG8uY29tL3Bvc3QifQ==",
"encoding": "base64" "encoding": "base64"
}, },
"redirectURL": null, "redirectURL": null,
"headersSize": 0, "headersSize": 0,
"bodySize": 528 "bodySize": 526
}, },
"serverIPAddress": "54.209.48.16", "serverIPAddress": "44.193.31.23",
"cache": {},
"timings": {
"dns": -1,
"connect": -1,
"ssl": -1,
"send": 1,
"wait": 304,
"receive": 1
}
},
{
"startedDateTime": "2021-10-15T20:29:16.427+08:00",
"time": 305,
"request": {
"method": "POST",
"url": "https://postman-echo.com/post",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "sails.sid",
"value": "s%3AS5e7w0zQ0xAsCwh9L8T6R7QLYCO7_gtD.r8%2B2w9IWqEIfuVkrZjnxzm2xADIk34zKAWXRPapr%2FAw"
}
],
"headers": [
{
"name": "Host",
"value": "postman-echo.com"
},
{
"name": "User-Agent",
"value": "Go-http-client/1.1"
},
{
"name": "Content-Length",
"value": "20"
},
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded; charset=UTF-8"
},
{
"name": "Cookie",
"value": "sails.sid=s%3AS5e7w0zQ0xAsCwh9L8T6R7QLYCO7_gtD.r8%2B2w9IWqEIfuVkrZjnxzm2xADIk34zKAWXRPapr%2FAw"
},
{
"name": "Accept-Encoding",
"value": "gzip"
}
],
"queryString": [],
"postData": {
"mimeType": "application/x-www-form-urlencoded; charset=UTF-8",
"params": [
{
"name": "foo1",
"value": "HDnY8"
},
{
"name": "foo2",
"value": "12.3"
}
]
},
"headersSize": 290,
"bodySize": 20
},
"response": {
"_charlesStatus": "COMPLETE",
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [
{
"name": "sails.sid",
"value": "s%3AMp2gGgeCCDM4sRS_MfL1q-hAkL3bAk84.9XT7TTW8QzueQqtQ6bQM%2BgHqiUBbkJSfgM5CbfhFreQ",
"path": "/",
"domain": null,
"expires": null,
"httpOnly": true,
"secure": false,
"comment": null,
"_maxAge": null
}
],
"headers": [
{
"name": "Date",
"value": "Fri, 15 Oct 2021 12:29:16 GMT"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "551"
},
{
"name": "ETag",
"value": "W/\"227-micuvGYwtEZN542D1sTL0hAZaRs\""
},
{
"name": "Vary",
"value": "Accept-Encoding"
},
{
"name": "set-cookie",
"value": "sails.sid=s%3AMp2gGgeCCDM4sRS_MfL1q-hAkL3bAk84.9XT7TTW8QzueQqtQ6bQM%2BgHqiUBbkJSfgM5CbfhFreQ; Path=/; HttpOnly"
},
{
"name": "Connection",
"value": "keep-alive"
}
],
"content": {
"size": 551,
"mimeType": "application/json; charset=utf-8",
"text": "eyJhcmdzIjp7fSwiZGF0YSI6IiIsImZpbGVzIjp7fSwiZm9ybSI6eyJmb28xIjoiSERuWTgiLCJmb28yIjoiMTIuMyJ9LCJoZWFkZXJzIjp7IngtZm9yd2FyZGVkLXByb3RvIjoiaHR0cHMiLCJ4LWZvcndhcmRlZC1wb3J0IjoiNDQzIiwiaG9zdCI6InBvc3RtYW4tZWNoby5jb20iLCJ4LWFtem4tdHJhY2UtaWQiOiJSb290PTEtNjE2OTc0MWMtNWI5ZDEyMWI2N2FlZTI0MTUyMmQzMjE2IiwiY29udGVudC1sZW5ndGgiOiIyMCIsInVzZXItYWdlbnQiOiJHby1odHRwLWNsaWVudC8xLjEiLCJjb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLCJjb29raWUiOiJzYWlscy5zaWQ9cyUzQVM1ZTd3MHpRMHhBc0N3aDlMOFQ2UjdRTFlDTzdfZ3RELnI4JTJCMnc5SVdxRUlmdVZrclpqbnh6bTJ4QURJazM0ektBV1hSUGFwciUyRkF3IiwiYWNjZXB0LWVuY29kaW5nIjoiZ3ppcCJ9LCJqc29uIjp7ImZvbzEiOiJIRG5ZOCIsImZvbzIiOiIxMi4zIn0sInVybCI6Imh0dHBzOi8vcG9zdG1hbi1lY2hvLmNvbS9wb3N0In0=",
"encoding": "base64"
},
"redirectURL": null,
"headersSize": 0,
"bodySize": 551
},
"serverIPAddress": "44.193.31.23",
"cache": {}, "cache": {},
"timings": { "timings": {
"dns": -1, "dns": -1,
"connect": -1, "connect": -1,
"ssl": -1, "ssl": -1,
"send": 0, "send": 0,
"wait": 272, "wait": 303,
"receive": 1 "receive": 2
} }
} }
] ]
+31
View File
@@ -94,6 +94,37 @@
"msg": "check args foo2" "msg": "check args foo2"
} }
] ]
},
{
"name": "post form data",
"request": {
"method": "POST",
"url": "/post",
"params": {
"foo1": "$varFoo1",
"foo2": "${max($a, $b)}"
}
},
"validate": [
{
"check": "status_code",
"assert": "equals",
"expect": 200,
"msg": "check status code"
},
{
"check": "body.form.foo1",
"assert": "length_equals",
"expect": 5,
"msg": "check args foo1"
},
{
"check": "body.form.foo2",
"assert": "equals",
"expect": "12.3",
"msg": "check args foo2"
}
]
} }
] ]
} }
+20
View File
@@ -63,3 +63,23 @@ teststeps:
assert: equals assert: equals
expect: 12.3 expect: 12.3
msg: check args foo2 msg: check args foo2
- name: post form data
request:
method: POST
url: /post
params:
foo1: $varFoo1
foo2: ${max($a, $b)}
validate:
- check: status_code
assert: equals
expect: 200
msg: check status code
- check: body.form.foo1
assert: length_equals
expect: 5
msg: check args foo1
- check: body.form.foo2
assert: equals
expect: "12.3"
msg: check args foo2
+10
View File
@@ -47,6 +47,16 @@ func TestCaseDemo(t *testing.T) {
AssertEqual("status_code", 200, "check status code"). AssertEqual("status_code", 200, "check status code").
AssertLengthEqual("body.json.foo1", 5, "check args foo1"). AssertLengthEqual("body.json.foo1", 5, "check args foo1").
AssertEqual("body.json.foo2", 12.3, "check args foo2"), AssertEqual("body.json.foo2", 12.3, "check args foo2"),
httpboomer.Step("post form data").
POST("/post").
WithParams(map[string]interface{}{
"foo1": "$varFoo1", // reference former extracted variable
"foo2": "${max($a, $b)}", // 12.3; step level variables are independent, variable b is 3.45 here
}).
Validate().
AssertEqual("status_code", 200, "check status code").
AssertLengthEqual("body.form.foo1", 5, "check args foo1").
AssertEqual("body.form.foo2", "12.3", "check args foo2"), // form data will be converted to string
}, },
} }
+2 -2
View File
@@ -69,7 +69,7 @@ func TestMakeTestCase(t *testing.T) {
} }
// make request params // make request params
if !assert.Equal(t, "Kie7p", tCase.TestSteps[0].Request.Params["foo1"]) { if !assert.Equal(t, "HDnY8", tCase.TestSteps[0].Request.Params["foo1"]) {
t.Fail() t.Fail()
} }
@@ -87,7 +87,7 @@ func TestMakeTestCase(t *testing.T) {
} }
// make request data // make request data
if !assert.Equal(t, map[string]interface{}{"foo1": "Kie7p", "foo2": 12.3}, tCase.TestSteps[1].Request.Data) { if !assert.Equal(t, map[string]interface{}{"foo1": "HDnY8", "foo2": 12.3}, tCase.TestSteps[1].Request.Data) {
t.Fail() t.Fail()
} }
} }