UNPKG

yandex-tank-ammo-generator

Version:

Cartridge generation for Yandex tank

47 lines (46 loc) 1.89 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const program = require("commander"); const ammo_1 = require("./lib/AmmoGenerator/ammo"); const GetElasticDataShema_1 = require("./lib/GetDataOfElastic/GetElasticDataShema"); const GetDataOfElastic_1 = require("./lib/GetDataOfElastic"); program .option('-u,--user-agent <agent>', 'UserAgent') .option('-c,--config <config>', 'Config file') .option('-o <out>', 'Out filename') .parse(process.argv); (async () => { try { if (program.config) { const file = JSON.parse(fs.readFileSync(program.config, { encoding: 'utf8', })); const validateRes = GetElasticDataShema_1.default.validate(file); if (validateRes.error) { console.error(validateRes.error); process.exit(1); } const res = await GetDataOfElastic_1.default(file); let agent = 'Yandex-Tank'; if (program.userAgent) { agent = program.userAgent; } let tmp = ''; for (const item of res.data) { tmp += ammo_1.createAmmo(item.method.toUpperCase().trim(), file.host, item.path, item.tag, agent, JSON.stringify(item.body), item.headers || {}); } console.log(`Результаты сохранены в ${program.O || res.name}`); console.log(`Колличество запросов === ${res.data.length}`); fs.writeFileSync(`${process.env.PWD || './'}/${program.O || res.name}.txt`, tmp); process.exit(0); } program.help(); console.log('example => tank-gen-ammo -c ./config.json -o qq -u YandexTankDev\n'); } catch (e) { console.error(e); process.exit(1); } })();