Skip to content

Commit ae89d52

Browse files
committed
fix perf tests lint
1 parent a87341e commit ae89d52

File tree

4 files changed

+131
-95
lines changed

4 files changed

+131
-95
lines changed

tests/perf/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,9 @@ prisme/%: FORCE
2121
.PHONY: lint
2222
lint:
2323
deno fmt --check
24-
deno check
2524

2625
.PHONY: lint/fix
2726
lint/fix:
2827
deno fmt
29-
deno check
3028

3129
FORCE:

tests/perf/prisme/deno.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"imports": {
3+
"k6": "npm:@types/k6@1"
4+
}
5+
}

tests/perf/prisme/deno.lock

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/perf/prisme/main.js

Lines changed: 96 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,192 +1,195 @@
1-
import http from 'k6/http'
1+
import http from "k6/http";
22

3-
const directTrafficRate = 0.1
4-
const customEventRate = 0.3
5-
const errorRate = 0.0
6-
const bounceRate = 0.5
7-
const exitRate = 0.1
8-
const maxEventsPerSession = 30
3+
const directTrafficRate = 0.1;
4+
const customEventRate = 0.3;
5+
const errorRate = 0.0;
6+
const bounceRate = 0.5;
7+
const exitRate = 0.1;
8+
const maxEventsPerSession = 30;
99

1010
export const options = {
1111
thresholds: {
1212
// Thresholds so tags appear in CLI report.
13-
'http_reqs{event_type:pageview}': ['count >= 0'],
14-
'http_reqs{event_type:custom}': ['count >= 0']
13+
"http_reqs{event_type:pageview}": ["count >= 0"],
14+
"http_reqs{event_type:custom}": ["count >= 0"],
1515
},
1616
discardResponseBodies: true,
1717
scenarios: {
1818
sharedIterationsPageViewEvents: {
19-
executor: 'shared-iterations',
19+
executor: "shared-iterations",
2020
vus: 4096,
21-
iterations: 2 ** 17
22-
}
23-
}
24-
}
21+
iterations: 2 ** 17,
22+
},
23+
},
24+
};
2525

2626
const origins = [
27-
'mywebsite.localhost',
28-
'foo.mywebsite.localhost'
29-
]
27+
"mywebsite.localhost",
28+
"foo.mywebsite.localhost",
29+
];
3030

3131
export default function () {
3232
const origin = [
33-
randomItem(['http', 'https']),
34-
'://',
35-
randomItem(origins)
36-
].join('')
33+
randomItem(["http", "https"]),
34+
"://",
35+
randomItem(origins),
36+
].join("");
3737

38-
const ipAddr = randomIP()
38+
const ipAddr = randomIP();
3939

40-
const visitorState = { origin, ipAddr }
40+
const visitorState = { origin, ipAddr };
4141

4242
// Entry pageview.
43-
const response = pageView(visitorState)
43+
const response = pageView(visitorState);
4444
if (response.status !== 200) {
45-
console.error('entry pageview', response.status_text, response.error)
46-
return
45+
console.error("entry pageview", response.status_text, response.error);
46+
return;
4747
}
4848

4949
// Custom events.
5050
while (Math.random() < customEventRate) {
51-
const response = customEvent(visitorState)
51+
const response = customEvent(visitorState);
5252
if (response.status !== 200) {
53-
console.error('custom event', response.status_text, response.error)
54-
return
53+
console.error("custom event", response.status_text, response.error);
54+
return;
5555
}
5656
}
5757

5858
// Bounce.
5959
if (Math.random() < bounceRate) {
60-
return
60+
return;
6161
}
6262

63-
let events = 0
63+
let events = 0;
6464
while (events < maxEventsPerSession) {
6565
// Pageview.
66-
const response = pageView(visitorState)
66+
const response = pageView(visitorState);
6767
if (response.status !== 200) {
68-
console.error('pageview', response.status_text, response.error)
69-
return
68+
console.error("pageview", response.status_text, response.error);
69+
return;
7070
}
71-
events++
71+
events++;
7272

7373
// Custom events.
7474
while (Math.random() < customEventRate) {
75-
const response = customEvent(visitorState)
75+
const response = customEvent(visitorState);
7676
if (response.status !== 200) {
77-
console.error('custom event', response.status_text, response.error)
78-
return
77+
console.error("custom event", response.status_text, response.error);
78+
return;
7979
}
80-
events++
80+
events++;
8181
}
8282

8383
// Exit rate.
8484
if (Math.random() < exitRate) {
85-
return
85+
return;
8686
}
8787
}
8888
}
8989

90-
function pageView (visitorState) {
91-
const { origin, ipAddr, referrer } = visitorState
90+
function pageView(visitorState) {
91+
const { origin, ipAddr, referrer } = visitorState;
9292
const url = [
9393
origin,
94-
randomItem(['', 'foo', 'bar', 'qux', 'foo'])
95-
].join('/')
94+
randomItem(["", "foo", "bar", "qux", "foo"]),
95+
].join("/");
9696

9797
const headers = {
9898
Origin: origin,
99-
'X-Prisme-Referrer': url,
100-
'X-Prisme-Document-Referrer': referrer ?? origin,
101-
'X-Forwarded-For': ipAddr
102-
}
99+
"X-Prisme-Referrer": url,
100+
"X-Prisme-Document-Referrer": referrer ?? origin,
101+
"X-Forwarded-For": ipAddr,
102+
};
103103

104104
if (!referrer) {
105105
if (Math.random() < directTrafficRate) {
106-
delete headers['X-Prisme-Document-Referrer']
106+
delete headers["X-Prisme-Document-Referrer"];
107107
} else {
108-
headers['X-Prisme-Document-Referrer'] = randomItem([
109-
'https://google.com',
110-
'https://duckduckgo.com',
111-
'https://qwant.com',
112-
'https://github.com'
113-
])
108+
headers["X-Prisme-Document-Referrer"] = randomItem([
109+
"https://google.com",
110+
"https://duckduckgo.com",
111+
"https://qwant.com",
112+
"https://github.com",
113+
]);
114114
}
115115
}
116116

117117
if (Math.random() < errorRate) {
118118
// Invalid origin.
119-
headers.Origin = 'an invalid origin'
119+
headers.Origin = "an invalid origin";
120120
}
121121

122122
const response = http.post(
123-
'http://prisme.localhost/api/v1/events/pageviews',
123+
"http://prisme.localhost/api/v1/events/pageviews",
124124
null,
125-
{ headers, tags: { event_type: 'pageview' } }
126-
)
125+
{ headers, tags: { event_type: "pageview" } },
126+
);
127127

128-
visitorState.referrer = url
128+
visitorState.referrer = url;
129129

130-
return response
130+
return response;
131131
}
132132

133-
function customEvent (visitorState) {
134-
const { origin, ipAddr, referrer } = visitorState
133+
function customEvent(visitorState) {
134+
const { origin, ipAddr, referrer } = visitorState;
135135
const headers = {
136136
Origin: origin,
137-
'Content-Type': 'application/json',
138-
'X-Prisme-Referrer': referrer ?? origin,
139-
'X-Forwarded-For': ipAddr
140-
}
137+
"Content-Type": "application/json",
138+
"X-Prisme-Referrer": referrer ?? origin,
139+
"X-Forwarded-For": ipAddr,
140+
};
141141

142142
if (Math.random() < errorRate) {
143143
// Invalid origin.
144-
headers.Origin = 'an invalid origin'
144+
headers.Origin = "an invalid origin";
145145
}
146146

147-
const eventName = randomItem(['click', 'empty', 'big', 'download'])
148-
let body = {}
147+
const eventName = randomItem(["click", "empty", "big", "download"]);
148+
let body = {};
149149
switch (eventName) {
150-
case 'click':
151-
body = { x: Math.round(Math.random() * 100), y: Math.round(Math.random() * 100) }
152-
break
150+
case "click":
151+
body = {
152+
x: Math.round(Math.random() * 100),
153+
y: Math.round(Math.random() * 100),
154+
};
155+
break;
153156

154-
case 'empty':
155-
break
157+
case "empty":
158+
break;
156159

157-
case 'big':
160+
case "big":
158161
for (let i = 0; i < 32; i++) {
159-
body[i] = i
162+
body[i] = i;
160163
}
161-
break
164+
break;
162165

163-
case 'download':
164-
body.file = randomItem(['file.pdf', 'summary.pdf', 'company.pdf'])
165-
break
166+
case "download":
167+
body.file = randomItem(["file.pdf", "summary.pdf", "company.pdf"]);
168+
break;
166169

167170
default:
168-
throw new Error('unknown event name: ' + eventName)
171+
throw new Error("unknown event name: " + eventName);
169172
}
170173

171174
const response = http.post(
172-
'http://prisme.localhost/api/v1/events/custom/' + eventName,
175+
"http://prisme.localhost/api/v1/events/custom/" + eventName,
173176
JSON.stringify(body),
174-
{ headers, tags: { event_type: 'custom' } }
175-
)
177+
{ headers, tags: { event_type: "custom" } },
178+
);
176179

177-
return response
180+
return response;
178181
}
179182

180-
function randomItem (items) {
181-
const index = Math.floor(Math.random() * items.length)
182-
return items[index]
183+
function randomItem(items) {
184+
const index = Math.floor(Math.random() * items.length);
185+
return items[index];
183186
}
184187

185-
function randomIP () {
186-
const addr = []
188+
function randomIP() {
189+
const addr = [];
187190
for (let i = 0; i < 4; i++) {
188-
addr.push(Math.floor(Math.random() * 255))
191+
addr.push(Math.floor(Math.random() * 255));
189192
}
190193

191-
return addr.map((b) => b.toString()).join('.')
194+
return addr.map((b) => b.toString()).join(".");
192195
}

0 commit comments

Comments
 (0)