@cardano-sdk/e2e 0.39.1 → 0.39.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,278 +1,165 @@
|
|
|
1
|
+
import { SharedArray } from 'k6/data';
|
|
2
|
+
import { apiVersion } from '../../../../../cardano-services-client/src/version.ts';
|
|
3
|
+
import { check, fail } from 'k6';
|
|
4
|
+
import exec from 'k6/execution';
|
|
1
5
|
import http from 'k6/http';
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
/**
|
|
8
|
+
* # Script description:
|
|
9
|
+
* - Sends REQUEST_COUNT HTTP requests to fetch assets. Since the number of iterations is indirectly controlled by the
|
|
10
|
+
* duration and rate, it is possible to be slightly inaccurate.
|
|
11
|
+
* - Requests are started 1/s. A maximum of 20 VUs are used, so the maximum number of in-flight requests is 20.
|
|
12
|
+
* - The total number of assets requested per request is the sum of the ASSETS_* variables
|
|
13
|
+
* - AssetIds used are taken from mainnet. If the requested number of assets for the whole test is estimated to be larger
|
|
14
|
+
* than the sample, the test will fail.
|
|
15
|
+
* - Test verifies that:
|
|
16
|
+
* - Threshold for FAIL responses not exceeded (1% for example)
|
|
17
|
+
* - Threshold for response having the wrong number of assets compared to requested is not exceeded (1% for example)
|
|
18
|
+
* - 95th percentile of response time is less than 500ms
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const ASSETS_NO_METADATA_PER_REQUEST = Number.parseInt(__ENV.ASSETS_NO_METADATA_PER_REQUEST || 1);
|
|
22
|
+
const ASSETS_ON_CHAIN_METADATA_PER_REQUEST = Number.parseInt(__ENV.ASSETS_ON_CHAIN_METADATA_PER_REQUEST || 0);
|
|
23
|
+
const ASSETS_OFF_CHAIN_METADATA_PER_REQUEST = Number.parseInt(__ENV.ASSETS_OFF_CHAIN_METADATA_PER_REQUEST || 0);
|
|
24
|
+
const REQUESTS_COUNT = Number.parseInt(__ENV.REQUESTS_COUNT || 1);
|
|
25
|
+
const TARGET_ENV = __ENV.TARGET_ENV || 'dev'; // only dev and live are supported
|
|
26
|
+
const TARGET_NET = __ENV.TARGET_NET || 'mainnet'; // only mainnet is supported
|
|
27
|
+
const supportedTargetDeployments = new Set(['dev-mainnet', 'live-mainnet']);
|
|
28
|
+
const targetDeployment = `${TARGET_ENV}-${TARGET_NET}`;
|
|
29
|
+
const PROVIDER_SERVER_URL = `https://${targetDeployment}.lw.iog.io`;
|
|
5
30
|
|
|
6
31
|
export const options = {
|
|
32
|
+
scenarios: {
|
|
33
|
+
getAssets: {
|
|
34
|
+
// How long the test lasts.
|
|
35
|
+
// There's an extra iteration that I am correcting here.
|
|
36
|
+
duration: `${REQUESTS_COUNT}s`,
|
|
37
|
+
// Start iterations at a specific rate (`rate/timeUnit`) for `duration`
|
|
38
|
+
// Each iteration is executed by a VU. If the iteration ends, the VU is reused for the next iteration.
|
|
39
|
+
// `maxVUs` when a VU does not receive a response by the end of the iteration, a new VU is allocated
|
|
40
|
+
// for the next iteration. If the number of VUs reaches `maxVUs`, iterations are delayed until a VU is available.
|
|
41
|
+
executor: 'constant-arrival-rate',
|
|
42
|
+
// Randomly picked. This will be the maximum number of in-flight requests (requests waiting for a response).
|
|
43
|
+
maxVUs: 20,
|
|
44
|
+
// Have one 1 VU ready to handle the first iteration.
|
|
45
|
+
preAllocatedVUs: 1,
|
|
46
|
+
// How many iterations per time unit
|
|
47
|
+
rate: 1,
|
|
48
|
+
// Ensure a single iteration is run by making the duration small (1s) and rate higher 1/2s.
|
|
49
|
+
// Otherwise, for duration=1s and rate 1/s, it runs 2 iterations. It could be a bug...
|
|
50
|
+
timeUnit: REQUESTS_COUNT > 1 ? '1s' : '2s'
|
|
51
|
+
}
|
|
52
|
+
},
|
|
7
53
|
thresholds: {
|
|
8
|
-
|
|
9
|
-
|
|
54
|
+
// Fail if more than 1% of the requests have invalid number of assets in the response
|
|
55
|
+
'checks{assetsCountInResponse:assetsCountInResponse}': [{ abortOnFail: true, threshold: 'rate>0.99' }],
|
|
56
|
+
http_req_duration: ['p(95)<2000'],
|
|
57
|
+
//
|
|
58
|
+
http_req_failed: [{ abortOnFail: true, threshold: 'rate<0.1' }]
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const assetsSample = new SharedArray('assets', () => {
|
|
63
|
+
const assetsMainnetJson = open('../../../dump/assets/mainnet.json');
|
|
64
|
+
const assetsMainnet = JSON.parse(assetsMainnetJson).assets;
|
|
65
|
+
return [
|
|
66
|
+
assetsMainnet.filter((asset) => !asset.hasMetadata).map((asset) => asset.id),
|
|
67
|
+
assetsMainnet.filter((asset) => asset.hasOffchainMetadata).map((asset) => asset.id),
|
|
68
|
+
assetsMainnet.filter((asset) => asset.hasMetadata && !asset.hasOffchainMetadata).map((asset) => asset.id)
|
|
69
|
+
];
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
export const setup = () => {
|
|
73
|
+
if (
|
|
74
|
+
!check(targetDeployment, {
|
|
75
|
+
'Target deployment is valid': (target) => supportedTargetDeployments.has(target)
|
|
76
|
+
})
|
|
77
|
+
) {
|
|
78
|
+
fail(`Unsupported target deployment ${targetDeployment}`);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const [assetsNoMetadata, assetsWithOffChainMetadata, assetsWithOnChainMetadata] = assetsSample;
|
|
82
|
+
const availableAssetsInSample = {
|
|
83
|
+
noMetadata: assetsNoMetadata.length,
|
|
84
|
+
withOffChainMetadata: assetsWithOffChainMetadata.length,
|
|
85
|
+
withOnChainMetadata: assetsWithOnChainMetadata.length
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const totalAssetsToQuery = {
|
|
89
|
+
noMetadata: ASSETS_NO_METADATA_PER_REQUEST * REQUESTS_COUNT,
|
|
90
|
+
withOffChainMetadata: ASSETS_OFF_CHAIN_METADATA_PER_REQUEST * REQUESTS_COUNT,
|
|
91
|
+
withOnChainMetadata: ASSETS_ON_CHAIN_METADATA_PER_REQUEST * REQUESTS_COUNT
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// Validate we have sufficient assets in the sample to query. Assets already queried will be cached in the back-end
|
|
95
|
+
// So we need to query a different set of assets on each request.
|
|
96
|
+
if (
|
|
97
|
+
!check(totalAssetsToQuery, {
|
|
98
|
+
'Sufficient assets with no metadata in sample': ({ noMetadata }) =>
|
|
99
|
+
noMetadata <= availableAssetsInSample.noMetadata,
|
|
100
|
+
'Sufficient assets with off-chain metadata in sample': ({ withOffChainMetadata }) =>
|
|
101
|
+
withOffChainMetadata <= availableAssetsInSample.withOffChainMetadata,
|
|
102
|
+
'Sufficient assets with on-chain metadata in sample': ({ withOnChainMetadata }) =>
|
|
103
|
+
withOnChainMetadata <= availableAssetsInSample.withOnChainMetadata
|
|
104
|
+
})
|
|
105
|
+
) {
|
|
106
|
+
fail(
|
|
107
|
+
`Insufficient assets in sample. Requested: ${JSON.stringify(totalAssetsToQuery)}, but have ${JSON.stringify(
|
|
108
|
+
availableAssetsInSample
|
|
109
|
+
)}`
|
|
110
|
+
);
|
|
10
111
|
}
|
|
11
112
|
};
|
|
12
113
|
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
'
|
|
18
|
-
'
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417175616d6172696e65',
|
|
24
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417368',
|
|
25
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727941756275726e',
|
|
26
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417572656c6961',
|
|
27
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417572656f6c696e',
|
|
28
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417765736f6d65',
|
|
29
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279417a756c',
|
|
30
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794265696765',
|
|
31
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279426572796c',
|
|
32
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279426c61636b',
|
|
33
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279426c7565',
|
|
34
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279426f6e65',
|
|
35
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279427269636b',
|
|
36
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727942726f776e',
|
|
37
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727942797a616e74696e65',
|
|
38
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794361646574',
|
|
39
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727943616d656c',
|
|
40
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794361707269',
|
|
41
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727943617264696e616c',
|
|
42
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436572756c65616e',
|
|
43
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727943686172747265757365',
|
|
44
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436865727279',
|
|
45
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727943696e6e616d6f6e',
|
|
46
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436c656d656e74696e65',
|
|
47
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436f616c',
|
|
48
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436f62616c74',
|
|
49
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436f66666565',
|
|
50
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279436f72616c',
|
|
51
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794379616e',
|
|
52
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727945626f6e79',
|
|
53
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279456d6572616c64',
|
|
54
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727946756368736961',
|
|
55
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279476f6c64',
|
|
56
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727947726179',
|
|
57
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279477265656e',
|
|
58
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727948617a656c',
|
|
59
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727948756d62726f6c',
|
|
60
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279496e6469676f',
|
|
61
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727949726973',
|
|
62
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794a616465',
|
|
63
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794a657474',
|
|
64
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794b656c6c79',
|
|
65
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794b68616b69',
|
|
66
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794c617661',
|
|
67
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794c6176656e646572',
|
|
68
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794c656d6f6e',
|
|
69
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794c696d65',
|
|
70
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794c757374',
|
|
71
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc2444558',
|
|
72
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174141504c',
|
|
73
|
-
'b93822810dbd56a5b5b815b1946da690312913da74c94e019e028af97065646572',
|
|
74
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174150504c45',
|
|
75
|
-
'd63b50fe629b69f1da4897aee9f381fe197c30c06bf35be4355360bd6d617279',
|
|
76
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15175445534c41',
|
|
77
|
-
'd3501d9531fcc25e3ca4b6429318c2cc374dbdbcf5e99c1c1e5da1ff444f4e545350414d',
|
|
78
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d61726f6f6e',
|
|
79
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d61757665',
|
|
80
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d656c616e6965',
|
|
81
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d656c6f6e',
|
|
82
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d696e74',
|
|
83
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d6f7261646f',
|
|
84
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d6f7373',
|
|
85
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d757374617264',
|
|
86
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794d7972746c65',
|
|
87
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794e617679',
|
|
88
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794f6c697665',
|
|
89
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794f6e7978',
|
|
90
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794f72616e6765',
|
|
91
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272794f7263686964',
|
|
92
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795065616368',
|
|
93
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727950656172',
|
|
94
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727950696e6b',
|
|
95
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727950697374616368696f',
|
|
96
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279506c6174696e756d',
|
|
97
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279507572706c65',
|
|
98
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795261636b6c6579',
|
|
99
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279526173706265727279',
|
|
100
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279526176656e',
|
|
101
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279526564',
|
|
102
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279526f7365',
|
|
103
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279526f7578',
|
|
104
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727952756279',
|
|
105
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279527573736574',
|
|
106
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795275737479',
|
|
107
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953616666726f6e',
|
|
108
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953616765',
|
|
109
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953616c6d6f6e',
|
|
110
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953616e64',
|
|
111
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795361707068697265',
|
|
112
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279536361726c657474',
|
|
113
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795369656e6e61',
|
|
114
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953696c766572',
|
|
115
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953696e6f706961',
|
|
116
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727953756e676c6f77',
|
|
117
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727954616e67656c6f',
|
|
118
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795465616c',
|
|
119
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279546f6d61746f',
|
|
120
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727954757271756f697365',
|
|
121
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727956616e696c6c61',
|
|
122
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f42657272795665726d696c696f6e',
|
|
123
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727956696f6c6574',
|
|
124
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f4265727279566972696469616e',
|
|
125
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727957696e65',
|
|
126
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727958616e616475',
|
|
127
|
-
'b863bc7369f46136ac1048adb2fa7dae3af944c3bbb2be2f216a8d4f426572727959656c6c6f77',
|
|
128
|
-
'41fa383bbfccd0378c6855326129fbef8e631a27d938dc238a2fc97c64697361736d',
|
|
129
|
-
'd0cec3ba7bc826892d18ee2c7acd14be050b04a7c15c0ec98647c56372617473',
|
|
130
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b151754575452',
|
|
131
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b151754574954544552',
|
|
132
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a04a756e6557617348657265',
|
|
133
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f727365',
|
|
134
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736531',
|
|
135
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653130',
|
|
136
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653131',
|
|
137
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653132',
|
|
138
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653133',
|
|
139
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653134',
|
|
140
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653135',
|
|
141
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653136',
|
|
142
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653137',
|
|
143
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653138',
|
|
144
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653139',
|
|
145
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736532',
|
|
146
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653230',
|
|
147
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653231',
|
|
148
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653232',
|
|
149
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653233',
|
|
150
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653234',
|
|
151
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653235',
|
|
152
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653236',
|
|
153
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653237',
|
|
154
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653238',
|
|
155
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653239',
|
|
156
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736533',
|
|
157
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653330',
|
|
158
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653331',
|
|
159
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653332',
|
|
160
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653333',
|
|
161
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653334',
|
|
162
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653335',
|
|
163
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653336',
|
|
164
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653337',
|
|
165
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653338',
|
|
166
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653339',
|
|
167
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736534',
|
|
168
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653430',
|
|
169
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653431',
|
|
170
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653432',
|
|
171
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653433',
|
|
172
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653434',
|
|
173
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653435',
|
|
174
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653436',
|
|
175
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653437',
|
|
176
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653438',
|
|
177
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653439',
|
|
178
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736535',
|
|
179
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f7273653530',
|
|
180
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736536',
|
|
181
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736537',
|
|
182
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736538',
|
|
183
|
-
'fc7e9a7f604c2cd6a169433fb2de86b183b7cd478f46785701ae23a0536561486f72736539',
|
|
184
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174d534654',
|
|
185
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174d4943524f534f4654',
|
|
186
|
-
'4940ad9597460adab9d36a30768675892943dc052da48519e7d392ae474d424c',
|
|
187
|
-
'b7f9c65e055d835c9529243dc90e3677d1af37af2a49178902a5d08062616e616e6173',
|
|
188
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc24c4f54544f',
|
|
189
|
-
'5d9d887de76a2c9d057b3e5d34d5411f7f8dc4d54f0c06e8ed2eb4a9494e4459',
|
|
190
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174353434f',
|
|
191
|
-
'7b355978567396d02639cc505620b345e1bbe2c76e53f47a7b6900fa73706f',
|
|
192
|
-
'ca6cace5d3c90cb5e019c0639245d023ba3417b82c6ea72e2f975288636174',
|
|
193
|
-
'ca6cace5d3c90cb5e019c0639245d023ba3417b82c6ea72e2f97528863617478',
|
|
194
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517434953434f',
|
|
195
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc24b495353',
|
|
196
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc2454c4f4e',
|
|
197
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc242454e',
|
|
198
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc244454649',
|
|
199
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174950484f4e45',
|
|
200
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b151749504144',
|
|
201
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517424954434f494e',
|
|
202
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517425443',
|
|
203
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174c5443',
|
|
204
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174c495445434f494e',
|
|
205
|
-
'a9f443a94bc98f7ed96944a0306ff6b526223519bc972e273e8e8ee7666e74',
|
|
206
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b151741554449',
|
|
207
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517424d57',
|
|
208
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174d45524345444553',
|
|
209
|
-
'bcc9c1a22a30cc1a355565bac683735f830c3fd7812fcd1aac53e3e6504c5552',
|
|
210
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174a454550',
|
|
211
|
-
'51a8b917114265855de3bf1c3c077a8d14123eb2a725a32a37e966bf4d4453',
|
|
212
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b151747524331',
|
|
213
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517475243',
|
|
214
|
-
'c97414a4aa9d8451ebb2c0e66f055d4748132ecd40f3c4a71df161d54144415048',
|
|
215
|
-
'56b1124f2405b0d33cae5ddb2e40fe86a4657af124899214691beddc6e6d74',
|
|
216
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc24c4f53544c414b4553',
|
|
217
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b15174e4654',
|
|
218
|
-
'12e65fa3585d80cba39dcf4f59363bb68b77f9d3c0784734427b1517414441',
|
|
219
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc2444f4745',
|
|
220
|
-
'7c14f8d5e4a52d7c6814f8783df2999bc0e50883099f72f9b3e1a720546f706f43726577',
|
|
221
|
-
'024113d85cbf633ffb4c436c786e868a1245c1398bc297302590a35f47524331',
|
|
222
|
-
'024113d85cbf633ffb4c436c786e868a1245c1398bc297302590a35f475243',
|
|
223
|
-
'0558efc19c2cab91c1fbe808ca9c26c61992b3a583187c9da4530392796f726f69',
|
|
224
|
-
'd8fb8de71d94caf74885dff2e5f3b8eaca95c67b37b6b650111bd7df474153',
|
|
225
|
-
'93ba69a0c19c3364156279f9e0bde261eec7d0184a2bbd0cc669e695686f736b696e736f6e',
|
|
226
|
-
'2919cb556e84b24f3878566780c50ac2cb6a7094f862281c19088bb3454e45524759',
|
|
227
|
-
'ba53bc5049cc226f7c8582faec8047bb70982d30539d11697957fb91636861726c6573',
|
|
228
|
-
'89414df16678a212636604cf4ba367bdacc2939821a6a849cb58cde64655454c',
|
|
229
|
-
'21c26b0c4d1cb37225374c96f38df70ecffd808bbd7f1aae23d8b3e37461696c73',
|
|
230
|
-
'9b0fa595d72beb53b70f649c51734819821ed5470cffcff1d07fbf2853414c5459636f696e',
|
|
231
|
-
'826033f14c75032b5cead9b73c507452377bf8603ac0cd2f74d5dfd8e7b485e58c85',
|
|
232
|
-
'74d3e78bb4988f3875cfee97667bf45c2e9074ad2aa321d7b4988d1f4144415048',
|
|
233
|
-
'ca079f39e33ca1b6ec7b4f4eedffa4f40d7d111f96bde855ba224dc2425443',
|
|
234
|
-
'2f1679cb4b7c9c92fcf70357358758d787e418508e0aa80eb8741a32424f484f4c',
|
|
235
|
-
'006144f3665c793920698e3874c60e0b6a9ac1ea3fb4da8bb3417a304a4f4253',
|
|
236
|
-
'5d871b8f74d71ec99f1fd3e5b27e58a6a472b9c73d47bca6e9d78b3f4a4f42',
|
|
237
|
-
'4a23f809ccedbd4cff4840e614a641e55d77c9bd2bd2792ad6d9ba8b41515541',
|
|
238
|
-
'55f526d5ad7a1e0bd50761a194cfecf2fccb1c35e372e7a45e06ad6057425443',
|
|
239
|
-
'a318cd3ed8585a56a6c9c649f0be0a7fd42bcbb29d162d98864eec1d6d656c',
|
|
240
|
-
'd41180e977877c6ea12aa84e3371d52d49a7f9d024fa3e74d43375d557455448',
|
|
241
|
-
'1c78f853729173df5933b9fee1eefccce01d52db1adadffcbea89e154b495749656767',
|
|
242
|
-
'eb970e28464be9486a779759828d79fb7a7154782b93e3f5e26875a94d454d45',
|
|
243
|
-
'ca8c8101bc688da236b2f7bfb73bbbd76c98188e57edd4e089a03fda455448',
|
|
244
|
-
'eccf56b527ed77b562259bfd1cceb3b9692ee2b1765d98fc5ddecb4a4869416461596f757244616453617973486946726f6d32303231',
|
|
245
|
-
'dfbe6e3399373ff93183e27a0a22ec5d735fbb1668a334ce8714776b4d55474759',
|
|
246
|
-
'43d156cc9ad1688e823edfd08e9e4ea9726c5ef9847554320a19e4e4457468657265756d',
|
|
247
|
-
'be3acb2be43759ed6291607f24dc7d5ecb583fc1023e9817ff6aa0054772616365',
|
|
248
|
-
'9b9ddbada8dc9cd08509ed660d5b3a65da8f36178def7ced99fa033346726565646f6d546f4e6176616c6e79436f696e',
|
|
249
|
-
'26958193370c7c03056e2502325a9a824c62d67d7723aa15c24536a16272696f',
|
|
250
|
-
'eca49efb20b7240521e97c1260d5d2738ab8e7ce2ab821ef819c6ce76a617a7a',
|
|
251
|
-
'0fb431bf5dd0ff9fdfcd0a62d51ba3a3324cbd86a6c4521feaecad6b6e65766572676f6e6e6167697665796f757570',
|
|
252
|
-
'0fb431bf5dd0ff9fdfcd0a62d51ba3a3324cbd86a6c4521feaecad6b6e65766572676f6e6e6172756e61726f756e64616e64646573657274796f75',
|
|
253
|
-
'0fb431bf5dd0ff9fdfcd0a62d51ba3a3324cbd86a6c4521feaecad6b6e65766572676f6e6e616c6574796f75646f776e',
|
|
254
|
-
'30db5406094be9701dd3d279f47fad57800ef2e48a2e0b68f13519ce6865616473',
|
|
255
|
-
'e67dd675e3eb7378a855b3d98bd49854cd2731902fd6e4e139974c744a415a5a',
|
|
256
|
-
'b0f4ee2d85783fcafe5d802f329c61c342f5c535a5c556427e77d925435350636f696e',
|
|
257
|
-
'26958193370c7c03056e2502325a9a824c62d67d7723aa15c24536a174657374',
|
|
258
|
-
'a488229a17b1df3f54e8aaf40e1267d4b6eb8bcc7743c6921bb1dca0706f74',
|
|
259
|
-
'b6af2ce69465db647f11799e0b9c8a9dd1a97705a72f657de01e4d1677796b6f70',
|
|
260
|
-
'c34b369793a60d233aed95cd1659b692e0275a8201de776d8cf8ab9d4c5353',
|
|
261
|
-
'd8a96e2451d5a5a367fde8badf5389284afec87d614f5dba4080316a53414e44',
|
|
262
|
-
'd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73',
|
|
263
|
-
'677d3bbe3e01eeab498cd8786f7d261d92bd6ecea12109a332e86374416d65726963616e4d616e61746565',
|
|
264
|
-
'677d3bbe3e01eeab498cd8786f7d261d92bd6ecea12109a332e86374417369616e456c657068616e74'
|
|
265
|
-
];
|
|
114
|
+
const getAssetsSlice = (assets, iteration, perRequest) => {
|
|
115
|
+
if (perRequest === 0) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
// We've already verified we have enough samples, but the actual iteration count
|
|
119
|
+
// is indirectly controlled with DURATION and RATE, so we need to ensure we don't go out of bounds.
|
|
120
|
+
const start = (perRequest * iteration) % assets.length;
|
|
121
|
+
const end = start + perRequest;
|
|
122
|
+
return assets.slice(start, end);
|
|
123
|
+
};
|
|
266
124
|
|
|
267
125
|
export default function () {
|
|
126
|
+
const [assetsNoMetadata, assetsWithOffChainMetadata, assetsWithOnChainMetadata] = assetsSample;
|
|
127
|
+
const iteration = exec.scenario.iterationInTest;
|
|
128
|
+
const assetIds = [
|
|
129
|
+
...getAssetsSlice(assetsNoMetadata, iteration, ASSETS_NO_METADATA_PER_REQUEST),
|
|
130
|
+
...getAssetsSlice(assetsWithOffChainMetadata, iteration, ASSETS_OFF_CHAIN_METADATA_PER_REQUEST),
|
|
131
|
+
...getAssetsSlice(assetsWithOnChainMetadata, iteration, ASSETS_ON_CHAIN_METADATA_PER_REQUEST)
|
|
132
|
+
];
|
|
133
|
+
|
|
134
|
+
// It could have less than requested if we are at the end of the sample
|
|
135
|
+
if (!check(assetIds, { 'Request has at least 1 asset': (ids) => ids.length > 0 })) {
|
|
136
|
+
fail('Test error: should request at least 1 asset. This might be a test bug or a configuration issue.');
|
|
137
|
+
}
|
|
138
|
+
|
|
268
139
|
const body = JSON.stringify({
|
|
269
140
|
assetIds,
|
|
270
141
|
extraData: { nftMetadata: true, tokenMetadata: true }
|
|
271
142
|
});
|
|
272
|
-
http.post(`${PROVIDER_SERVER_URL}/asset/get-assets`, body, {
|
|
143
|
+
const response = http.post(`${PROVIDER_SERVER_URL}/v${apiVersion.assetInfo}/asset/get-assets`, body, {
|
|
273
144
|
headers: {
|
|
274
145
|
'content-type': 'application/json'
|
|
275
146
|
},
|
|
276
|
-
timeout: '
|
|
147
|
+
timeout: '1m'
|
|
277
148
|
});
|
|
149
|
+
|
|
150
|
+
if (
|
|
151
|
+
response.status === 200 && // OK responses should have the same number of assets as requested
|
|
152
|
+
!check(
|
|
153
|
+
response.body,
|
|
154
|
+
{
|
|
155
|
+
'response body contains same number of assets as requested': (assetsInResponse) =>
|
|
156
|
+
JSON.parse(assetsInResponse).length === assetIds.length
|
|
157
|
+
},
|
|
158
|
+
{ assetsCountInResponse: 'assetsCountInResponse' }
|
|
159
|
+
)
|
|
160
|
+
) {
|
|
161
|
+
console.error(`Expected ${assetIds.length} assets in response, but got ${response.body.length}`);
|
|
162
|
+
console.error(`Requested assets: ${assetIds}`);
|
|
163
|
+
console.error(`Response: ${response.body}`);
|
|
164
|
+
}
|
|
278
165
|
}
|