internethakai 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +3 -0
- data/README +23 -2
- data/lib/internethakai/action.rb +0 -5
- data/lib/internethakai/client_handler.rb +28 -2
- data/lib/internethakai.rb +1 -1
- metadata +3 -3
data/CHANGES
CHANGED
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= DESTROY YOUR INTERNET
|
1
|
+
= DESTROY YOUR INTERNET
|
2
2
|
= 負荷試験スクリプト: インターネット破壊
|
3
3
|
|
4
4
|
== インターネット破壊とは何か
|
@@ -34,6 +34,7 @@ CUIで使える高機能な負荷試験スクリプトです。
|
|
34
34
|
|
35
35
|
=== シナリオの基本項目
|
36
36
|
YAMLの連想配列で設定項目を指定します。指定すべきキー名について解説します。
|
37
|
+
まずは hakaigen コマンドによる自動生成を試してみてください。
|
37
38
|
|
38
39
|
[loop] 各シナリオのループ回数を指定します。
|
39
40
|
[max_request] HTTPクライアントの数を指定します。max_requestが10であればHTTPクライアントを10作成し、10のクライアントが同時にリクエストします。なおここで設定した値は全プロセスの合計値です。おすすめの値は "100" です(1プロセスあたり100コネクションくらいになるように調整しましょう)。
|
@@ -113,7 +114,23 @@ YAMLの連想配列で設定項目を指定します。指定すべきキー名
|
|
113
114
|
==== 変数の設定
|
114
115
|
動的な変数を使用することができます。ユーザーIDなどを動的に取得したい場合に利用してください。
|
115
116
|
|
116
|
-
|
117
|
+
|
118
|
+
==== ファイルからランダムに取得
|
119
|
+
user_id などをファイルからランダムに取得して使用できます。
|
120
|
+
ファイルには改行区切りで、値のリストを書いておきます。シナリオごとに異なる値がセットされます。
|
121
|
+
ファイルの名前、および変数の名前は var_file、var_name というキー名でセットしてください。
|
122
|
+
var_file、var_name はactions の外に書きます。
|
123
|
+
|
124
|
+
例.
|
125
|
+
var_file: ./ids
|
126
|
+
var_name: user_id
|
127
|
+
actions:
|
128
|
+
# user_id がファイルからランダムに選択される
|
129
|
+
- path: /somepath?user_id=%(user_id)%
|
130
|
+
|
131
|
+
|
132
|
+
==== レスポンスで変数を設定
|
133
|
+
レスポンスを使って変数を設定するには、class に SetVarAction を指定します。
|
117
134
|
|
118
135
|
例.
|
119
136
|
- path: /main.php/special/person
|
@@ -143,9 +160,13 @@ YAMLの連想配列で設定項目を指定します。指定すべきキー名
|
|
143
160
|
|
144
161
|
battle_id というキー名に正規表現の(\d+)の部分がセットされます。これに続くアクションのパス名やPOSTパラメーターに変数を使用できます。
|
145
162
|
|
163
|
+
例.
|
164
|
+
- path: /main.php/hoge/index?id=%(battle_id)%
|
165
|
+
|
146
166
|
|
147
167
|
==== WAIT
|
148
168
|
リクエストの際に、わざと少し待たせることができます。wait というキーを指定すると、リクエストを送る前に指定時間何もしないで待ちます。単位は秒です。
|
169
|
+
(この機能はスレッドモードでは使用できません)
|
149
170
|
例.
|
150
171
|
- path: /main.php/somepath/
|
151
172
|
wait: 1.5
|
data/lib/internethakai/action.rb
CHANGED
@@ -13,6 +13,22 @@ module InternetHakai
|
|
13
13
|
end
|
14
14
|
actconfig
|
15
15
|
end
|
16
|
+
if(config.has_key?('var_file') && config.has_key?('var_name'))
|
17
|
+
s = File::open(config['var_file']){|io|io.read}
|
18
|
+
if s
|
19
|
+
lines = s.split("\n")
|
20
|
+
@@var_ids = lines.sort_by{rand}
|
21
|
+
end
|
22
|
+
@@var_name = config['var_name']
|
23
|
+
def set_var_id
|
24
|
+
ids = @@var_ids
|
25
|
+
id = ids[@performance_id % ids.size]
|
26
|
+
set_var(@@var_name, id)
|
27
|
+
end
|
28
|
+
else
|
29
|
+
def set_var_id
|
30
|
+
end
|
31
|
+
end
|
16
32
|
config
|
17
33
|
end
|
18
34
|
@@vars = Hash::new
|
@@ -44,10 +60,20 @@ module InternetHakai
|
|
44
60
|
str
|
45
61
|
end
|
46
62
|
def handle_url client, url, opt
|
47
|
-
opt['use_var']
|
63
|
+
if opt['use_var']
|
64
|
+
set_var_id
|
65
|
+
extend_vars(url)
|
66
|
+
else
|
67
|
+
url
|
68
|
+
end
|
48
69
|
end
|
49
70
|
def handle_body client, body, opt
|
50
|
-
opt['use_var']
|
71
|
+
if opt['use_var']
|
72
|
+
set_var_id
|
73
|
+
extend_vars2(body)
|
74
|
+
else
|
75
|
+
body
|
76
|
+
end
|
51
77
|
end
|
52
78
|
def handle_client client
|
53
79
|
@client = client
|
data/lib/internethakai.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 2
|
9
|
+
version: 0.2.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- takada-at
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-03-
|
17
|
+
date: 2011-03-09 00:00:00 +09:00
|
18
18
|
default_executable: internethakai
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|