2021-03-10 06:47:13 +13:00
|
|
|
// k6 run tests/benchmarks/ws.js
|
|
|
|
|
|
|
|
import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js';
|
|
|
|
import ws from 'k6/ws';
|
|
|
|
import { check } from 'k6';
|
|
|
|
|
|
|
|
export let options = {
|
|
|
|
stages: [
|
2021-08-28 04:33:09 +12:00
|
|
|
{
|
|
|
|
duration: '10s',
|
2021-06-25 00:22:32 +12:00
|
|
|
target: 500
|
2022-05-24 02:54:50 +12:00
|
|
|
},
|
2021-08-28 04:33:09 +12:00
|
|
|
{
|
|
|
|
duration: '1m',
|
2021-06-25 00:22:32 +12:00
|
|
|
target: 500
|
2022-05-24 02:54:50 +12:00
|
|
|
},
|
2021-03-10 19:52:10 +13:00
|
|
|
],
|
2021-03-10 06:47:13 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
export default function () {
|
2021-03-13 00:00:52 +13:00
|
|
|
// const url = new URL('wss://appwrite-realtime.monitor-api.com/v1/realtime');
|
|
|
|
// url.searchParams.append('project', '604249e6b1a9f');
|
2021-03-10 06:47:13 +13:00
|
|
|
const url = new URL('ws://localhost/v1/realtime');
|
2022-01-04 03:02:14 +13:00
|
|
|
url.searchParams.append('project', 'console');
|
2021-03-10 06:47:13 +13:00
|
|
|
url.searchParams.append('channels[]', 'files');
|
2021-03-13 00:00:52 +13:00
|
|
|
|
2021-03-10 06:47:13 +13:00
|
|
|
const res = ws.connect(url.toString(), function (socket) {
|
2021-03-13 00:00:52 +13:00
|
|
|
let connection = false;
|
|
|
|
let checked = false;
|
|
|
|
let payload = null;
|
2021-03-10 06:47:13 +13:00
|
|
|
socket.on('open', () => {
|
2021-03-13 00:00:52 +13:00
|
|
|
connection = true;
|
|
|
|
});
|
|
|
|
|
2021-03-10 06:47:13 +13:00
|
|
|
socket.on('message', (data) => {
|
2021-03-13 00:00:52 +13:00
|
|
|
payload = data;
|
|
|
|
checked = true;
|
2021-03-10 06:47:13 +13:00
|
|
|
});
|
2021-03-10 19:52:10 +13:00
|
|
|
|
2021-03-10 06:47:13 +13:00
|
|
|
socket.setTimeout(function () {
|
2021-03-13 00:00:52 +13:00
|
|
|
check(payload, {
|
|
|
|
'connection opened': (r) => connection,
|
|
|
|
'message received': (r) => checked,
|
2021-08-28 04:33:09 +12:00
|
|
|
'channels are right': (r) => r === JSON.stringify({
|
|
|
|
"type": "connected",
|
|
|
|
"data": {
|
|
|
|
"channels": [
|
|
|
|
"files"
|
|
|
|
],
|
|
|
|
"user": null
|
|
|
|
}
|
|
|
|
})
|
2021-03-13 00:00:52 +13:00
|
|
|
})
|
2021-03-10 06:47:13 +13:00
|
|
|
socket.close();
|
2021-08-28 04:33:09 +12:00
|
|
|
}, 5000);
|
2021-03-10 06:47:13 +13:00
|
|
|
});
|
2021-03-10 19:52:10 +13:00
|
|
|
|
2021-03-10 06:47:13 +13:00
|
|
|
check(res, { 'status is 101': (r) => r && r.status === 101 });
|
|
|
|
}
|