1515# concurrent connections/virtual users
1616CONNECTIONS = ENV . fetch ( "CONNECTIONS" , "10" ) . to_i
1717# maximum connections/virtual users
18- MAX_CONNECTIONS = ENV . fetch ( "MAX_CONNECTIONS" , CONNECTIONS . to_s ) . to_i
19- DURATION_SEC = ENV . fetch ( "DURATION_SEC ", "10" ) . to_f
20- DURATION = " #{ DURATION_SEC } s" . freeze
21- # request timeout (duration string like "60s", "1m", "90s" )
18+ MAX_CONNECTIONS = ENV . fetch ( "MAX_CONNECTIONS" , CONNECTIONS ) . to_i
19+ # benchmark duration (duration string like "30s ", "1m", "90s")
20+ DURATION = ENV . fetch ( "DURATION" , "30s" )
21+ # request timeout (duration string as above )
2222REQUEST_TIMEOUT = ENV . fetch ( "REQUEST_TIMEOUT" , "60s" )
2323# Tools to run (comma-separated)
2424TOOLS = ENV . fetch ( "TOOLS" , "fortio,vegeta,k6" ) . split ( "," )
@@ -50,15 +50,9 @@ def validate_positive_integer(value, name)
5050end
5151
5252def validate_duration ( value , name )
53- return if value . is_a? ( Numeric ) && value . positive?
54-
55- raise "#{ name } must be a positive number (got: '#{ value } ')"
56- end
57-
58- def validate_timeout ( value )
5953 return if value . match? ( /^(\d +(\. \d +)?[smh])+$/ )
6054
61- raise "REQUEST_TIMEOUT must be a duration like '60s ', '1m', '1.5m' (got: '#{ value } ')"
55+ raise "#{ name } must be a duration like '10s ', '1m', '1.5m' (got: '#{ value } ')"
6256end
6357
6458def parse_json_file ( file_path , tool_name )
@@ -74,8 +68,8 @@ def parse_json_file(file_path, tool_name)
7468validate_rate ( RATE )
7569validate_positive_integer ( CONNECTIONS , "CONNECTIONS" )
7670validate_positive_integer ( MAX_CONNECTIONS , "MAX_CONNECTIONS" )
77- validate_duration ( DURATION_SEC , "DURATION_SEC " )
78- validate_timeout ( REQUEST_TIMEOUT )
71+ validate_duration ( DURATION , "DURATION " )
72+ validate_duration ( REQUEST_TIMEOUT , "REQUEST_TIMEOUT" )
7973
8074raise "MAX_CONNECTIONS (#{ MAX_CONNECTIONS } ) must be >= CONNECTIONS (#{ CONNECTIONS } )" if MAX_CONNECTIONS < CONNECTIONS
8175
@@ -93,7 +87,7 @@ def parse_json_file(file_path, tool_name)
9387puts <<~PARAMS
9488 Benchmark parameters:
9589 - RATE: #{ RATE }
96- - DURATION_SEC : #{ DURATION_SEC }
90+ - DURATION : #{ DURATION }
9791 - REQUEST_TIMEOUT: #{ REQUEST_TIMEOUT }
9892 - CONNECTIONS: #{ CONNECTIONS }
9993 - MAX_CONNECTIONS: #{ MAX_CONNECTIONS }
0 commit comments