feat: data-driven.

This commit is contained in:
徐聪
2022-01-04 21:01:16 +08:00
parent 6fd07a4388
commit e80fa6f0a4
2 changed files with 17 additions and 11 deletions

View File

@@ -4,7 +4,7 @@ config:
user_agent: [ "iOS/10.1", "iOS/10.2" ]
username-password: ${parameterize(examples/account.csv)}
parameters_setting:
strategy: ["random", "sequential"]
strategy: ""
iteration: 10
variables:
app_version: v1

View File

@@ -613,16 +613,6 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) {
}
rawValue := reflect.ValueOf(cfg.ParametersSetting.Strategy)
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:
if len(parameters) != rawValue.Len() {
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
}