如何从jmeter运行用java编写的selenium脚本?

时间:2017-03-28 21:25:14

标签: java selenium jmeter

我正在尝试使用JMeter的WebDriver Sampler在java中使用我的Selenium脚本。

在webdriver采样器内部,该语言被选择为java,并添加了以下代码:

package automationFramework;

public class FirstTestCase {

    public static void main(String[] args) {

        // Create a new instance of the Firefox driver
        WebDriver driver = new ChromeDriver();

        //Launch the Online Store Website
        driver.get("www.google.com");

        // Print a Log In message to the screen
        System.out.println("Successfully opened the website www.google.com");

        //Wait for 5 Sec
        Thread.sleep(5);

        // Close the driver
        driver.quit();
    }
} 

我遇到以下错误:

java.net.MalformedURLException: unknown protocol: data
at java.net.URL.<init>(URL.java:600)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler.sample(WebDriverSampler.java:80)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)
at java.lang.Thread.run(Thread.java:745)

然而,用javascripts编写的测试工作得很好。

这是什么问题?怎么解决?

3 个答案:

答案 0 :(得分:4)

您不应该实例化WebDriver实例,JMeter会为您添加Chrome Driver Config元素并为您配置ChromeDriver可执行文件的路径。

完成后,您应该可以使用WDS.browser简写,如:

WDS.sampleResult.sampleStart();
WDS.browser.get("http://google.com");
WDS.log.info("Successfully opened the website www.google.com");
Thread.sleep(5000);
WDS.sampleResult.sampleEnd();

JMeter WebDriver Sampler Demo

另外,不要调用quit()方法,测试完成后WebDriver实例将被关闭。

请参阅Using Selenium with JMeter's WebDriver Sampler指南以开始使用Selenium和JMeter。

答案 1 :(得分:2)

如果您使用的是带有Selenium 3.x.x的Chrome驱动程序2.28,则必须在打开浏览器之前设置Chrome驱动程序的路径。

添加此行: res <- nearPoints(XYdata, input$plot1_click, xvar="Concn", yvar="Values", allRows = TRUE)

接下来,System.setProperty("webdriver.chrome.driver", "C:\\your_folder\\chrome.exe");

如果这有助于您,请告诉我。

答案 2 :(得分:0)

另一种方法是在jar文件中提取webdriver测试,然后在JMeter中使用junit测试运行。