Selenium Java Launcher (selenium_java.jar)

The Selenium Java launcher allows interfacing with Selenium Java tests.
It has been tested with Selenium 1.0.


Configuration

The selenium_java.xml file allows pre-configuring the launcher with some default values:


Parameter Description
General
Test root path This must indicate where are located all the Selenium Java tests (.class files).
This is a root path. Each test in XStudio has a canonical path that will be appended to this path.
This path MUST not include an ending slash.

Default value is: C:/build/classes
Additional classpath This may indicate some additional classpath necessary to execute the tests.

Default value is: <empty>
Selenium - Java
Java install path This must indicate the path to the java install.

Default value is: C:/Program Files/Java/jdk1.6.0_06
Server JAR path This must indicate the path to the Selenium Remote Control Server.

Default value is: C:/Program Files/Selenium-1.0/selenium-remote-control-1.0.1/selenium-server-1.0.1/selenium-server.jar
Server options This may indicate optional arguments to pass to the Selenium Remote Control Server.

Default value is: -singleWindow -trustAllSSLCertificates
Java client driver JAR path This must indicate the path to the Selenium Remote Control Java Client Driver jar.

Default value is: C:/Program Files/Selenium-1.0/selenium-remote-control-1.0.1/selenium-java-client-driver-1.0.1/selenium-java-client-driver.jar
Execution framework This must indicate the execution framework to run the selenium tests.
The execution framework can be JUnit3, JUnit4 or TestNG and it depends on how you wrote your tests.

Default value is: JUnit4
JUnit
JUnit jar path This must indicate the path to the JUnit library.

Default value is: C:/Program Files/junit4.7/junit-4.7.jar
TestNG
TestNG jar path This must indicate the path to the TestNG library.

Default value is: C:/Program Files/testng-5.10/testng-5.10-jdk15.jar


These values can be changed while creating the campaign session from XStudio.


Requirements

Before any test is initiated, the launcher will start teh selenium server by executing the following command:


"<javaInstallPath>/bin/java.exe" -jar "<seleniumServerJarPath>" <seleniumServerOptions>

Depending on the execution framework selected in the coniguration, the tests are executed by the launcher using one of these syntaxes:


For JUnitv3:
"<javaInstallPath>/bin/java.exe"
–classpath "<junitJarPath>;<additionalClassPath>;<javaClientDriverJarPath>;<testRootPath>"
junit.textui.TestRunner <testPath>.<testName>


For JUnitv4:
"<javaInstallPath>/bin/java.exe"
–classpath "<junitJarPath>;<additionalClassPath>;<javaClientDriverJarPath>;<testRootPath>"
org.junit.runner.JUnitCore <testPath>.<testName>


For TestNG:
"<javaInstallPath>/bin/java.exe"
–classpath "<testNGJarPath>;<additionalClassPath>;<javaClientDriverJarPath>;<testRootPath>"
org.testng.TestNG -testclass <testPath>.<testName>


And this is executed from the working directory <testRootPath>


The test will be marked as passed or failed depending on the report and traces generated by Selenium. The report and the execution traces are also attached to the testcase execution in XStudio.


Tutorial: Creating and executing Selenium Java tests

In this tutorial, we will learn to run some Selenium Java test scripts.


Prerequisites

Install Selenium 1.0 in the folder C:\Externals\Selenium-1.0

Install JUnit 4.7 in the folder C:\Program Files\junit4.7

Create a file C:\tests\selenium\java_junit\example\basic_test.java and edit it with the following content:

package test.selenium.java_junit;
import com.thoughtworks.selenium.SeleneseTestCase;

public class basic_test extends SeleneseTestCase {
   @Override
   public void setUp() throws Exception {
      //setUp("http://www.xqual.com/", "*chrome");  // Chrome
      //setUp("http://www.xqual.com/", "*firefox"); // Firefox
      setUp("http://www.xqual.com/", "*iehta");   // IE
   }

   public void basic_test_test1() throws Exception {
      selenium.open("/");
      assertTrue(selenium.isTextPresent("language/localization, rights,"));
   }

   public void basic_test_test2() throws Exception {
      selenium.open("/");
      assertTrue(selenium.isTextPresent("some text not exsiting in the page"));
   }
}

Create a dedicated category for Selenium Java tests and create a test

  • create a category Selenium Java associated to the launcher selenium_java.jar
  • under this category, create (somewhere in the tree) a test with name basic_test and with a canonical path set to example.



Creating a test campaign

  • create a campaign including only the test basic_test
  • create a campaign session specifying in the configuration:
    • Test root path: C:/tests/selenium/java_junit
    • Additional classpath: <empty>
    • Java install path: C:/Program Files/Java/jdk1.6.0_06
    • Server Jar Path:
      C:/Externals/Selenium-1.0/selenium-remote-control-1.0.1/selenium-server-1.0.1/selenium-server.jar
    • Server options:
      -singleWindow -trustAllSSLCertificates
    • Java client driver JAR path:
      C:/Program Files/Selenium-1.0/selenium-remote-control-1.0.1/selenium-java-client-driver-1.0.1/selenium-java-client-driver.jar
    • JUnit jar path:
      C:/Program Files/junit4.7/junit-4.7.jar



Run a campaign session

Run the campaign session


What about TestNG?

The process is similar for TestNG tests. The only difference is that the annotation in the source file will use TestNG directives:


package test.selenium.java_testng;
import org.testng.annotations.Test;
import com.thoughtworks.selenium.SeleneseTestBase;

public class basic_test extends SeleneseTestBase {
	@Test public void basic_test_test1() throws Exception {
		selenium.open("/");
	}
}