配置JMeter测试代理服务

配置JMeter测试代理服务

我参考以下内容,使用芭蕾舞者语言开发了一个代理服务[1][2]。它运行得很好。现在我想通过 JMeter 运行负载测试。也就是说,JMeter 应该配置为这样一种方式,即对特定资源的 http 请求应该通过代理服务传递(在1上面说了是客户端程序,现在想通过JMeter发送请求,怎么做?如何配置JMeter?

答案1

您可以在“高级”选项卡上找到 JMeter 的代理配置HTTP 请求您可以在采样器中指定主机,端口和凭据

HTTP 请求的 JMeter 代理服务器

如果你有> 1个HTTP请求采样器,你可以使用以下方法在一个地方为它们设置代理HTTP 请求默认值配置元素,这样你就可以设置默认HTTP 请求默认值中所有 HTTP 请求采样器的配置范围因此该配置将应用于所有相关字段为空的采样器。

HTTP 请求的 JMeter 代理

答案2

你可以使用一个服务来实现主要功能,而不是使用客户端。例如,

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 调用此直通服务(在 Jmeter 中提供此服务的 URL)。一旦调用该服务,它将把请求转发到代理服务器。

答案3

此外,您还可以运行代理服务器.bal你所指的是2并配置 JMeter 以便通过代理服务器发送请求,如下所示。

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

请参考有关 JMeter 配置的更多信息。

答案4

双方提供的答案伊德克拉克马尔德米特里·T暗示同样的事情并解决了我的问题。

相关内容