mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
feat: use 28586 to escape $ notation
This commit is contained in:
@@ -69,6 +69,14 @@ func parseString(raw string, variablesMapping map[string]interface{}) interface{
|
||||
parsedString += remainedString[0:startPosition]
|
||||
remainedString = remainedString[startPosition:]
|
||||
|
||||
// search $$, use $$ to escape $ notation
|
||||
if strings.HasPrefix(remainedString, "$$") { // found $$
|
||||
matchStartPosition += 2
|
||||
parsedString += "$"
|
||||
remainedString = remainedString[2:]
|
||||
continue
|
||||
}
|
||||
|
||||
// search variable like ${var} or $var
|
||||
varMatched := regexCompileVariable.FindStringSubmatch(remainedString)
|
||||
if len(varMatched) == 3 {
|
||||
|
||||
@@ -109,10 +109,18 @@ func TestParseDataStringWithVariablesAbnormal(t *testing.T) {
|
||||
expr string
|
||||
expect interface{}
|
||||
}{
|
||||
{"ABC$var_1{", "ABCabc{"},
|
||||
{"{ABC$var_1{}a}", "{ABCabc{}a}"},
|
||||
{"AB{C$var_1{}a}", "AB{Cabc{}a}"},
|
||||
{"ABC$var_1}", "ABCabc}"},
|
||||
{"ABC$var_1{", "ABCabc{"}, // {
|
||||
{"ABC$var_1}", "ABCabc}"}, // }
|
||||
{"{ABC$var_1{}a}", "{ABCabc{}a}"}, // {xx}
|
||||
{"AB{C$var_1{}a}", "AB{Cabc{}a}"}, // {xx{}x}
|
||||
{"ABC$$var_1{", "ABC$var_1{"}, // $$
|
||||
{"ABC$$$var_1{", "ABC$abc{"}, // $$$
|
||||
{"ABC$$$$var_1{", "ABC$$var_1{"}, // $$$$
|
||||
{"ABC$var_1${", "ABCabc${"}, // ${
|
||||
{"ABC$var_1${a", "ABCabc${a"}, // ${
|
||||
{"ABC$var_1$}a", "ABCabc$}a"}, // $}
|
||||
{"ABC$var_1}{a", "ABCabc}{a"}, // }{
|
||||
{"ABC$var_1{}a", "ABCabc{}a"}, // {}
|
||||
}
|
||||
|
||||
for _, data := range testData {
|
||||
|
||||
Reference in New Issue
Block a user