Fix benchmark
This commit is contained in:
parent
6794d1005f
commit
47099aba46
1 changed files with 40 additions and 61 deletions
|
@ -50,126 +50,102 @@ async function run () {
|
||||||
title: 'AP - account peertube',
|
title: 'AP - account peertube',
|
||||||
path: '/accounts/peertube',
|
path: '/accounts/peertube',
|
||||||
headers: buildAPHeader(),
|
headers: buildAPHeader(),
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"type":')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"type":')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'AP - video',
|
title: 'AP - video',
|
||||||
path: '/videos/watch/' + video.uuid,
|
path: '/videos/watch/' + video.uuid,
|
||||||
headers: buildAPHeader(),
|
headers: buildAPHeader(),
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"type":"Video"')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"type":"Video"')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Misc - webfinger peertube',
|
title: 'Misc - webfinger peertube',
|
||||||
path: '/.well-known/webfinger?resource=acct:peertube@' + server.host,
|
path: '/.well-known/webfinger?resource=acct:peertube@' + server.host,
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"subject":')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"subject":')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - unread notifications',
|
title: 'API - unread notifications',
|
||||||
path: '/api/v1/users/me/notifications?start=0&count=0&unread=true',
|
path: '/api/v1/users/me/notifications?start=0&count=0&unread=true',
|
||||||
headers: buildAuthorizationHeader(),
|
headers: buildAuthorizationHeader(),
|
||||||
expecter: (_client, statusCode) => {
|
expecter: (_body, status) => {
|
||||||
return statusCode === 200
|
return status === 200
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - me',
|
title: 'API - me',
|
||||||
path: '/api/v1/users/me',
|
path: '/api/v1/users/me',
|
||||||
headers: buildAuthorizationHeader(),
|
headers: buildAuthorizationHeader(),
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"id":')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"id":')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - videos list',
|
title: 'API - videos list',
|
||||||
path: '/api/v1/videos',
|
path: '/api/v1/videos',
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"total":10')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"total":10')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - video get',
|
title: 'API - video get',
|
||||||
path: '/api/v1/videos/' + video.uuid,
|
path: '/api/v1/videos/' + video.uuid,
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"id":')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"id":')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - video captions',
|
title: 'API - video captions',
|
||||||
path: '/api/v1/videos/' + video.uuid + '/captions',
|
path: '/api/v1/videos/' + video.uuid + '/captions',
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"total":4')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"total":4')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - video threads',
|
title: 'API - video threads',
|
||||||
path: '/api/v1/videos/' + video.uuid + '/comment-threads',
|
path: '/api/v1/videos/' + video.uuid + '/comment-threads',
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"total":10')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"total":10')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - video replies',
|
title: 'API - video replies',
|
||||||
path: '/api/v1/videos/' + video.uuid + '/comment-threads/' + threadId,
|
path: '/api/v1/videos/' + video.uuid + '/comment-threads/' + threadId,
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"comment":{')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"comment":{')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'HTML - video watch',
|
title: 'HTML - video watch',
|
||||||
path: '/videos/watch/' + video.uuid,
|
path: '/videos/watch/' + video.uuid,
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.includes('<title>my super')
|
||||||
|
|
||||||
return statusCode === 200 && body.includes('<title>my super')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'HTML - video embed',
|
title: 'HTML - video embed',
|
||||||
path: '/videos/embed/' + video.uuid,
|
path: '/videos/embed/' + video.uuid,
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.includes('embed')
|
||||||
|
|
||||||
return statusCode === 200 && body.includes('embed')
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'HTML - homepage',
|
title: 'HTML - homepage',
|
||||||
path: '/',
|
path: '/',
|
||||||
expecter: (_client, statusCode) => {
|
expecter: (_body, status) => {
|
||||||
return statusCode === 200
|
return status === 200
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'API - config',
|
title: 'API - config',
|
||||||
path: '/api/v1/config',
|
path: '/api/v1/config',
|
||||||
expecter: (client, statusCode) => {
|
expecter: (body, status) => {
|
||||||
const body = client.resData[0].body
|
return status === 200 && body.startsWith('{"instance":')
|
||||||
|
|
||||||
return statusCode === 200 && body.startsWith('{"instance":')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -197,24 +173,27 @@ function runBenchmark (options: {
|
||||||
const { path, expecter, headers } = options
|
const { path, expecter, headers } = options
|
||||||
|
|
||||||
return new Promise((res, rej) => {
|
return new Promise((res, rej) => {
|
||||||
const instance = autocannon({
|
autocannon({
|
||||||
url: server.url + path,
|
url: server.url + path,
|
||||||
connections: 20,
|
connections: 20,
|
||||||
headers,
|
headers,
|
||||||
pipelining: 1,
|
pipelining: 1,
|
||||||
duration: 10
|
duration: 10,
|
||||||
|
requests: [
|
||||||
|
{
|
||||||
|
onResponse: (status, body) => {
|
||||||
|
if (expecter(body, status) !== true) {
|
||||||
|
console.error('Expected result failed.', { body, status })
|
||||||
|
throw new Error('Invalid expectation')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}, (err, result) => {
|
}, (err, result) => {
|
||||||
if (err) return rej(err)
|
if (err) return rej(err)
|
||||||
|
|
||||||
return res(result)
|
return res(result)
|
||||||
})
|
})
|
||||||
|
|
||||||
instance.on('response', (client, statusCode) => {
|
|
||||||
if (expecter(client, statusCode) !== true) {
|
|
||||||
console.error('Expected result failed.', { data: client.resData })
|
|
||||||
process.exit(-1)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue