Created
December 4, 2022 10:27
-
-
Save syossan27/0a731378ea5176fb920024c33ff3378c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Creator: k6 Browser Recorder 0.6.2 | |
import { sleep, group } from 'k6' | |
import http from 'k6/http' | |
import { Trend, Gauge, Counter, Rate } from 'k6/metrics' | |
const testTrend = new Trend('testTrend', true); | |
const testGauge = new Gauge('testGauge'); | |
const testCounter = new Counter('testCounter'); | |
const testRate = new Rate('testRate') | |
export const options = { | |
scenarios: { | |
test_scenario: { | |
// rate, timeUnitを実行するためのExecutor | |
executor: 'constant-arrival-rate', | |
duration: '1s', | |
// duration: '5s', | |
// timeUnitで指定された時間毎に反復するテスト回数 | |
rate: 1, | |
// rate: 20, | |
// rateを反復させる時間 | |
timeUnit: '1s', | |
// 初期に割り当てられるVUS数 | |
preAllocatedVUs: 40, | |
// VUSが足りなかった場合に増える最大ユーザー数 | |
maxVUs: 100, | |
}, | |
}, | |
thresholds: { | |
testTrend: ['avg < 120'], | |
testGauge: ['value < 1000'], | |
testCounter: ['count < 1'], | |
testRate: [{ | |
threshold: 'rate < 0.1', | |
abortOnFail: true, | |
delayAbortEval: '1m' | |
}], | |
}, | |
} | |
export default function main() { | |
let response | |
group('page_1 - http://example.com/', function () { | |
response = http.get('http://example.com/', { | |
headers: { | |
'upgrade-insecure-requests': '1', | |
}, | |
}) | |
}) | |
// レスポンスが返ってくるまでの平均時間が120ms以下かどうか | |
testTrend.add(response.timings.duration); | |
// レスポンスボディのサイズが1000以下かどうか | |
testGauge.add(response.body.length); | |
// レスポンスボディ内のタイトルがExample Domainじゃないかどうか | |
const doc = response.html(); | |
if (doc.find('title').text() === "Example Domain") { | |
testCounter.add(1); | |
} | |
// レスポンスの10%以上が200以外だった場合、1分後に負荷計測を中断する | |
testRate.add(response.status !== 200); | |
// Automatically added sleep | |
sleep(1) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment