Настройте JMeter для проверки прокси-службы

Я разработал прокси-сервис с использованием языка балерины, ссылаясь на следующие [1] и [2]. Работает отлично. Теперь я хочу запустить нагрузочный тест через JMeter. То есть JMeter должен быть настроен таким образом, чтобы HTTP-запрос к конкретному ресурсу передавался через прокси-службу (в 1, упомянутом выше, это клиентская программа, и теперь я хочу отправить запрос через JMeter). Как это сделать? Как настроить JMeter?

5 ответов

Решение

Конфигурацию прокси-сервера для JMeter можно найти на вкладке "Дополнительно" в образце HTTP-запроса, где можно указать хост, порт и учетные данные.

Если у вас> 1 сэмплер HTTP-запросов, вы можете установить прокси-сервер для всех них в одном месте, используя элемент конфигурации HTTP-запросов по умолчанию, таким образом вы можете настроить конфигурацию по умолчанию для всех сэмплеров HTTP-запросов в области HTTP-запросов по умолчанию, чтобы конфигурация применялась к все сэмплеры, где соответствующие поля пусты.

Вместо того, чтобы иметь клиента с основной функцией, у вас может быть сервис для этого. Например,

import ballerina/http;
import ballerina/io;

endpoint http:Listener passthroughEP {
    port:8243
};

endpoint http:Client clientEP {
    url:"http://localhost:9218",
    proxy: {
        host:"localhost",
        port:9219
    }
};

@http:ServiceConfig {basePath:"/services/EchoProxy"}
service<http:Service> passthroughService bind passthroughEP {
    @http:ResourceConfig {
        methods:["POST"],
        path:"/"
    }
    passthrough(endpoint outboundEP, http:Request clientRequest) {
        var resp = clientEP -> forward("/proxy/server", clientRequest);
        match resp {
           error err => io:println(err.message);
           http:Response response => {
              match (response.getTextPayload()) {
                 error payloadError => io:println(payloadError.message);
                 string res => {
                    io:println(res);
                    _ = outboundEP->respond(res);   
                 }    
              }
           }
        }
    }
}

Здесь у вас есть конечная точка слушателя, которая связывается со службой передачи. Вы можете вызвать этот сквозной сервис из Jmeter (укажите URL этого сервиса в Jmeter). Как только служба вызвана, она направит запрос на прокси-сервер.

Кроме того, вы можете запустить proxy_server.bal, который вы называете 2, и настроить JMeter для отправки запросов через Proxy Server следующим образом.

jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost

Пожалуйста, обратитесь к этому для получения дополнительной информации о конфигурации JMeter.

Превратите свою основную программу в службу HTTP. Для достижения поведения прокси используйте forward действие клиента для перенаправления входящего запроса в бэкэнд-сервис. Затем вы можете выполнить нагрузочный тест, вызвав ресурс через запрос JMeter.

Ответы, предоставленные как ldclakmal и Dmitri T, подразумевают то же самое и решили мою проблему.

Другие вопросы по тегам