1

我正在使用具有以下方法的自定义 SDK:

public Optional<User> retrieveUser(HttpServletRequest request, HttpServletResponse response)

在 jmeter 中,我使用 JSR223 采样器来访问此方法:

all the imports here
.
Optional<User> userProfile = new SdkClass().retrieveUser(request,response);

其中请求和响应是 HttpServletRequest 和 HttpServletResponse

在 JSR223 之前的步骤中,我有一个 HTTPRequest Sampler,用户在其中登录并创建一个 cookie。我的问题是我如何将请求和响应传递给

new SdkClass().retrieveUser(request,response);?

请求应该具有在上一步中创建的 cookie

4

1 回答 1

2

您可以使用以下代码获取先前的请求和响应详细信息

import org.apache.jmeter.protocol.http.sampler.HTTPSampleResult;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;

HTTPSamplerProxy previousSampler = ctx.getPreviousSampler();
CookieManager cookieManager = previousSampler.getCookieManager();
HTTPSampleResult previousResult = (HTTPSampleResult)ctx.getPreviousResult();

请参阅上述类的 JavaDoc:

确保将HTTP Cookie 管理器添加到您的测试计划中,否则您将null尝试通过getCookieManager()方法访问它。

于 2015-10-08T15:30:22.967 回答