mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package hrp
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSearchJmespath(t *testing.T) {
|
|
testText := `{"a": {"b": "foo"}, "c": "bar", "d": {"e": [{"f": "foo"}, {"f": "bar"}]}}`
|
|
testData := []struct {
|
|
raw string
|
|
expected string
|
|
}{
|
|
{"body.a.b", "foo"},
|
|
{"body.c", "bar"},
|
|
{"body.d.e[0].f", "foo"},
|
|
{"body.d.e[1].f", "bar"},
|
|
}
|
|
resp := http.Response{}
|
|
resp.Body = io.NopCloser(strings.NewReader(testText))
|
|
respObj, err := newHttpResponseObject(t, newParser(), &resp)
|
|
if err != nil {
|
|
t.Fatal()
|
|
}
|
|
for _, data := range testData {
|
|
if !assert.Equal(t, data.expected, respObj.searchJmespath(data.raw)) {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSearchRegexp(t *testing.T) {
|
|
testText := `hrp aims to be a one-stop solution for HTTP(S) testing, covering API testing, load testing and digital experience monitoring (DEM).`
|
|
testData := []struct {
|
|
raw string
|
|
expected string
|
|
}{
|
|
{"covering (.*) testing,", "API"},
|
|
{" (.*) to", "aims"},
|
|
{"^(.*) aims", "hrp"},
|
|
{".* (.*?)$", "(DEM)."},
|
|
}
|
|
// new response object
|
|
resp := http.Response{}
|
|
resp.Body = io.NopCloser(strings.NewReader(testText))
|
|
respObj, err := newHttpResponseObject(t, newParser(), &resp)
|
|
if err != nil {
|
|
t.Fatal()
|
|
}
|
|
for _, data := range testData {
|
|
if !assert.Equal(t, data.expected, respObj.searchRegexp(data.raw)) {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
}
|