mirror of https://github.com/Budibase/budibase.git
3 changed files with 101 additions and 18 deletions
@ -0,0 +1,83 @@ |
|||||
|
const fetch = require("node-fetch") |
||||
|
const { getProdAppID } = require("@budibase/backend-core/db") |
||||
|
|
||||
|
const USER_LOAD_NUMBER = 10000 |
||||
|
const BATCH_SIZE = 25 |
||||
|
const SERVER_URL = "http://localhost:4001" |
||||
|
const PASSWORD = "test" |
||||
|
|
||||
|
const APP_ID = process.argv[2] |
||||
|
const API_KEY = process.argv[3] |
||||
|
|
||||
|
const words = [ |
||||
|
"test", |
||||
|
"testing", |
||||
|
"budi", |
||||
|
"mail", |
||||
|
"age", |
||||
|
"risk", |
||||
|
"load", |
||||
|
"uno", |
||||
|
"arm", |
||||
|
"leg", |
||||
|
"pen", |
||||
|
"glass", |
||||
|
"box", |
||||
|
"chicken", |
||||
|
"bottle", |
||||
|
] |
||||
|
|
||||
|
if (!APP_ID) { |
||||
|
console.error("Must supply app ID as first CLI option!") |
||||
|
process.exit(-1) |
||||
|
} |
||||
|
if (!API_KEY) { |
||||
|
console.error("Must supply API key as second CLI option!") |
||||
|
process.exit(-1) |
||||
|
} |
||||
|
|
||||
|
const WORD_1 = words[Math.floor(Math.random() * words.length)] |
||||
|
const WORD_2 = words[Math.floor(Math.random() * words.length)] |
||||
|
|
||||
|
function generateUser(count) { |
||||
|
return { |
||||
|
password: PASSWORD, |
||||
|
email: `${WORD_1}${count}@${WORD_2}.com`, |
||||
|
roles: { |
||||
|
[getProdAppID(APP_ID)]: "BASIC", |
||||
|
}, |
||||
|
status: "active", |
||||
|
forceResetPassword: false, |
||||
|
firstName: "John", |
||||
|
lastName: "Smith", |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
async function run() { |
||||
|
for (let i = 0; i < USER_LOAD_NUMBER; i += BATCH_SIZE) { |
||||
|
let promises = [] |
||||
|
for (let j = 0; j < BATCH_SIZE; j++) { |
||||
|
promises.push( |
||||
|
fetch(`${SERVER_URL}/api/public/v1/users`, { |
||||
|
method: "POST", |
||||
|
body: JSON.stringify(generateUser(i + j)), |
||||
|
headers: { |
||||
|
"x-budibase-api-key": API_KEY, |
||||
|
"Content-Type": "application/json", |
||||
|
}, |
||||
|
}) |
||||
|
) |
||||
|
} |
||||
|
await Promise.all(promises) |
||||
|
console.log(`${i + BATCH_SIZE} users have been created.`) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
run() |
||||
|
.then(() => { |
||||
|
console.log(`Generated ${USER_LOAD_NUMBER} users!`) |
||||
|
}) |
||||
|
.catch(err => { |
||||
|
console.error("Failed for reason: ", err) |
||||
|
process.exit(-1) |
||||
|
}) |
||||
Loading…
Reference in new issue