2

I want to open a URL in the Chrome browser, but in mobile mode during my load test in JMeter. I am using Selenium scripts. Below is my Selenium script

var pkg = JavaImporter(org.openqa.selenium,org.openqa.selenium.support.ui) // Import Java Selenium packages
var Thr = JavaImporter(java.lang.Thread) // Import Thread sleep packages
var wait = new pkg.WebDriverWait(WDS.browser,30) // Import WebDriverWait Package

WDS.sampleResult.sampleStart()

WDS.browser.get('https://xyz=${__urlencode(${token})}');

WDS.sampleResult.sampleEnd()

Below is the Java class I have created in BeanShell Preprocessor in Jmeter to use Chromeoptions to open Chrome in mobile mode, but I don't know how I can call it in webdriver above and I am doing it correctly or not:

public class page {

    public static void main (String args[]) {
        String device = "Samsung Galaxy S4";
        //options.ChromeOptions options = new ChromeOptions();
        ChromeOptions options = new ChromeOptions();
        options.EnableMobileEmulation(device);
        IWebDriver driver = new ChromeDriver(options);
    }
}
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
astar
  • 111
  • 2
  • 12

1 Answers1

3
  1. Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language
  2. There is no EnableMobileEmulation function in ChromeOptions, you should be using setExperimentalOption instead

Example code for the JSR223 Sampler:

import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.chrome.ChromeDriver;

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver.exe");

Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Galaxy S5");

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("mobileEmulation", mobileEmulation);
ChromeDriver driver = new ChromeDriver(options)
driver.get("http://example.com");
log.info(driver.getTitle());
driver.quit();
Dmitri T
  • 159,985
  • 5
  • 83
  • 133