JMeter5の自分用メモ
日本語化
set JVM_ARGS="-Duser.language=ja"
..\bin\jmeter.bat
ガウス乱数タイマ
10個のリクエストを行うシナリオを10回繰り返して、最大、最小、平均の結果を出す。
テスト1
偏差(ミリ秒):100
遅延時間オフセット定数(ミリ秒):300
1回目
(388, 9, 256.3)
(404, 105, 294.4)
(394, 129, 290.3)
(442, 19, 294.2)
(521, 229, 353.3)
(475, 48, 307.0)
(598, 35, 321.9)
(475, 122, 308.2)
(510, 118, 329.3)
(431, 151, 321.44444444444446)
2回目
(515, 126, 295.1)
(344, 127, 223.1)
(453, 229, 356.1)
(359, 165, 277.4)
(604, 172, 328.6)
(501, 210, 340.4)
(472, 125, 300.0)
(516, 257, 342.6)
(411, 241, 309.0)
(553, 26, 260.6666666666667)
3回目
(412, 172, 274.0)
(488, 191, 313.7)
(382, 190, 268.1)
(515, 175, 330.8)
(434, 167, 319.8)
(425, 11, 285.4)
(457, 62, 226.0)
(533, 240, 337.0)
(443, 98, 248.8)
(419, 218, 296.6666666666667)
スループットは3.5/sec程。
1秒間に3.5回ということは、約300ミリ秒に1回ということであっていると思われる。
テスト2
偏差(ミリ秒):100
遅延時間オフセット定数(ミリ秒):0
1回目
(252, 17, 84.3)
(110, 15, 59.8)
(166, 3, 82.0)
(179, 21, 88.9)
(158, 0, 61.6)
(141, 9, 64.4)
(216, 15, 72.9)
(243, 16, 101.6)
(153, 8, 84.8)
(197, 22, 97.66666666666667)
スループットは12.7/sec
テスト3
偏差(ミリ秒):2000
遅延時間オフセット定数(ミリ秒):0
1回目
(4003, 33, 1673.3)
(3424, 388, 1730.0)
(5887, 161, 1785.5)
(5335, 329, 1746.3)
(2285, 52, 849.4)
(3541, 90, 1877.3)
(3860, 140, 1488.4)
(5903, 266, 1779.9)
(2203, 185, 797.9)
(2596, 122, 1400.888888888889)
スループットは40/minになった。
間隔は33~5903と幅が広く、平均で1.7秒程度。
スループットについて調べてみる。
スループット
偏差(ミリ秒):2000
遅延時間オフセット定数(ミリ秒):0
10個のリクエストを行うシナリオ
で10スレッドで40/minだったが、1スレッドで何度か計測する。
28.4/min
44.2/min
1.1/sec
27.6/min
48.9/min
次はシナリオを修正し、リクエストの数を2つに減らす。
52.1/min
1.4/sec
12.5/min
4.1/sec
6.1/sec
解析用メモ
Apache
時間をミリ秒で表示:%{msec}t
LogFormat "%h %l %u %{msec}t \"%r\" %>s %b" common
ポート番号を表示:%{remote}p
LogFormat "%h %{remote}p %l %u %{msec}t \"%r\" %>s %b" common
Python
from more_itertools import chunked
def file_readlines(file_name):
return open(file_name, "r", encoding="utf-8").readlines()
# CSVやログファイルから特定の列を取得し、Listで返す
def lines_division_get_onecolumn(lines, colnumber, separeter = " "):
result = []
for line in lines:
result.append(line.split(separeter)[colnumber])
return result
# Listの各行の数字の差をListで返す
def diff(lines):
result = []
previous = int(lines[0])
for line in lines[1:]:
result.append(int(line) - previous)
previous = int(line)
return result
# Listの最大、最小、平均を求める
def analysis(lines):
return (max(lines), min(lines),sum(lines)/len(lines))
lines = file_readlines("data.txt")
data = lines_division_get_onecolumn(lines,3)
time = diff(data)
morelist = list(chunked(time,10))
for line in morelist:
print(analysis(line))
Visual Studioでpipを使ってモジュールをインストールするには
「ソリューションエクスプローラー」で"Python環境"を選択し、右クリックして、「Pythonパッケージのインストール」を選択する。