yandex-tank-ammo-generator
Version:
Cartridge generation for Yandex tank
47 lines (46 loc) • 1.89 kB
JavaScript
;
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);
}
})();