提交 a0d8c448 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

close task about account and domain

上级 2aba686f
qq.com
163.com
263.net
aliyun.com
126.com
gmail.com
outlook.com
hotmail.com
\ No newline at end of file
ngtesting.com
testfarm.net
\ No newline at end of file
......@@ -140,5 +140,5 @@ fields:
fields:
- field: field_grandson
prefix: int_
range: 10-20
range: 10-20:R
postfix:
......@@ -114,52 +114,72 @@ fields:
prefix: "["
postfix: "]\t"
- field: test20
from: base.domain.domain.name.v1.yaml
use: number_with_esp
prefix: ""
postfix: "\t"
- field: test21
from: base.domain.domain.name.v1.yaml
use: number_with_self
prefix: ""
postfix: "\t"
- field: test22
from: base.domain.domain.name.v1.yaml
use: letter_with_esp
prefix: ""
postfix: "\t"
- field: test23
from: base.domain.domain.name.v1.yaml
use: letter_with_self
prefix: ""
postfix: "\t"
- field: test24
from: base.domain.domain.name.v1.yaml
use: western_with_esp
prefix: ""
postfix: "\t"
- field: test25
from: base.domain.domain.name.v1.yaml
use: western_with_self
prefix: ""
postfix: "\t"
- field: test26
from: base.domain.domain.name.v1.yaml
use: pinyin_with_esp
prefix: ""
postfix: "\t"
- field: test27
from: base.domain.domain.name.v1.yaml
use: pinyin_with_self
prefix: ""
postfix: "\t"
- field: test28
from: base.domain.domain.name.v1.yaml
use: western_with_custom
prefix: ""
postfix: "\t"
# - field: test20
# from: base.domain.domain.v1.yaml
# use: one_number_at_common
# prefix: ""
# postfix: "\t"
# - field: test21
# from: base.domain.domain.v1.yaml
# use: one_number_at_cn
# prefix: ""
# postfix: "\t"
# - field: test22
# from: base.domain.domain.v1.yaml
# use: one_number_at_new
# prefix: ""
# postfix: "\t"
#
# - field: test23
# from: base.domain.domain.v1.yaml
# use: one_letter_at_common
# prefix: ""
# postfix: "\t"
# - field: test24
# from: base.domain.domain.v1.yaml
# use: one_letter_at_cn
# prefix: ""
# postfix: "\t"
# - field: test25
# from: base.domain.domain.v1.yaml
# use: one_letter_at_new
# prefix: ""
# postfix: "\t"
#
# - field: test26
# from: base.domain.domain.v1.yaml
# use: numbers_at_common
# prefix: ""
# postfix: "\t"
# - field: test27
# from: base.domain.domain.v1.yaml
# use: numbers_at_cn
# prefix: ""
# postfix: "\t"
# - field: test28
# from: base.domain.domain.v1.yaml
# use: numbers_at_new
# prefix: ""
# postfix: "\t"
#
# - field: test29
# from: base.domain.domain.v1.yaml
# use: mixed_at_common
# prefix: ""
# postfix: "\t"
# - field: test30
# from: base.domain.domain.v1.yaml
# use: mixed_at_cn
# prefix: ""
# postfix: "\t"
# - field: test31
# from: base.domain.domain.v1.yaml
# use: mixed_at_new
# prefix: ""
# postfix: "\t"
#
# - field: test32
# from: base.domain.esp.v1.yaml
# use: esp
# prefix: ""
# postfix: "\t"
\ No newline at end of file
......@@ -369,6 +369,15 @@ func randomValuesArr(values [][]string) (ret [][]string) {
return
}
func randomInterfaces(values []interface{}) (ret []interface{}) {
length := len(values)
for i := 0; i < length; i++ {
val := commonUtils.RandNum(length)
ret = append(ret, values[val])
}
return
}
func randomValues(values []string) (ret []string) {
length := len(values)
for i := 0; i < length; i++ {
......
......@@ -149,7 +149,7 @@ func CreateValuesFromLiteral(field *model.DefField, desc string, stepStr string,
step, _ := strconv.Atoi(stepStr)
total := 0
if stepStr == "r" {
if field.Path != "" && stepStr == "r" {
items = append(items, Placeholder(field.Path))
mp := placeholderMapForRandValues("list", elemArr, "", "", "", "")
......@@ -175,6 +175,10 @@ func CreateValuesFromLiteral(field *model.DefField, desc string, stepStr string,
i += step
}
if field.Path == "" && stepStr == "r" { // for ranges and instances, random
items = randomInterfaces(items)
}
return
}
......@@ -186,7 +190,7 @@ func CreateValuesFromInterval(field *model.DefField, desc, stepStr string, repea
dataType, step, precision, rand := CheckRangeType(startStr, endStr, stepStr)
if dataType != "string" && rand {
if field.Path != "" && dataType != "string" && rand {
items = append(items, Placeholder(field.Path))
mp := placeholderMapForRandValues(dataType, []string{}, startStr, endStr, stepStr, strconv.Itoa(precision))
......@@ -218,6 +222,10 @@ func CreateValuesFromInterval(field *model.DefField, desc, stepStr string, repea
}
}
if field.Path == "" && stepStr == "r" { // for ranges and instances, random
items = randomInterfaces(items)
}
return
}
......
......@@ -75,7 +75,15 @@ func getResForExcel(resFile, sheet string, field *model.DefField) (map[string][]
}
func getResForYaml(resFile string) (valueMap map[string][]string, resName string) {
if vari.CacheResFileToMap[resFile] != nil {
valueMap = vari.CacheResFileToMap[resFile]
resName = vari.CacheResFileToName[resFile]
return
}
yamlContent, err := ioutil.ReadFile(resFile)
yamlContent = ReplaceSpecialChars(yamlContent)
if err != nil {
logUtils.PrintTo(i118Utils.I118Prt.Sprintf("fail_to_read_file", resFile))
return
......@@ -102,6 +110,9 @@ func getResForYaml(resFile string) (valueMap map[string][]string, resName string
}
}
vari.CacheResFileToMap[resFile] = valueMap
vari.CacheResFileToName[resFile] = resName
return
}
......@@ -109,7 +120,10 @@ func getResForInstances(insts model.ResInsts) map[string][]string {
groupedValue := map[string][]string{}
for _, inst := range insts.Instances {
for _, instField := range inst.Fields { // prepare referred parent instances if needed
// prepare referred parent instances res if needed, support only 1 level
for _, instField := range inst.Fields {
// set "from" val from parent if needed
if instField.From == "" {
if insts.From != "" {
instField.From = insts.From
......@@ -123,7 +137,10 @@ func getResForInstances(insts model.ResInsts) map[string][]string {
parentRanges, parentInstants := getRootRangeOrInstant(instField)
groupedValueParent := map[string][]string{}
if len(parentInstants.Instances) > 0 { // refer to instances
if len(parentRanges.Ranges) > 0 { // refer to ranges
groupedValueParent = getResForRanges(parentRanges)
} else if len(parentInstants.Instances) > 0 { // refer to instances
for _, child := range parentInstants.Instances {
field := convertInstantToField(parentInstants, child)
......@@ -131,12 +148,10 @@ func getResForInstances(insts model.ResInsts) map[string][]string {
group := child.Instance
groupedValueParent[group] = GenerateForField(&field, false)
}
} else if len(parentRanges.Ranges) > 0 { // refer to ranges
groupedValueParent = getResForRanges(parentRanges)
}
vari.Res[instField.From] = groupedValueParent
} else if instField.Select != "" { // refer to another excel
} else if instField.Select != "" { // refer to excel
resFile, resType, sheet := fileUtils.GetResProp(instField.From)
values, _ := getResValue(resFile, resType, sheet, &instField)
vari.Res[instField.From] = values
......@@ -176,6 +191,18 @@ func getRootRangeOrInstant(inst model.DefField) (parentRanges model.ResRanges, p
return
}
func getResForRanges(ranges model.ResRanges) map[string][]string {
groupedValue := map[string][]string{}
for group, expression := range ranges.Ranges {
field := convertRangesToField(ranges, expression)
groupedValue[group] = GenerateForField(&field, false)
}
return groupedValue
}
func convertInstantToField(insts model.ResInsts, inst model.ResInst) (field model.DefField) {
field.Field = insts.Field
field.From = insts.From
......@@ -196,20 +223,12 @@ func convertInstantToField(insts model.ResInsts, inst model.ResInst) (field mode
return field
}
func getResForRanges(ranges model.ResRanges) map[string][]string {
groupedValue := map[string][]string{}
for group, exp := range ranges.Ranges {
// convert ranges field to standard field
tempField := model.DefField{}
copier.Copy(&tempField, ranges)
tempField.Field = ranges.Field
tempField.Range = exp
groupedValue[group] = GenerateForField(&tempField, false)
}
func convertRangesToField(ranges model.ResRanges, expression string) (field model.DefField) {
copier.Copy(&field, ranges)
field.Field = ranges.Field
field.Range = expression
return groupedValue
return field
}
func getResForConfig(configRes model.DefField) map[string][]string {
......
......@@ -37,6 +37,9 @@ var (
RandFieldNameToValuesMap = map[string]map[string]interface{}{}
TopFiledMap = map[string]model.DefField{}
CacheResFileToMap = map[string] map[string][]string {}
CacheResFileToName = map[string]string{}
DefaultDir string
ConfigDir string
)
......@@ -5,14 +5,166 @@ version: 1.0
field: domain
instances:
- instance: esp
note: 服务商域名
- instance: one_number_at_common
note: 单数字域名
fields:
- field: part1
range: [qq.com,163.com,263.net,aliyun.com,126.com,gmail.com,outlook.com,hotmail.com]
- instance: self
note: 自定义域名
range: 1-9
rand: true
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: all
- instance: one_number_at_cn
note: 单数字CN域名
prefix:
fields:
- field: part1
range: [zentao.com,easycorp.cn,ztf.im,zd.im]
\ No newline at end of file
range: 1-9
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: cn
- instance: one_number_at_new
note: 单数字新域名
prefix:
fields:
- field: part1
range: 1-9
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: new
- instance: one_letter_at_common
note: 单字母域名
prefix:
fields:
- field: part1
range: a-z
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: all
- instance: one_letter_at_cn
note: 单字母CN域名
prefix:
fields:
- field: part1
range: a-z
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: cn
- instance: one_letter_at_new
note: 单字母新域名
prefix:
fields:
- field: part1
range: a-z
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: new
- instance: numbers_at_common
note: 纯数字域名
prefix:
fields:
- field: part1
range: 0-9
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: all
- instance: numbers_at_cn
note: 纯数字CN域名
prefix:
fields:
- field: part1
range: 0-9
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: cn
- instance: numbers_at_new
note: 纯数字新域名
prefix:
fields:
- field: part1
range: a-z
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: new
- instance: letters_at_common
note: 纯字母域名
prefix:
fields:
- field: part1
range: a-z
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: all
- instance: letters_at_cn
note: 纯字母CN域名
prefix:
fields:
- field: part1
range: a-z
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: cn
- instance: letters_at_new
note: 纯字母新域名
prefix:
fields:
- field: part1
range: a-z
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: new
- instance: mixed_at_common
note: 字母和数字域名
prefix:
fields:
- field: part1
range: a-z,0-9
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: all
- instance: mixed_at_cn
note: 字母和数字CN域名
prefix:
fields:
- field: part1
range: a-z,0-9
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: cn
- instance: mixed_at_new
note: 字母和数字新域名
prefix:
fields:
- field: part1
range: a-z,0-9
loop: 5-8
postfix: "."
- field: part2
from: base.domain.postfix.v1.yaml
use: new
\ No newline at end of file
title: 域名
desc:
author: zentao
version: 1.0
field: esp
instances:
- instance: esp
note: 服务商域名
fields:
- field: part1
range: [qq.com,163.com,263.net,aliyun.com,126.com,gmail.com,outlook.com,hotmail.com]
\ No newline at end of file
......@@ -6,7 +6,7 @@ version: 1.0
field: domain_postfix
note: 域名后缀
ranges:
common: [com,net,org,cn,cc,co,im,io]
common: [com,net,org,cn,cc,co,im,io]:R
cn: [cn,org.cn,net.cn,com.cn,gov.cn]
new: [app,ai,site,xyz,ltd,ren,wang,vip,top]
country: [cn,im,tv,cc,io,la]
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册