TCP-клиент Rest API на основе использования узла js - PullRequest
0 голосов
/ 10 апреля 2019

Я пытался создать TCP-клиент с оставшимся API, используя nodejs, а также использовал сетевой модуль для установления TCP-соединения для отправки / получения данных. Основная идея состоит в том, чтобы использовать этот restAPI из браузера для загрузки тестовых TCP-соединений.

Здесь, в моем случае, при нагрузочном тестировании TCP нужно выполнить 2 шага. 1) отправить первоначальный TCP-запрос, который имеет токен для аутентификации. 2) затем отправьте другой TCP-запрос для отправки некоторых данных.

Проблема возникает, когда я пытаюсь отправить второй запрос TCP после аутентификации. Получение ответа как недопустимого сеанса.

Пожалуйста, предложите, если я могу отправить запрос TCP для аутентификации и использования того же сеанса / соединения при выполнении последующих запросов.

Я новичок в узле JS. Приношу свои извинения, если я не предоставил достаточно подробностей или сделал что-то недействительное.

Изначально я использовал приложение Packet Sender и включил в нем опцию постоянного соединения TCP. Это работало хорошо, как и ожидалось, но это для одного пользователя и не может использовать этот инструмент для нагрузочного тестирования. Здесь, в этом инструменте с включенным постоянным TCP, я вижу, что локальный порт исправлен и не меняется при отправке нескольких запросов, но с помощью кода js моего узла я вижу, что локальный порт меняется при каждом новом запросе.

Я также использовал TCP Sampler в Jmeter с возможностью повторного использования соединения, но не работает, когда я отправляю второй запрос после аутентификации.

var Net = require('net');
var express = require("express");
var bodyParser = require('body-parser');
var app = express();

app.use(bodyParser.json());

app.post('/api/push', function (req, res) {

var reqBody = req.body.reqBody;

var req = JSON.stringify(reqBody);

const client = new Net.Socket({
        allowHalfOpen: true
    });

client.connect({
    port: req.body.port,
    host: req.body.host
}, function () {

    client.write(req);

});

client.on('data', function (chunk) {

    res.write(chunk.toString());

    //Tried to use client connection information, but didnt worked not sure if i missed something.
    console.log(JSON.stringify(client));

    // Tried commenting below client.end but no luck.
    client.end();

});

client.on('end', function () {
    res.end();

});

client.on('error', function (err) {

    console.log("Error: " + err.message);
    res.write(err.message);
    client.end();

});

});

app.listen(1234, () => {
    console.log("Server running on port 1234");
});

1) отправьте restAPI с хоста / порта TCP-сервера и запросите тело для аутентификации. 2) отправьте другой restAPI для использования того же TCP-соединения и отправьте данные. но это не удалось просто

1 Ответ

0 голосов
/ 10 апреля 2019

Проверьте поведение, получите сведения о файлах cookie и сохраните их в диспетчере файлов cookie HTTP, чтобы повторно использовать тот же сеанс для второго запроса.Просто добавление http cookie manager также может работать.Пожалуйста, проверьте,

...