-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
test_params.go
61 lines (52 loc) · 1.6 KB
/
test_params.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package perf
import (
"os"
"strconv"
)
const (
defaultQPS = 1
defaultClientConnections = 1
defaultPayloadSizeKB = 0
defaultPayload = ""
defaultTestDuration = "1m"
qpsEnvVar = "DAPR_PERF_QPS"
clientConnectionsEnvVar = "DAPR_PERF_CONNECTIONS"
testDurationEnvVar = "DAPR_TEST_DURATION"
payloadSizeEnvVar = "DAPR_PAYLOAD_SIZE"
payloadEnvVar = "DAPR_PAYLOAD"
)
type TestParameters struct {
QPS int `json:"qps"`
ClientConnections int `json:"clientConnections"`
TargetEndpoint string `json:"targetEndpoint"`
TestDuration string `json:"testDuration"`
PayloadSizeKB int `json:"payloadSizeKB"`
Payload string `json:"payload"`
StdClient bool `json:"stdClient"`
Grpc bool `json:"grpc"`
Dapr string `json:"dapr"`
}
func Params() TestParameters {
return TestParameters{
QPS: atoi(getEnvVarOrDefault(qpsEnvVar, ""), defaultQPS),
ClientConnections: atoi(
getEnvVarOrDefault(clientConnectionsEnvVar, ""), defaultClientConnections),
TestDuration: getEnvVarOrDefault(testDurationEnvVar, defaultTestDuration),
Payload: getEnvVarOrDefault(payloadEnvVar, defaultPayload),
PayloadSizeKB: atoi(
getEnvVarOrDefault(payloadSizeEnvVar, ""), defaultPayloadSizeKB),
}
}
func atoi(str string, defaultValue int) int {
val, err := strconv.Atoi(str)
if err != nil {
return defaultValue
}
return val
}
func getEnvVarOrDefault(envVar, defaultValue string) string {
if val, ok := os.LookupEnv(envVar); ok && val != "" {
return val
}
return defaultValue
}