Search code examples
selenium-webdriverjmeterperformance-testingjmeter-plugins

Unable to use groovy Webdriver scripts in WebdriverSampler


I am trying to use groovy script to launch my client using webdriver sampler and it doesn't work as expected.only JavaScript is working with the following code

var pkg = JavaImporter(org.openqa.selenium); //WebDriver classes
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait); //WebDriver classes
var wait = new support_ui.WebDriverWait(WDS.browser, 5000);

WDS.sampleResult.sampleStart(); //captures sampler's start time
WDS.sampleResult.getLatency();
WDS.log.info("Sample started");

WDS.browser.get('https://google.com/'); 

Solution

    1. Groovy syntax differ from JavaScript, i.e. there is no JavaImporter there, you should use import keyword instead
    2. There is no var keyword in Groovy/Java (unless you're using Java 10), you need to change it to def keyword
    3. Assuming all above you need to amend your code to look like:

      import org.openqa.selenium.support.ui.WebDriverWait
      
      def wait = new WebDriverWait(WDS.browser,5000);
      
      WDS.sampleResult.sampleStart(); //captures sampler's start time
      WDS.sampleResult.getLatency();
      WDS.log.info("Sample started");
      
      WDS.browser.get('https://google.com/');
      

      Demo:

      enter image description here

    Check out Apache Groovy - Why and How You Should Use It article to get started with Groovy scripting in JMeter