-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnote.txt
More file actions
135 lines (87 loc) · 4.68 KB
/
note.txt
File metadata and controls
135 lines (87 loc) · 4.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
++++ Menginstall K6 ++++
install node js
https://grafana.com/docs/k6/latest/set-up/install-k6/
++++ Example Application ++++
start-lampp
node src/main.js di belajar-nodejs....
++++ Membuat Project ++++
npm init
ubah type di package.json menjadi module
install binary dan autocomplate:
npm install k6
npm install --save-dev @type/k6
++++ Script ++++
Script merupakan file JavaScript yang berisikan kode cara melakukan performance test
dan juga pengaturan atau skenario test yang ingin kita lakukan
untuk membuat script, buat folder /src dan buat file js/ts
atau dengan
k6 new lokasi/file.js
menjalankan script dengan
k6 run lokasi/file.js
option dan default function
Script untuk K6 terdiri dari dua bagian, yang pertama adalah Options, dan yang kedua adalah default function
Options adalah sebuah variable yang digunakan untuk melakukan pengaturan, misal 'vus' adalah jumlah virtual user (VU),
dan 'duration' adalah berapa lama durasi melakukan pengujian
Default function adalah function yang dijalankan oleh K6 sesuai dengan pengaturan di variable options
Default function akan berisi kode untuk melakukan skenario performance testing
++++ Bagaimana k6 bekerja ++++
pertama K6 akan membaca informasi pengaturan dari options
contoh: menggunakan 10 virtual user, dan total durasi 30 detik
selanjutnya K6 akan menjalankan default function sebanyak pengaturan yang sudah ditentukan
berarti K6 akan memanggil default function secara paralel sejumlah 10 proses,
sesuai dengan jumlah virtual user, secara terus-menerus, selama total 30 detik
karena di default function ada kode sleep(1), yang artinya sebelum selesai, proses akan berhenti dahulu sekitar 1 detik
(melakukan aksi 300 kali, 10 aksi user per detik, selama 30 detik)
++++ Summary Output ++++
Setelah K6 menjalankan performance testing dari script yang kita buat,
maka K6 akan menghasilkan output summary dari hasil performance testing
Secara default, hasil output akan ditampilkan dalam console / terminal
Namun jika kita mau, kita bisa simpan hasil output dalam bentuk file JSON dengan cara menggunakan perintah :
k6 run file/script.js --summary-export lokasi-output.json
Keterangan dari setiap informasi output bisa kita lihat di halaman ini :
https://grafana.com/docs/k6/latest/using-k6/metrics/reference/
Secara default, statistik yang digunakan untuk tiap metric dari hasil pengujian adalah :
[avg, min, med, max, p(90), p(95)]
Jika kita mau ubah, kita bisa ubah dengan menambahkan di options, dengan key summaryTrendStats : []
++++ Realtime Output ++++
Summary Output hanya akan membuat report setelah proses performance test selesai
Jika kita butuh informasi secara realtime, kita bisa menggunakan realtime output dari K6
Secara default, K6 bisa mengirim realtime output ke file JSON / CSV
k6 run --out csv=test_results.csv script.js
https://grafana.com/docs/k6/latest/results-output/real-time/csv/
k6 run --out json=test_results.csv script.js
https://grafana.com/docs/k6/latest/results-output/real-time/json/
steam to service:
Selain ke file, realtime output juga bisa dikirim ke third party service
Hanya saja, untuk mengirim ke third party service, secara default tidak bisa dilakukan
Kita harus membuat ulang aplikasi K6 dengan menambahkan library third party tersebut,
pada kasus ini kita harus tahu bagaimana cara membuat aplikasi menggunakan Golang
https://grafana.com/docs/k6/latest/results-output/real-time/
++++ Web Dashboard ++++
K6 memiliki fitur Web Dashboard, yaitu fitur untuk melihat realtime output dan summary output ketika K6 sedang melakukan pengujian
Untuk mengaktifkan fitur Web Dashboard, kita harus mengaktifkannya menggunakan environment variable
https://grafana.com/docs/k6/latest/results-output/web-dashboard/
export K6_WEB_DASHBOARD=true
K6_WEB_DASHBOARD=true k6 run script.js
++++ Stages ++++
K6 memiliki fitur untuk meningkatkan atau menurunkan virtual user ketika melakukan pengujian menggunakan atribut stages
Dengan ini kita bisa meningkatkan jumlah user dalam durasi tertentu, dan menurunkan user dalam durasi tertentu
https://grafana.com/docs/k6/latest/using-k6/k6-options/reference/#stages
++++ HTTP Request ++++
K6 dilengkapi dengan library bawaan untuk melakukan HTTP Test yaitu k6/http
k6/http merupakan library yang digunakan untuk melakukan HTTP Request
Perlu diingat bahwa library k6/http ini bukan untuk melakukan pengetesan Web Browser
Hampir semua HTTP method didukung oleh library k6/http ini
https://grafana.com/docs/k6/latest/javascript-api/k6-http/
register.js
++++ Fail Test ++++
++++ Checks ++++
++++ Execution Context Variables ++++
++++ Test Life Cycle ++++
++++ Modules ++++
++++ Environment Variables ++++
++++ Scenario ++++
++++ Metrics ++++
++++ Thresholds ++++
++++ JavaScript Library ++++
++++ Penutup ++++