Как настроить Jmeter в качестве сервера, прослушать http GET и отправить следующий запрос, если GET получен - PullRequest
0 голосов
/ 17 октября 2019

Я использую Jmeter для моделирования части клиета и работаю хорошо, я отправляю запрос, получаю ответы и утверждаю их и т. Д., Но сейчас я нахожусь в другой ситуации, которую пытаюсь решить с помощью Jmeter (не уверен, что то же самое можетрешается или не используется Jmeter)

После некоторого отсутствия запросов / ответов http соединение tcp закрывается с сервером приложений, а затем при каком-то триггере приложения отправляет запрос http get на jmeter и ожидает, что jmeterотправьте 200 ok

после вышеупомянутой транзакции http get и 200 ok, мы хотим отправить еще пару http запросов от jmeter

. Не знаю, как настроить JMeter в качестве сервера, чтобы он прослушивалсяданный порт и отправляет определенный сэмплер при получении get

Я не имею ни малейшего представления, чтобы решить эту проблему, но я искал решения и вижу, что мы можем запустить JMeter как сервер по serversocket в сэмплере JSR223, как показано нижено не уверен, как запустить его в течение определенного времени или навсегда и отметить тест dодин, если запрос на соединение не получен

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server
{

    private static Socket socket;

    public static void main(String[] args)
    {
        try
        {

            int port = 25000;
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("Server Started and listening to the port 25000");

            //Server is running always. This is done using this while(true) loop
            while(true)
            {
                //Reading the message from the client
                socket = serverSocket.accept();
                InputStream is = socket.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String number = br.readLine();
                System.out.println("Message received from client is "+number);

                //Multiplying the number by 2 and forming the return message
                String returnMessage;
                try
                {
                    int numberInIntFormat = Integer.parseInt(number);
                    int returnValue = numberInIntFormat*2;
                    returnMessage = String.valueOf(returnValue) + "\n";
                }
                catch(NumberFormatException e)
                {
                    //Input was not a number. Sending proper message back to client.
                    returnMessage = "Please send a proper number\n";
                }

                //Sending the response back to the client.
                OutputStream os = socket.getOutputStream();
                OutputStreamWriter osw = new OutputStreamWriter(os);
                BufferedWriter bw = new BufferedWriter(osw);
                bw.write(returnMessage);
                System.out.println("Message sent to the client is "+returnMessage);
                bw.flush();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                socket.close();
            }
            catch(Exception e){}
        }
    }
}
...