Skip to content

Instantly share code, notes, and snippets.

@spiermar
Created November 15, 2013 23:46
Show Gist options
  • Save spiermar/7493741 to your computer and use it in GitHub Desktop.
Save spiermar/7493741 to your computer and use it in GitHub Desktop.
package io.overloaded.jmeter;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.log.Logger;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
import org.apache.http.HttpEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
/**
* @author mspier
*/
public class HttpRequest extends AbstractJavaSamplerClient {
DefaultHttpClient httpclient = null;
@Override
public void setupTest(JavaSamplerContext context) {
httpclient = new DefaultHttpClient();
}
@Override
public void teardownTest(JavaSamplerContext context) {
httpclient.getConnectionManager().shutdown();
}
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("server", "");
params.addArgument("port", "");
params.addArgument("path", "");
return params;
}
@Override
public SampleResult runTest(JavaSamplerContext context) {
SampleResult result = new SampleResult();
String server = context.getParameter("server");
String port = context.getParameter("port");
String port = context.getParameter("path");
HttpGet httpget = null;
try {
httpget = new HttpGet("http://" + server + ":" + port + path);
httpget.addHeader("Accept-Encoding", "gzip");
result.sampleStart();
HttpResponse response = httpclient.execute(httpget);
result.setResponseCode(Integer.toString(response.getStatusLine().getStatusCode()));
HttpEntity entity = response.getEntity();
if (entity != null) {
result.setBodySize(Math.round(entity.getContentLength()));
EntityUtils.consume(entity);
if ((response.getStatusLine().getStatusCode() >= 200) && (response.getStatusLine().getStatusCode() < 300)) {
result.setSuccessful(true);
} else {
result.setSuccessful(false);
}
} else {
result.setSuccessful(false);
}
} catch (Exception e) {
result.setSuccessful(false);
getLogger().error(e.toString());
} finally {
result.currentTimeInMillis();
result.sampleEnd();
httpget.releaseConnection();
}
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment