forked from tsai/budibase
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