This Post will describe how to integrate Testlink- Selenium. i.e. executing the test cases and updating the status
in the Testlink.
2 Different approaches which we can follow to achieve:
1) Using Eclipse-Selenium Web
driver.
2) Using Jenkins-Selenium Web
driver.
Before going to execute the test cases using Jenkins or
Eclipse, first thing we need to do some Settings in the TestLink.
Edit config.inc.php file, go to line number 379, and
add this line
$tlCfg->api->enabled = TRUE;
Test link:
1) API access Key-Test link :
This
key will provide an interface between selenium web driver test cases to
Test link, to generate this key, go to Test link--> Setting--> API
interface Section-- >Click on Generate Key.
2) Enable Test Automation(API Keys)
:
Go to Test link interface and Enable the check box for the Project which we
have created for automation.
3) Create a Project in Test link.
4) Create
test suite under project and write the Manual test cases and Select Execution
type as Automated.
5) Create test plan, build and assign the
test cases to the plan.
6) Create
a Custom filed in Testlink (Java Class) add it to the project.
Create Test Plan under the Project.
After configuring all the above in the Testlink write the code into the eclipse using below code.
Eclipse-Selenium Web driver Test cases:
1) Download
Test link-api-client libs:
Download “testlink-api-client.zip “file and add “testlink-api-client-2.0.jar”,
“xmlrpc-common-3.1.jar”, “xmlrpc-client-3.1.jar”,
and”ws-commons-util-1.0.2.jar” jar file in your web driver java project class
path.
2) Write
the Program in the eclipse for the test case and Click on execute it. After
completion of execution, status will be update in the test link.
package com.sample;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.*;
import testlink.api.java.client.TestLinkAPIClient;
import testlink.api.java.client.TestLinkAPIException;
import testlink.api.java.client.TestLinkAPIResults;
public class seltestlinkinte {
private WebDriver
driver;
// Substitute your Dev
Key Here
public final String
DEV_KEY = "5hyg785g4y6287hvg8cjjd6903dg85v7";
// Substitute your
Server URL Here
public final String
SERVER_URL = "http://localhost/testlink-1.9.10/lib/api/xmlrpc/xmlrpc.php";
// Substitute your
project name Here
public final String
PROJECT_NAME = "SampleProject";
// Substitute your test
plan Here
public final String
PLAN_NAME = "SampleTestPlan";
// Substitute your build
name
public final String BUILD_NAME =
"SampleBuild";
@BeforeSuite
public void setUp()
throws Exception {
driver = new
FirefoxDriver();
}
@Test
public void Searchitem()
throws Exception {
String result =
"";
String exception =
null;
try {
driver.navigate().to("http://url");
result =
TestLinkAPIResults.TEST_PASSED;
updateTestLinkResult("TC001-1", null, result);
} catch (Exception
ex) {
result =
TestLinkAPIResults.TEST_FAILED;
exception =
ex.getMessage();
updateTestLinkResult("TC001-1", exception, result);
}
try {
driver.findElement(By.id("searchInput")).clear();
driver.findElement(By.id("searchInput")).sendKeys("shoes");
result =
TestLinkAPIResults.TEST_PASSED;
updateTestLinkResult("TC001-2", null, result);
} catch (Exception
ex) {
result =
TestLinkAPIResults.TEST_FAILED;
exception =
ex.getMessage();
updateTestLinkResult("TC001-2", exception, result);
}
try {
driver.findElement(By.id("searchButton")).click();
result =
TestLinkAPIResults.TEST_PASSED;
exception =
null;
updateTestLinkResult("TC001-3", null, result);
}
catch (Exception
ex) {
result =
TestLinkAPIResults.TEST_FAILED;
exception =
ex.getMessage();
updateTestLinkResult("TC001-3", exception, result);
}
String str =
driver.findElement(
By.xpath("//h1[@id='firstHeading']/span")).getText();
Assert.assertTrue(str.contains("shoes"));
}
@AfterSuite
public void tearDown()
throws Exception {
driver.quit();
}
public void
updateTestLinkResult(String testCase, String exception, String result)throws
TestLinkAPIException {
TestLinkAPIClient
testlinkAPIClient = new TestLinkAPIClient(DEV_KEY,
SERVER_URL);
testlinkAPIClient.reportTestCaseResult(PROJECT_NAME, PLAN_NAME,
testCase, BUILD_NAME, exception,
result);
}
}
fig: 1
fig:2 (PASS)
fig:3(Fail)
Figure 1,2 & 3 are after executing the test cases