Skip to content

Commit 27f1c3f

Browse files
committed
feat: code standard
1 parent 537c368 commit 27f1c3f

24 files changed

+293
-620
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -569,8 +569,7 @@ go version: go1.12.9 linux/amd64
569569

570570
- go server
571571

572-
```golang
573-
package main
572+
```golangpackage main
574573
575574
import (
576575
"log"

helper/helper.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
/**
2-
* Created by GoLand.
3-
* User: link1st
4-
* Date: 2019-08-21
5-
* Time: 15:40
6-
*/
7-
1+
// Package helper 帮助函数,时间、数组的通用处理
82
package helper
93

104
import (
@@ -27,4 +21,3 @@ func InArrayStr(str string, arr []string) (inArray bool) {
2721
}
2822
return
2923
}
30-

main.go

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
1-
/**
2-
* Created by GoLand.
3-
* User: link1st
4-
* Date: 2019-08-15
5-
* Time: 13:44
6-
*/
7-
1+
// Package main go 实现的压测工具
82
package main
93

104
import (
115
"flag"
126
"fmt"
13-
"go-stress-testing/model"
14-
"go-stress-testing/server"
157
"runtime"
168
"strings"
9+
10+
"go-stress-testing/model"
11+
"go-stress-testing/server"
1712
)
1813

14+
// array 自定义数组参数
1915
type array []string
2016

17+
// String string
2118
func (a *array) String() string {
2219
return fmt.Sprint(*a)
2320
}
2421

22+
// Set set
2523
func (a *array) Set(s string) error {
2624
*a = append(*a, s)
2725

@@ -32,53 +30,47 @@ var (
3230
concurrency uint64 = 1 // 并发数
3331
totalNumber uint64 = 1 // 请求数(单个并发/协程)
3432
debugStr = "false" // 是否是debug
35-
requestUrl string // 压测的url 目前支持,http/https ws/wss
36-
path string // curl文件路径 http接口压测,自定义参数设置
37-
verify string // verify 验证方法 在server/verify中 http 支持:statusCode、json webSocket支持:json
33+
requestURL = "" // 压测的url 目前支持,http/https ws/wss
34+
path = "" // curl文件路径 http接口压测,自定义参数设置
35+
verify = "" // verify 验证方法 在server/verify中 http 支持:statusCode、json webSocket支持:json
3836
headers array // 自定义头信息传递给服务器
39-
body string // HTTP POST方式传送数据
37+
body = "" // HTTP POST方式传送数据
4038
)
4139

4240
func init() {
4341
flag.Uint64Var(&concurrency, "c", concurrency, "并发数")
4442
flag.Uint64Var(&totalNumber, "n", totalNumber, "请求数(单个并发/协程)")
4543
flag.StringVar(&debugStr, "d", debugStr, "调试模式")
46-
flag.StringVar(&requestUrl, "u", "", "压测地址")
47-
flag.StringVar(&path, "p", "", "curl文件路径")
48-
flag.StringVar(&verify, "v", "", "验证方法 http 支持:statusCode、json webSocket支持:json")
44+
flag.StringVar(&requestURL, "u", requestURL, "压测地址")
45+
flag.StringVar(&path, "p", path, "curl文件路径")
46+
flag.StringVar(&verify, "v", verify, "验证方法 http 支持:statusCode、json webSocket支持:json")
4947
flag.Var(&headers, "H", "自定义头信息传递给服务器 示例:-H 'Content-Type: application/json'")
50-
flag.StringVar(&body, "data", "", "HTTP POST方式传送数据")
48+
flag.StringVar(&body, "data", body, "HTTP POST方式传送数据")
5149
// 解析参数
5250
flag.Parse()
5351
}
5452

55-
// go 实现的压测工具
53+
// main go 实现的压测工具
5654
// 编译可执行文件
5755
//go:generate go build main.go
5856
func main() {
59-
6057
runtime.GOMAXPROCS(1)
61-
if concurrency == 0 || totalNumber == 0 || (requestUrl == "" && path == "") {
58+
if concurrency == 0 || totalNumber == 0 || (requestURL == "" && path == "") {
6259
fmt.Printf("示例: go run main.go -c 1 -n 1 -u https://www.baidu.com/ \n")
6360
fmt.Printf("压测地址或curl路径必填 \n")
64-
fmt.Printf("当前请求参数: -c %d -n %d -d %v -u %s \n", concurrency, totalNumber, debugStr, requestUrl)
61+
fmt.Printf("当前请求参数: -c %d -n %d -d %v -u %s \n", concurrency, totalNumber, debugStr, requestURL)
6562
flag.Usage()
66-
6763
return
6864
}
6965
debug := strings.ToLower(debugStr) == "true"
70-
request, err := model.NewRequest(requestUrl, verify, 0, debug, path, headers, body)
66+
request, err := model.NewRequest(requestURL, verify, 0, debug, path, headers, body)
7167
if err != nil {
7268
fmt.Printf("参数不合法 %v \n", err)
73-
7469
return
7570
}
76-
7771
fmt.Printf("\n 开始启动 并发数:%d 请求数:%d 请求参数: \n", concurrency, totalNumber)
7872
request.Print()
79-
8073
// 开始处理
8174
server.Dispose(concurrency, totalNumber, request)
82-
8375
return
8476
}

model/curl_model.go

Lines changed: 13 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
/**
2-
* Created by GoLand.
3-
* User: link1st
4-
* Date: 2019-08-19
5-
* Time: 09:51
6-
*/
7-
1+
// Package model 数据模型
82
package model
93

104
import (
@@ -17,110 +11,90 @@ import (
1711
"go-stress-testing/helper"
1812
)
1913

20-
// curl参数解析
14+
// CURL curl参数解析
2115
type CURL struct {
2216
Data map[string][]string
2317
}
2418

19+
// getDataValue 获取数据
2520
func (c *CURL) getDataValue(keys []string) []string {
2621
var (
2722
value = make([]string, 0)
2823
)
29-
3024
for _, key := range keys {
3125
var (
3226
ok bool
3327
)
34-
3528
value, ok = c.Data[key]
3629
if ok {
3730
break
3831
}
3932
}
40-
4133
return value
4234
}
4335

44-
// 从文件中解析curl
36+
// ParseTheFile 从文件中解析curl
4537
func ParseTheFile(path string) (curl *CURL, err error) {
46-
4738
if path == "" {
4839
err = errors.New("路径不能为空")
49-
5040
return
5141
}
52-
5342
curl = &CURL{
5443
Data: make(map[string][]string),
5544
}
56-
5745
file, err := os.Open(path)
5846
if err != nil {
5947
err = errors.New("打开文件失败:" + err.Error())
60-
6148
return
6249
}
63-
6450
defer func() {
65-
file.Close()
51+
_ = file.Close()
6652
}()
67-
6853
dataBytes, err := ioutil.ReadAll(file)
6954
if err != nil {
7055
err = errors.New("读取文件失败:" + err.Error())
71-
7256
return
7357
}
7458
data := string(dataBytes)
75-
7659
for len(data) > 0 {
7760
if strings.HasPrefix(data, "curl") {
7861
data = data[5:]
7962
}
80-
8163
data = strings.TrimSpace(data)
8264
var (
8365
key string
8466
value string
8567
)
86-
8768
index := strings.Index(data, " ")
8869
if index <= 0 {
8970
break
9071
}
9172
key = strings.TrimSpace(data[:index])
9273
data = data[index+1:]
9374
data = strings.TrimSpace(data)
94-
9575
// url
9676
if !strings.HasPrefix(key, "-") {
9777
key = strings.Trim(key, "'")
9878
curl.Data["curl"] = []string{key}
99-
10079
// 去除首尾空格
10180
data = strings.TrimFunc(data, func(r rune) bool {
10281
if r == ' ' || r == '\\' || r == '\n' {
10382
return true
10483
}
105-
10684
return false
10785
})
10886
continue
10987
}
110-
11188
if strings.HasPrefix(data, "-") {
11289
continue
11390
}
114-
11591
var (
11692
endSymbol = " "
11793
)
118-
11994
if strings.HasPrefix(data, "'") {
12095
endSymbol = "'"
12196
data = data[1:]
12297
}
123-
12498
index = strings.Index(data, endSymbol)
12599
if index <= -1 {
126100
index = len(data)
@@ -132,56 +106,39 @@ func ParseTheFile(path string) (curl *CURL, err error) {
132106
} else {
133107
data = ""
134108
}
135-
136109
// 去除首尾空格
137110
data = strings.TrimFunc(data, func(r rune) bool {
138111
if r == ' ' || r == '\\' || r == '\n' {
139112
return true
140113
}
141-
142114
return false
143115
})
144-
145116
if key == "" {
146117
continue
147118
}
148-
149119
curl.Data[key] = append(curl.Data[key], value)
150-
151-
// break
152-
153120
}
154-
155-
// debug
156-
// for key, value := range curl.Data {
157-
// fmt.Println("key:", key, "value:", value)
158-
// }
159-
160121
return
161122
}
162123

124+
// String string
163125
func (c *CURL) String() (url string) {
164126
curlByte, _ := json.Marshal(c)
165-
166127
return string(curlByte)
167128
}
168129

169-
// GetUrl
170-
func (c *CURL) GetUrl() (url string) {
171-
130+
// GetURL 获取url
131+
func (c *CURL) GetURL() (url string) {
172132
keys := []string{"curl", "--url"}
173133
value := c.getDataValue(keys)
174134
if len(value) <= 0 {
175-
176135
return
177136
}
178-
179137
url = value[0]
180-
181138
return
182139
}
183140

184-
// GetMethod
141+
// GetMethod 获取 请求方式
185142
func (c *CURL) GetMethod() (method string) {
186143
keys := []string{"-X", "--request"}
187144
value := c.getDataValue(keys)
@@ -205,58 +162,43 @@ func (c *CURL) defaultMethod() (method string) {
205162
return
206163
}
207164

208-
// GetHeaders
165+
// GetHeaders 获取请求头
209166
func (c *CURL) GetHeaders() (headers map[string]string) {
210167
headers = make(map[string]string, 0)
211-
212168
keys := []string{"-H", "--header"}
213169
value := c.getDataValue(keys)
214-
215170
for _, v := range value {
216171
getHeaderValue(v, headers)
217172
}
218-
219173
return
220174
}
221175

222-
// GetHeaders
176+
// GetHeadersStr 获取请求头string
223177
func (c *CURL) GetHeadersStr() string {
224178
headers := c.GetHeaders()
225179
bytes, _ := json.Marshal(&headers)
226-
227180
return string(bytes)
228181
}
229182

230-
// 获取body
183+
// GetBody 获取body
231184
func (c *CURL) GetBody() (body string) {
232-
233185
keys := []string{"--data", "-d", "--data-urlencode", "--data-raw", "--data-binary"}
234186
value := c.getDataValue(keys)
235-
236187
if len(value) <= 0 {
237188
body = c.getPostForm()
238-
239189
return
240190
}
241-
242-
// body = strings.NewReader(value[0])
243191
body = value[0]
244-
245192
return
246193
}
247194

195+
// getPostForm get post form
248196
func (c *CURL) getPostForm() (body string) {
249197
keys := []string{"--form", "-F", "--form-string"}
250198
value := c.getDataValue(keys)
251-
252199
if len(value) <= 0 {
253-
254200
return
255201
}
256-
257202
body = strings.Join(value, "&")
258-
259203
return
260204
}
261-
262-

0 commit comments

Comments
 (0)