LoginSignup
1
0

More than 5 years have passed since last update.

JMeterメモ(作成中)

Last updated at Posted at 2018-12-25

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

httpd.conf
LogFormat "%h %l %u %{msec}t \"%r\" %>s %b" common

ポート番号を表示:%{remote}p

httpd.conf
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パッケージのインストール」を選択する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0