]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Improve benchmark script CLI options
authorChocobozzz <me@florianbigard.com>
Mon, 28 Feb 2022 14:19:44 +0000 (15:19 +0100)
committerChocobozzz <me@florianbigard.com>
Mon, 28 Feb 2022 14:19:44 +0000 (15:19 +0100)
.github/workflows/benchmark.yml
scripts/benchmark.ts
support/doc/development/monitoring.md

index 8811f0f458d61aa570ccca98de94e4a5b8e38348..eaad5db6401a2f48c807c77fe3c73594c4f4c5c7 100644 (file)
@@ -71,7 +71,7 @@ jobs:
 
       - name: Run benchmark
         run: |
-          node dist/scripts/benchmark.js benchmark.json
+          node dist/scripts/benchmark.js -o benchmark.json
 
       - name: Display result
         run: |
index 3c3c666a18e4a1cf77408257b5e21ff90eb456da..c9486eb3714a376b4cc1e932790a0bf7e1b28576 100644 (file)
@@ -1,4 +1,5 @@
 import autocannon, { printResult } from 'autocannon'
+import { program } from 'commander'
 import { writeJson } from 'fs-extra'
 import { Video, VideoPrivacy } from '@shared/models'
 import { createSingleServer, killallServers, PeerTubeServer, setAccessTokensToServers } from '@shared/server-commands'
@@ -7,7 +8,15 @@ let server: PeerTubeServer
 let video: Video
 let threadId: number
 
-const outfile = process.argv[2]
+program
+  .option('-o, --outfile [outfile]', 'Outfile')
+  .option('--grep [string]', 'Filter tests you want to execute')
+  .description('Run API REST benchmark')
+  .parse(process.argv)
+
+const options = program.opts()
+
+const outfile = options.outfile
 
 run()
   .catch(err => console.error(err))
@@ -135,7 +144,11 @@ async function run () {
         return status === 200 && body.startsWith('{"client":')
       }
     }
-  ]
+  ].filter(t => {
+    if (!options.grep) return true
+
+    return t.title.includes(options.grep)
+  })
 
   const finalResult: any[] = []
 
index 8b637e0791ca0c86b8147dde8124fb3dfc34c968..9dcc2d563cb5b08ff9ef12ab4b9fc25dccaeee3b 100644 (file)
@@ -13,5 +13,11 @@ $ npm run build -- --analyze-bundle && npm run client-report
 To benchmark the REST API and save result in `benchmark.json`:
 
 ```
-$ node dist/scripts/benchmark.js benchmark.json
+$ node dist/scripts/benchmark.js -o benchmark.json
+```
+
+You can also grep on a specific test:
+
+```
+$ node dist/scripts/benchmark.js --grep homepage
 ```