feat: buildURL

This commit is contained in:
debugtalk
2021-09-23 11:23:26 +08:00
parent 55c8aef53f
commit 03404f18ab
3 changed files with 58 additions and 6 deletions

29
parser.go Normal file
View File

@@ -0,0 +1,29 @@
package httpboomer
import (
"log"
"net/url"
)
func parseStep(step IStep, config *TConfig) *TStep {
tStep := step.ToStruct()
tStep.Request.URL = buildURL(config.BaseURL, tStep.Request.URL)
return tStep
}
func buildURL(baseURL, stepURL string) string {
uConfig, err := url.Parse(baseURL)
if err != nil {
log.Fatalf("[buildURL] baseURL: %v, error: %v", baseURL, err)
return ""
}
uStep, err := uConfig.Parse(stepURL)
if err != nil {
log.Fatalf("[buildURL] baseURL: %v, error: %v", baseURL, err)
return ""
}
// base url missed
return uStep.String()
}

29
parser_test.go Normal file
View File

@@ -0,0 +1,29 @@
package httpboomer
import (
"testing"
)
func TestBuildURL(t *testing.T) {
var url string
url = buildURL("https://postman-echo.com", "/get")
if url != "https://postman-echo.com/get" {
t.Fatalf("buildURL error, %s != 'https://postman-echo.com/get'", url)
}
url = buildURL("https://postman-echo.com/abc/", "/get?a=1&b=2")
if url != "https://postman-echo.com/get?a=1&b=2" {
t.Fatalf("buildURL error, %s != 'https://postman-echo.com/get'", url)
}
url = buildURL("", "https://postman-echo.com/get")
if url != "https://postman-echo.com/get" {
t.Fatalf("buildURL error, %s != 'https://postman-echo.com/get'", url)
}
// notice: step request url > config base url
url = buildURL("https://postman-echo.com", "https://httpbin.org/get")
if url != "https://httpbin.org/get" {
t.Fatalf("buildURL error, %s != 'https://httpbin.org/get'", url)
}
}

View File

@@ -44,12 +44,6 @@ func (r *Runner) runCase(testcase *TestCase) error {
return nil
}
func parseStep(step IStep, config *TConfig) *TStep {
tStep := step.ToStruct()
tStep.Request.URL = config.BaseURL + tStep.Request.URL
return tStep
}
func (r *Runner) runStep(step *TStep) error {
log.Printf("run step begin: %v >>>>>>", step.Name)
var v []interface{}