从 Jmeter 中的 JSR223 采样器访问 HttpServletRequest 和 Response
Accessing HttpServletRequest and Response from JSR223 sampler within Jmeter
我正在通过以下方法使用自定义 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 采样器,用户在其中登录并创建一个 cookie。我的问题是如何将请求和响应传递给
new SdkClass().retrieveUser(request,response);
?
请求应该包含在上一步中创建的 cookie
您可以使用以下代码获取之前的请求和响应详细信息
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 类:
- HTTPSamplerProxy
- CookieManager
- HTTPSampleResult
ctx
是 shorthand 到 JMeterContext
确保将 HTTP Cookie Manager 添加到您的测试计划中,否则您将在尝试通过 getCookieManager()
方法访问它时得到 null
。
我正在通过以下方法使用自定义 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 采样器,用户在其中登录并创建一个 cookie。我的问题是如何将请求和响应传递给
new SdkClass().retrieveUser(request,response);
?
请求应该包含在上一步中创建的 cookie
您可以使用以下代码获取之前的请求和响应详细信息
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 类:
- HTTPSamplerProxy
- CookieManager
- HTTPSampleResult
ctx
是 shorthand 到 JMeterContext
确保将 HTTP Cookie Manager 添加到您的测试计划中,否则您将在尝试通过 getCookieManager()
方法访问它时得到 null
。