Я разработал прокси-сервис на языке балерины, сославшись на следующие [1] и [2]. Работает отлично. Теперь я хочу запустить нагрузочный тест через JMeter. То есть JMeter должен быть настроен таким образом, чтобы HTTP-запрос к конкретному ресурсу проходил через прокси-службу (в 1 упомянутое выше, это клиентская программа, и теперь я хочу отправить запрос через JMeter). Как это сделать? Как настроить JMeter?
Вместо того, чтобы иметь клиента с основной функцией, вы можете иметь для этого услугу. Например,
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 для отправки запросов через прокси-сервер следующим образом.
jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost
Пожалуйста, обратитесь этот для получения дополнительной информации о конфигурации JMeter.
Вы можете найти конфигурацию прокси для JMeter на вкладке «Дополнительно» HTTP-запрос сэмплер, где вы можете указать хост, порт и учетные данные
Если у вас> 1 пробоотборник HTTP-запросов, вы можете установить прокси для всех в одном месте, используя Параметры HTTP-запроса по умолчанию элемент конфигурации, таким образом вы можете настроить дефолт конфигурация для всех сэмплеров HTTP-запросов в HTTP-запросах по умолчанию объем поэтому конфигурация будет применена ко всем семплерам, где соответствующие поля пусты.
Сначала превратите свою основную программу в службу HTTP. Чтобы добиться поведения прокси, используйте forward
действие клиента для перенаправления входящего запроса в серверную службу. Затем вы можете выполнить нагрузочный тест, вызвав ресурс через Запрос JMeter.