mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-08 18:01:30 +08:00
feat: data-driven.
This commit is contained in:
@@ -4,7 +4,7 @@ config:
|
|||||||
user_agent: [ "iOS/10.1", "iOS/10.2" ]
|
user_agent: [ "iOS/10.1", "iOS/10.2" ]
|
||||||
username-password: ${parameterize(examples/account.csv)}
|
username-password: ${parameterize(examples/account.csv)}
|
||||||
parameters_setting:
|
parameters_setting:
|
||||||
strategy: ["random", "sequential"]
|
strategy: ""
|
||||||
iteration: 10
|
iteration: 10
|
||||||
variables:
|
variables:
|
||||||
app_version: v1
|
app_version: v1
|
||||||
|
|||||||
26
parser.go
26
parser.go
@@ -613,16 +613,6 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) {
|
|||||||
}
|
}
|
||||||
rawValue := reflect.ValueOf(cfg.ParametersSetting.Strategy)
|
rawValue := reflect.ValueOf(cfg.ParametersSetting.Strategy)
|
||||||
switch rawValue.Kind() {
|
switch rawValue.Kind() {
|
||||||
case reflect.String:
|
|
||||||
if len(rawValue.String()) == 0 {
|
|
||||||
cfg.ParametersSetting.Strategy = strategySequential
|
|
||||||
} else {
|
|
||||||
cfg.ParametersSetting.Strategy = strings.ToLower(rawValue.String())
|
|
||||||
}
|
|
||||||
cfg.ParametersSetting.Iterator = append(
|
|
||||||
cfg.ParametersSetting.Iterator,
|
|
||||||
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
|
||||||
)
|
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
if len(parameters) != rawValue.Len() {
|
if len(parameters) != rawValue.Len() {
|
||||||
return errors.New("parameters and strategy should have the same length")
|
return errors.New("parameters and strategy should have the same length")
|
||||||
@@ -634,6 +624,22 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case reflect.String:
|
||||||
|
if len(rawValue.String()) == 0 {
|
||||||
|
cfg.ParametersSetting.Strategy = strategySequential
|
||||||
|
} else {
|
||||||
|
cfg.ParametersSetting.Strategy = strings.ToLower(rawValue.String())
|
||||||
|
}
|
||||||
|
cfg.ParametersSetting.Iterator = append(
|
||||||
|
cfg.ParametersSetting.Iterator,
|
||||||
|
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
||||||
|
)
|
||||||
|
default:
|
||||||
|
cfg.ParametersSetting.Strategy = strategySequential
|
||||||
|
cfg.ParametersSetting.Iterator = append(
|
||||||
|
cfg.ParametersSetting.Iterator,
|
||||||
|
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user