use of com.seleniumtests.core.SeleniumTestsContext in project seleniumRobot by bhecquet.
the class TestConfigReader method testLoadOneFile.
/**
* Check we are able to load several ini files in the order they are specified. Last file overwrites variable of previous if same variable name is provided
* These files are searched in "config" folder
* @param testNGCtx
*/
@Test(groups = { "ut" })
public void testLoadOneFile(final ITestContext testNGCtx) {
try {
System.setProperty(SeleniumTestsContext.LOAD_INI, "envSpecific.ini");
initThreadContext(testNGCtx);
SeleniumTestsContext seleniumTestsCtx = SeleniumTestsContextManager.getThreadContext();
// check value from a loaded additional ini file is present in configuration
Assert.assertEquals(seleniumTestsCtx.getConfiguration().get("key20").getValue(), "value20");
// check variable overwriting is also OK on loaded files
Assert.assertEquals(seleniumTestsCtx.getConfiguration().get("key10").getValue(), "value40");
// check values are overwritten by loaded ini file if the same exists (for general and env specific)
Assert.assertEquals(seleniumTestsCtx.getConfiguration().get("key2").getValue(), "value20");
Assert.assertEquals(seleniumTestsCtx.getConfiguration().get("key3").getValue(), "value30");
// check that if value is not present in additional file, it's taken from env.ini/config.ini
Assert.assertEquals(seleniumTestsCtx.getConfiguration().get("proxyType").getValue(), "direct");
} finally {
System.clearProperty(SeleniumTestsContext.LOAD_INI);
}
}
use of com.seleniumtests.core.SeleniumTestsContext in project seleniumRobot by bhecquet.
the class CustomReporter method generateReport.
@Override
protected void generateReport(Map<ITestContext, Set<ITestResult>> resultSet, String outdir, boolean optimizeReport, boolean finalGeneration) {
generatedFiles = new ArrayList<>();
Map<String, Integer> consolidatedResults = new HashMap<>();
consolidatedResults.put(FIELD_PASS, 0);
consolidatedResults.put(FIELD_FAIL, 0);
consolidatedResults.put(FIELD_SKIP, 0);
consolidatedResults.put(FIELD_TOTAL, 0);
for (Entry<ITestContext, Set<ITestResult>> entry : resultSet.entrySet()) {
for (ITestResult testResult : entry.getValue()) {
if (testResult.isSuccess()) {
consolidatedResults.put(FIELD_PASS, consolidatedResults.get(FIELD_PASS) + 1);
} else if (testResult.getStatus() == ITestResult.FAILURE) {
consolidatedResults.put(FIELD_FAIL, consolidatedResults.get(FIELD_FAIL) + 1);
} else if (testResult.getStatus() == ITestResult.SKIP) {
consolidatedResults.put(FIELD_SKIP, consolidatedResults.get(FIELD_SKIP) + 1);
}
consolidatedResults.put(FIELD_TOTAL, consolidatedResults.get(FIELD_TOTAL) + 1);
// done in case it was null (issue #81)
SeleniumTestsContext testContext = SeleniumTestsContextManager.setThreadContextFromTestResult(entry.getKey(), testResult);
if (!TestNGResultUtils.isCustomReportCreated(testResult)) {
for (ReportInfo reportInfo : testContext.getCustomTestReports()) {
generateTestReport(testResult, reportInfo);
}
}
}
}
for (ReportInfo reportInfo : SeleniumTestsContextManager.getGlobalContext().getCustomSummaryReports()) {
generateSummaryReport(consolidatedResults, reportInfo);
}
}
use of com.seleniumtests.core.SeleniumTestsContext in project seleniumRobot by bhecquet.
the class BugTrackerReporter method generateReport.
@Override
protected void generateReport(Map<ITestContext, Set<ITestResult>> resultSet, String outdir, boolean optimizeReport, boolean finalGeneration) {
for (Map.Entry<ITestContext, Set<ITestResult>> entry : resultSet.entrySet()) {
ITestContext context = entry.getKey();
for (ITestResult testResult : entry.getValue()) {
// record only when all executions of a test method are done so that intermediate results (a failed test which has been retried) are not present in list
if (!Boolean.TRUE.equals(TestNGResultUtils.getNoMoreRetry(testResult)) || TestNGResultUtils.isBugtrackerReportCreated(testResult)) {
continue;
}
// done in case it was null (issue #81)
SeleniumTestsContext testContext = SeleniumTestsContextManager.setThreadContextFromTestResult(context, testResult);
BugTracker bugtrackerServer = testContext.getBugTrackerInstance();
if (bugtrackerServer == null) {
return;
}
// get all bugtracker options
Map<String, String> issueOptions = new HashMap<>();
for (TestVariable variable : testContext.getConfiguration().values()) {
if (variable.getName().startsWith("bugtracker.")) {
issueOptions.put(variable.getName().replace("bugtracker.", ""), variable.getValue());
}
}
// application data
String application = testContext.getApplicationName();
String environment = testContext.getTestEnv();
String testNgName = testResult.getTestContext().getCurrentXmlTest().getName();
String testName = TestNGResultUtils.getUniqueTestName(testResult);
String description = String.format("Test '%s' failed\n", testName);
if (testResult.getMethod().getDescription() != null && !testResult.getMethod().getDescription().trim().isEmpty()) {
description += "Test goal: " + TestNGResultUtils.getTestDescription(testResult);
}
// search the last step to get screenshots and failure reason
List<TestStep> testSteps = TestNGResultUtils.getSeleniumRobotTestContext(testResult).getTestStepManager().getTestSteps();
if (testSteps == null) {
return;
}
// create issue only for failed tests and if it has not been created before
if (testResult.getStatus() == ITestResult.FAILURE) {
IssueBean issueBean = bugtrackerServer.createIssue(application, environment, testNgName, testName, description, testSteps, issueOptions);
// log information on issue
if (issueBean != null) {
if (issueBean.getId() != null && issueBean.getAccessUrl() != null) {
TestNGResultUtils.setTestInfo(testResult, "Issue", new HyperlinkInfo(issueBean.getId(), issueBean.getAccessUrl()));
} else if (issueBean.getId() != null) {
TestNGResultUtils.setTestInfo(testResult, "Issue", new StringInfo(issueBean.getId()));
}
TestNGResultUtils.setTestInfo(testResult, "Issue date", new StringInfo(issueBean.getCreationDate()));
}
TestNGResultUtils.setBugtrackerReportCreated(testResult, true);
// close issue if test is now OK and a previous issue has been created
} else if (testResult.getStatus() == ITestResult.SUCCESS) {
bugtrackerServer.closeIssue(application, environment, testNgName, testName);
TestNGResultUtils.setBugtrackerReportCreated(testResult, true);
}
}
}
}
use of com.seleniumtests.core.SeleniumTestsContext in project seleniumRobot by bhecquet.
the class TestAndroidCapabilitiesFactory method testCreateDefaultCapabilitiesWithAutomationName.
/**
* issue #367: check automationName is set in capabilities when overriden
*/
@Test(groups = { "ut" })
public void testCreateDefaultCapabilitiesWithAutomationName() {
SeleniumTestsContext context = new SeleniumTestsContext(SeleniumTestsContextManager.getThreadContext());
context.setBrowser(BrowserType.CHROME.toString());
context.setMobilePlatformVersion("8.0");
context.setPlatform("android");
context.setDeviceName("Samsung Galasy S8");
context.setAutomationName("UiAutomator1");
context.setApp("");
DriverConfig config = new DriverConfig(context);
AndroidCapabilitiesFactory capaFactory = new AndroidCapabilitiesFactory(config);
MutableCapabilities capa = capaFactory.createCapabilities();
Assert.assertEquals(capa.getCapability(CapabilityType.BROWSER_NAME), BrowserType.CHROME.toString().toLowerCase());
Assert.assertEquals(capa.getCapability(MobileCapabilityType.AUTOMATION_NAME), "UiAutomator1");
Assert.assertNull(capa.getCapability(MobileCapabilityType.FULL_RESET));
}
use of com.seleniumtests.core.SeleniumTestsContext in project seleniumRobot by bhecquet.
the class TestAndroidCapabilitiesFactory method testCreateDefaultCapabilitiesWithNodeTagsInGridMode.
/**
* Check default behaviour when node tags are defined in grid mode
* tags are transferred to driver
*/
@Test(groups = { "ut" })
public void testCreateDefaultCapabilitiesWithNodeTagsInGridMode() {
SeleniumTestsContext context = new SeleniumTestsContext(SeleniumTestsContextManager.getThreadContext());
context.setBrowser(BrowserType.CHROME.toString());
context.setNodeTags("foo,bar");
context.setRunMode("grid");
context.setMobilePlatformVersion("8.0");
context.setPlatform("android");
context.setDeviceName("Samsung Galasy S8");
context.setApp("");
DriverConfig config = new DriverConfig(context);
AndroidCapabilitiesFactory capaFactory = new AndroidCapabilitiesFactory(config);
MutableCapabilities capa = capaFactory.createCapabilities();
Assert.assertEquals(capa.getCapability(SeleniumRobotCapabilityType.NODE_TAGS), Arrays.asList("foo", "bar"));
}
Aggregations