
com.blazemeter.jmeter.webdriver.phantomjs.PhantomJSDriverConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jmeter-plugins-webdriver Show documentation
Show all versions of jmeter-plugins-webdriver Show documentation
Custom plugins set for Apache JMeter
package com.blazemeter.jmeter.webdriver.phantomjs;
import com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig;
import org.apache.jmeter.testelement.ThreadListener;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class PhantomJSDriverConfig extends WebDriverConfig implements ThreadListener {
private static final long serialVersionUID = 100L;
private static final String PHANTOMJS_EXECUTABLE_PATH_PROPERTY_KEY = "PhantomJSDriverConfig.phantomjs_path";
private static final String PHANTOMJS_CLI_ARG_PROPERTY_KEY = "PhantomJSDriverConfig.phantomjs_cli_args";
private static final String PHANTOMJS_GHOSTDRIVER_CLI_ARG_PROPERTY_KEY = "PhantomJSDriverConfig.phantomjs_ghostdriver_cli_args";
public String getPhantomJsExecutablePath() {
return getPropertyAsString(PHANTOMJS_EXECUTABLE_PATH_PROPERTY_KEY);
}
public void setPhantomJsExecutablePath(String value) {
setProperty(PHANTOMJS_EXECUTABLE_PATH_PROPERTY_KEY, value);
}
public String getPhantomJsCliArgs() {
return getPropertyAsString(PHANTOMJS_CLI_ARG_PROPERTY_KEY);
}
public void setPhantomJsCliArgs(String value) {
setProperty(PHANTOMJS_CLI_ARG_PROPERTY_KEY, value);
}
public String getPhantomJsGhostdriverCliArgs() {
return getPropertyAsString(PHANTOMJS_GHOSTDRIVER_CLI_ARG_PROPERTY_KEY);
}
public void setPhantomJsGhostdriverCliArgs(String value) {
setProperty(PHANTOMJS_GHOSTDRIVER_CLI_ARG_PROPERTY_KEY, value);
}
@Override
public void threadStarted() {
if (hasThreadBrowser()) {
return;
}
setThreadBrowser(createBrowser());
}
protected Capabilities createCapabilities() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, createProxy());
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
getPhantomJsExecutablePath());
if (getPhantomJsCliArgs() != null && getPhantomJsCliArgs().trim().length() > 0) {
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliParamsToStringArray(getPhantomJsCliArgs()));
}
if (getPhantomJsGhostdriverCliArgs() != null && getPhantomJsGhostdriverCliArgs().trim().length() > 0) {
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, cliParamsToStringArray(getPhantomJsGhostdriverCliArgs()));
}
return capabilities;
}
@Override
public void threadFinished() {
final PhantomJSDriver phantomJsDriver = removeThreadBrowser();
if (phantomJsDriver != null) {
phantomJsDriver.quit();
}
}
@Override
protected PhantomJSDriver createBrowser() {
return new PhantomJSDriver(createCapabilities());
}
/*
* Convert a string with params (comma separator) to an array of String
* Example : "--web-security=false, --ignore-ssl-errors=true" converts to ["--web-security=false","--ignore-ssl-errors=true"] (trim String)
*/
private String [] cliParamsToStringArray(String params) {
String[] sSplit = {""};
if (params != null && params.trim().length() > 0) {
sSplit = params.split(",");
for(int i = 0; i < sSplit.length;i++) {
String s = sSplit[i];
s = s.trim();
sSplit[i] = s;
}
}
return sSplit;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy