use of org.apache.jmeter.protocol.mongodb.mongo.MongoDB in project jmeter by apache.
the class MongoSourceElement method testStarted.
@Override
public void testStarted() {
if (log.isDebugEnabled()) {
log.debug(getTitle() + " testStarted");
}
MongoClientOptions.Builder builder = MongoClientOptions.builder().autoConnectRetry(getAutoConnectRetry()).connectTimeout(getConnectTimeout()).connectionsPerHost(getConnectionsPerHost()).maxAutoConnectRetryTime(getMaxAutoConnectRetryTime()).maxWaitTime(getMaxWaitTime()).socketKeepAlive(getSocketKeepAlive()).socketTimeout(getSocketTimeout()).threadsAllowedToBlockForConnectionMultiplier(getThreadsAllowedToBlockForConnectionMultiplier());
if (getSafe()) {
builder.writeConcern(WriteConcern.SAFE);
} else {
builder.writeConcern(new WriteConcern(getWriteOperationNumberOfServers(), getWriteOperationTimeout(), getFsync(), getWaitForJournaling(), getContinueOnInsertError()));
}
MongoClientOptions mongoOptions = builder.build();
if (log.isDebugEnabled()) {
log.debug("options : " + mongoOptions.toString());
}
if (getThreadContext().getVariables().getObject(getSource()) != null) {
if (log.isWarnEnabled()) {
log.warn(getSource() + " has already been defined.");
}
} else {
if (log.isDebugEnabled()) {
log.debug(getSource() + " is being defined.");
}
try {
getThreadContext().getVariables().putObject(getSource(), new MongoDB(MongoUtils.toServerAddresses(getConnection()), mongoOptions));
} catch (UnknownHostException e) {
throw new IllegalStateException(e);
}
}
}
use of org.apache.jmeter.protocol.mongodb.mongo.MongoDB in project jmeter by apache.
the class MongoScriptSampler method sample.
@Override
public SampleResult sample(Entry e) {
trace("sample()");
SampleResult res = new SampleResult();
String data = getScript();
res.setSampleLabel(getTitle());
res.setResponseCodeOK();
// $NON-NLS-1$
res.setResponseCode("200");
res.setSuccessful(true);
res.setResponseMessageOK();
res.setSamplerData(data);
res.setDataType(SampleResult.TEXT);
// $NON-NLS-1$
res.setContentType("text/plain");
res.sampleStart();
try {
MongoDB mongoDB = MongoSourceElement.getMongoDB(getSource());
MongoScriptRunner runner = new MongoScriptRunner();
DB db = mongoDB.getDB(getDatabase(), getUsername(), getPassword());
res.latencyEnd();
Object result = runner.evaluate(db, data);
EvalResultHandler handler = new EvalResultHandler();
String resultAsString = handler.handle(result);
res.setResponseData(resultAsString.getBytes());
} catch (Exception ex) {
// $NON-NLS-1$
res.setResponseCode("500");
res.setSuccessful(false);
res.setResponseMessage(ex.toString());
res.setResponseData(ex.getMessage().getBytes());
} finally {
res.sampleEnd();
}
return res;
}
Aggregations