Skip to content

Commit 83e5786

Browse files
committed
wip
1 parent 6e4292d commit 83e5786

14 files changed

+210
-48
lines changed

performance-results/performance-log.txt old_performance-results/performance-log.txt

+24
Original file line numberDiff line numberDiff line change
@@ -12152,3 +12152,27 @@
1215212152
{"startDisplayTime":"11/6/2024, 3:47:29 PM","instanceID":"inst31d49c606aa647ff8743491751db5b54"}
1215312153
{"startDisplayTime":"11/6/2024, 3:47:29 PM","instanceID":"inst07fbc2ff1914ebad0b5eee7f8af0594a"}
1215412154
{"startDisplayTime":"11/6/2024, 3:47:29 PM","instanceID":"inst4e6cf618b58f1c463502079265b0d56c"}
12155+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instc3a589f863cb89726181420417fa4c66"}
12156+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst8c36fbdbcbebe74589617c0411b11d91"}
12157+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst5adea1ed42bf6c98eda869c8459dd700"}
12158+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instf66378bfa1d1b1291666fcaac0086dd3"}
12159+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instad0ee8d489773c6aca4a3a4cbc008d18"}
12160+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst224478fa8dfbf61dfa16c443f0e40188"}
12161+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"insta011643bae1b3efc5c6a82cdd4f68e99"}
12162+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst43f263050ff4268b879a5a847ef963ce"}
12163+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst422900a7af213b46b37ead72cff0c209"}
12164+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst4010aebe5399e2ad314613b7129ec5da"}
12165+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inste229d6e7622d155fa01768ef58fdb061"}
12166+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instc7e2dfafd74872a76f53699fd27e47df"}
12167+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst39f53724eb5aa316f10c102c254de4e9"}
12168+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instb18add9929d271577dc33d232d9da761"}
12169+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instb47c2f29d9d4c07a725e3f999d320c41"}
12170+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instb5448fdbe2e93b3d0a373536c0448f19"}
12171+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst506ae11bf84767bdacc1c3c840860167"}
12172+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst719eabdc9d001bbcfe59043011e82bf1"}
12173+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst4a6c772cc998943ea09cbe3c1d89540c"}
12174+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst3fcdaba06e1cf069e56e6ef4a0a17c33"}
12175+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst96c3bf59f667312be1ce7b166d6fcb9a"}
12176+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"instc4c1486e464b3cbc2851802ba0f744cc"}
12177+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst7d5087a74ef8bb5c4df22cb2d7977043"}
12178+
{"startDisplayTime":"11/8/2024, 12:01:57 AM","instanceID":"inst4eb4422c43b2c964f533952afea3eff5"}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"scripts": {
1919
"test": "playwright test",
2020
"preinstall": "npx only-allow pnpm",
21-
"test:perf": "playwright test 'perf'"
21+
"test:perf": "playwright test 'perf/perf.spec.ts'"
2222
},
2323
"devDependencies": {
2424
"@eslint/js": "^9.14.0",

playwright.config.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default defineConfig({
2020
/* Retry on CI only */
2121
retries: process.env.CI ? 2 : 0,
2222
/* Opt out of parallel tests on CI. */
23-
workers: process.env.CI ? 1 : '75%',
23+
workers: process.env.CI ? 1 : '50%',
2424
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
2525
reporter: 'list',
2626
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
@@ -34,9 +34,13 @@ export default defineConfig({
3434

3535
/* Configure projects for major browsers */
3636
projects: [
37+
{ name: 'setup', testMatch: /.*\.setup\.ts/ },
3738
{
3839
name: 'chromium',
39-
use: { ...devices['Desktop Chrome'] },
40+
use: { ...devices['Desktop Chrome'],
41+
storageState: 'playwright/.auth/user.json'
42+
},
43+
dependencies: ['setup'],
4044
},
4145
],
4246
});

playwright/.auth/user.json

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
{
2+
"cookies": [
3+
{
4+
"name": "scix_session",
5+
"value": "Fe26.2*1*7e221f642788d4011b8a1177b35284b7a34a1a8cb1753b31a144330ceb00166d*eD5iAHyE_HWtJJSvlqecjA*0pIj7624e5OfYhVF52mu0VwHqiiAQK53mnGF3ZWyl65yUO9yrx4Mm2fSOoMl7zsy_uh29BBqyLMZgAvyNrBOObv050if_83n_w0n3rgtojj09dyyoY5cThD8AGXR9ImM5cDhDc8wnBl3aIpamZD0KVgyFu8GwTlXRlW1DO_D0sSBeslNJ7q1vdOWsntTWzkjmuhApB2A8rMUqiMiwsbL3Yj34RnRGyui28haiXjS8qcfvoyrYk2uu-SJ2ojNx3ykJbjm0Va9q6kPXLVw3aRz5wbCFLaydyxFd8YJP7R7GSyLtdiF2FP6dfQjGQ2rTzLkQ0Aa1OWTpFMcpN39Shjkcl5RJDZP64mQN7DZDW037WM*1732347536654*07ec64a88fbe697618a30be87c9894be494a953e603b5ba7c8d6467fb540cb49*523MFWRqu2fJXbk9e_Lv0kpgVfgN75dhfmOSYRfgQlg~2",
6+
"domain": "dev.scixplorer.org",
7+
"path": "/",
8+
"expires": 1732347476.673612,
9+
"httpOnly": true,
10+
"secure": true,
11+
"sameSite": "Strict"
12+
},
13+
{
14+
"name": "_ga",
15+
"value": "GA1.1.2059655619.1731051537",
16+
"domain": ".scixplorer.org",
17+
"path": "/",
18+
"expires": 1765611536.972512,
19+
"httpOnly": false,
20+
"secure": false,
21+
"sameSite": "Lax"
22+
},
23+
{
24+
"name": "session",
25+
"value": ".eJw1jssKgkAUQH8l7tpFBQYJLcJHYmklg4_ZiNqt0WYsxpFI8d8Toe2BczgDZHeJLQNDyQ41yKobGAMsCjCAxiEP4oj7gtb-wRHUeiz9ngpKGKfEqwJif8-EPdPa3sE4uW-UIm-wUf_aK-8Uy0pezQxceVw7yZQrMHFPHLeCXT69dw1NjroZqUbtcWPpJWjQtSjnF1jB-AMBTDc_.Zy3AEQ.yI9hFY6vG5PPZF8ywg9_Gt1SgPI",
26+
"domain": "dev.scixplorer.org",
27+
"path": "/",
28+
"expires": 1762609137.521137,
29+
"httpOnly": true,
30+
"secure": true,
31+
"sameSite": "None"
32+
},
33+
{
34+
"name": "_ga_DBP4MPB22J",
35+
"value": "GS1.1.1731051536.1.0.1731051538.0.0.0",
36+
"domain": ".scixplorer.org",
37+
"path": "/",
38+
"expires": 1765611538.187781,
39+
"httpOnly": false,
40+
"secure": false,
41+
"sameSite": "Lax"
42+
},
43+
{
44+
"name": "_ga",
45+
"value": "GA1.1.1698540663.1731051539",
46+
"domain": ".harvard.edu",
47+
"path": "/",
48+
"expires": 1765611538.608041,
49+
"httpOnly": false,
50+
"secure": false,
51+
"sameSite": "Lax"
52+
},
53+
{
54+
"name": "session",
55+
"value": ".eJw1jsEKgkAURX8l3tpFVhYJLQKNyqaYUOzNRiynnNRRxpEM8d8Tod3lwDncDqKn4nUKtlYNNyASCdgdTO5gA_GzljjZhznY4htNDM85hocZKwKLOWzYwYL4L-vi0w30g1txVcSSS_2vlXGj0-iRi5HBaV2hMPc0cUsiVzgPpHf7HrdLLROHCre-Tj3qobsDA5qaq_ELmND_AKTFNe4.Zy3AFA.jB9zbDnIGBVrS-QaZBqJ3F-h__I",
56+
"domain": "devui.adsabs.harvard.edu",
57+
"path": "/",
58+
"expires": 1762609140.073802,
59+
"httpOnly": true,
60+
"secure": true,
61+
"sameSite": "None"
62+
},
63+
{
64+
"name": "_ga_X07MS2584V",
65+
"value": "GS1.1.1731051538.1.0.1731051540.0.0.0",
66+
"domain": ".harvard.edu",
67+
"path": "/",
68+
"expires": 1765611540.291109,
69+
"httpOnly": false,
70+
"secure": false,
71+
"sameSite": "Lax"
72+
}
73+
],
74+
"origins": [
75+
{
76+
"origin": "https://devui.adsabs.harvard.edu",
77+
"localStorage": [
78+
{
79+
"name": "test",
80+
"value": "null"
81+
},
82+
{
83+
"name": "bumblebeestorage-service>currentQuery",
84+
"value": "{\"q\":[\"bibcode:2019ApJ...875L...1E\"],\"sort\":[\"score desc, bibcode desc\"],\"n\":[\"10\"],\"p\":[\"1\"]}"
85+
},
86+
{
87+
"name": "bumblebeestorage-service>#keys",
88+
"value": "{\"appConfig\":1,\"currentQuery\":1}"
89+
},
90+
{
91+
"name": "bumblebeestorage-service>appConfig",
92+
"value": "{\"username\":\"anonymous@ads\",\"scopes\":[\"api\",\"execute-query\",\"store-query\"],\"client_id\":\"L9pYi1HQdEoMn7Y3UnKXyJA6tndDQiEsR0KQKYEF\",\"access_token\":\"hBa6RpzoW4wVKvWVp0VZhwFQiT8pcMNOONEHC1tH\",\"client_name\":\"BB client\",\"token_type\":\"Bearer\",\"ratelimit\":1,\"anonymous\":true,\"client_secret\":\"zHo1RvtF6LssI5frTe2V5u8FhF2gh80ZbQRPIz4wMnB7YKsW79izXtAvdqRR\",\"expire_in\":\"2024-11-09T07:38:59.030527\",\"refresh_token\":\"FntdPNs8SROFWROGMAdqsIsDCGeT2KVypvIp9Q36\"}"
93+
}
94+
]
95+
},
96+
{
97+
"origin": "https://dev.scixplorer.org",
98+
"localStorage": [
99+
{
100+
"name": "chakra-ui-color-mode",
101+
"value": "light"
102+
},
103+
{
104+
"name": "nectar-app-state",
105+
"value": "{\"state\":{\"user\":{\"access_token\":\"m6Eq94SzqSRHAdrWqvhME9tTyhUz7OEstbYzlnzP\",\"username\":\"anonymous@ads\",\"anonymous\":true,\"expire_in\":\"2024-11-09T07:38:55.794955\"},\"mode\":\"GENERAL\",\"numPerPage\":10,\"settings\":{\"searchFacets\":{\"order\":[\"author\",\"collections\",\"refereed\",\"institutions\",\"keywords\",\"publications\",\"bibgroups\",\"simbad\",\"ned\",\"data\",\"vizier\",\"pubtype\",\"planetary\"],\"state\":{\"author\":{\"hidden\":false,\"expanded\":true},\"collections\":{\"hidden\":false,\"expanded\":true},\"refereed\":{\"hidden\":false,\"expanded\":true},\"institutions\":{\"hidden\":false,\"expanded\":false},\"keywords\":{\"hidden\":false,\"expanded\":false},\"publications\":{\"hidden\":false,\"expanded\":false},\"bibgroups\":{\"hidden\":false,\"expanded\":false},\"simbad\":{\"hidden\":false,\"expanded\":false},\"ned\":{\"hidden\":false,\"expanded\":false},\"data\":{\"hidden\":false,\"expanded\":false},\"vizier\":{\"hidden\":false,\"expanded\":false},\"pubtype\":{\"hidden\":false,\"expanded\":false},\"planetary\":{\"hidden\":false,\"expanded\":false}},\"open\":true,\"ignored\":[]},\"user\":{}},\"orcid\":{\"isAuthenticated\":false,\"user\":null,\"active\":false}},\"version\":0}"
106+
}
107+
]
108+
},
109+
{
110+
"origin": "https://www.google.com",
111+
"localStorage": [
112+
{
113+
"name": "rc::a",
114+
"value": "MXJzems0MTk4Y2h5NA=="
115+
}
116+
]
117+
}
118+
]
119+
}

tests/auth.setup.ts

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { test as setup, expect } from '@playwright/test';
2+
import { join } from 'path';
3+
4+
const authFile = join(__dirname, '../playwright/.auth/user.json');
5+
6+
const scixAuthUrl = 'https://dev.scixplorer.org/search?q=bibcode%3A2019ApJ...875L...1E&sort=score+desc&sort=date+desc&n=10&p=1'
7+
const bbbAuthUrl = 'https://devui.adsabs.harvard.edu/search/q=bibcode%3A2019ApJ...875L...1E&sort=score+desc&sort=date+desc&n=10&p=1'
8+
9+
setup('authenticate', async ({ page }) => {
10+
await page.goto(scixAuthUrl);
11+
await page.waitForLoadState('networkidle');
12+
await page.context().storageState({ path: authFile });
13+
14+
await page.goto(bbbAuthUrl);
15+
await page.waitForLoadState('networkidle');
16+
await page.context().storageState({ path: authFile });
17+
});
+30-28
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1-
import {test, TestContext} from '../test-base';
2-
import {queries} from '../queries';
3-
import {makePrefix} from '../utils';
4-
import {throttlePage} from '../throttle';
1+
import {test, TestContext} from './test-base';
2+
import {queries} from './queries';
3+
import {makePrefix} from './utils';
4+
import {throttlePage} from './throttle';
55

66
type Query = (typeof queries)[number];
77

8+
9+
810
test.describe('ui.adsabs.harvard.edu', () => {
911
test.use({
1012
baseURL: 'https://devui.adsabs.harvard.edu',
1113
});
1214

1315
const perfTest = async (
1416
prefix: string,
15-
{ page, performance }: Pick<TestContext, 'page' | 'performance'>,
16-
{ query }: Query,
17+
{page, performance}: Pick<TestContext, 'page' | 'performance'>,
18+
{query, name}: Query,
1719
) => {
1820
performance.sampleStart(`${prefix}.pre-load`);
19-
await page.goto('/', { waitUntil: 'commit' });
21+
await page.goto('/', {waitUntil: 'commit'});
2022
await page.fill('input[name="q"]', query);
2123
performance.sampleStart(`${prefix}.post-load`);
2224
await page.getByLabel('submit').click();
@@ -25,26 +27,26 @@ test.describe('ui.adsabs.harvard.edu', () => {
2527
performance.sampleEnd(`${prefix}.post-load`);
2628
};
2729

28-
for (const { description, name, query } of queries) {
30+
for (const {description, name, query} of queries) {
2931
const prefix = makePrefix('bbb', name, 'normal');
30-
test(prefix, async ({ page, performance }) => {
31-
await perfTest(prefix, { page, performance }, { query, name, description });
32+
test(prefix, async ({page, performance}) => {
33+
await perfTest(prefix, {page, performance}, {query, name, description});
3234
});
3335
}
3436

35-
for (const { description, name, query } of queries) {
37+
for (const {description, name, query} of queries) {
3638
const prefix = makePrefix('bbb', name, '3g-4x');
37-
test(prefix, async ({ page, performance, context }) => {
39+
test(prefix, async ({page, performance, context}) => {
3840
await throttlePage(context, page, '3g-4x');
39-
await perfTest(prefix, { page, performance }, { query, name, description });
41+
await perfTest(prefix, {page, performance}, {query, name, description});
4042
});
4143
}
4244

43-
for (const { description, name, query } of queries) {
45+
for (const {description, name, query} of queries) {
4446
const prefix = makePrefix('bbb', name, 'eth-2x');
45-
test(prefix, async ({ page, performance, context }) => {
47+
test(prefix, async ({page, performance, context}) => {
4648
await throttlePage(context, page, 'eth-2x');
47-
await perfTest(prefix, { page, performance }, { query, name, description });
49+
await perfTest(prefix, {page, performance}, {query, name, description});
4850
});
4951
}
5052
});
@@ -56,11 +58,11 @@ test.describe('scixplorer.org', () => {
5658

5759
const perfTest = async (
5860
prefix: string,
59-
{ page, performance }: Pick<TestContext, 'page' | 'performance'>,
60-
{ query }: Query,
61+
{page, performance}: Pick<TestContext, 'page' | 'performance'>,
62+
{query, name}: Query,
6163
) => {
6264
performance.sampleStart(`${prefix}.pre-load`);
63-
await page.goto('/', { waitUntil: 'commit' });
65+
await page.goto('/', {waitUntil: 'commit'});
6466
await page.getByTestId('search-input').fill(query);
6567
performance.sampleStart(`${prefix}.post-load`);
6668
await page.getByTestId('search-submit').click();
@@ -69,26 +71,26 @@ test.describe('scixplorer.org', () => {
6971
performance.sampleEnd(`${prefix}.post-load`);
7072
};
7173

72-
for (const { description, name, query } of queries) {
74+
for (const {description, name, query} of queries) {
7375
const prefix = makePrefix('scix', name, 'normal');
74-
test(prefix, async ({ page, performance }) => {
75-
await perfTest(prefix, { page, performance }, { query, name, description });
76+
test(prefix, async ({page, performance}) => {
77+
await perfTest(prefix, {page, performance}, {query, name, description});
7678
});
7779
}
7880

79-
for (const { description, name, query } of queries) {
81+
for (const {description, name, query} of queries) {
8082
const prefix = makePrefix('scix', name, '3g-4x');
81-
test(prefix, async ({ page, performance, context }) => {
83+
test(prefix, async ({page, performance, context}) => {
8284
await throttlePage(context, page, '3g-4x');
83-
await perfTest(prefix, { page, performance }, { query, name, description });
85+
await perfTest(prefix, {page, performance}, {query, name, description});
8486
});
8587
}
8688

87-
for (const { description, name, query } of queries) {
89+
for (const {description, name, query} of queries) {
8890
const prefix = makePrefix('scix', name, 'eth-2x');
89-
test(prefix, async ({ page, performance, context }) => {
91+
test(prefix, async ({page, performance, context}) => {
9092
await throttlePage(context, page, 'eth-2x');
91-
await perfTest(prefix, { page, performance }, { query, name, description });
93+
await perfTest(prefix, {page, performance}, {query, name, description});
9294
});
9395
}
9496
});

0 commit comments

Comments
 (0)