How to use Messager class of com.qaprosoft.carina.core.foundation.utils package

Best Carina code snippet using com.qaprosoft.carina.core.foundation.utils.Messager

Source:AbstractTestListener.java Github

copy

Full Screen

...44import com.qaprosoft.carina.core.foundation.retry.RetryCounter;45import com.qaprosoft.carina.core.foundation.utils.Configuration;46import com.qaprosoft.carina.core.foundation.utils.Configuration.Parameter;47import com.qaprosoft.carina.core.foundation.utils.DateUtils;48import com.qaprosoft.carina.core.foundation.utils.Messager;49import com.qaprosoft.carina.core.foundation.utils.ParameterGenerator;50import com.qaprosoft.carina.core.foundation.utils.R;51import com.qaprosoft.carina.core.foundation.utils.SpecialKeywords;52import com.qaprosoft.carina.core.foundation.utils.StringGenerator;53import com.qaprosoft.carina.core.foundation.utils.naming.TestNamingUtil;54import com.qaprosoft.carina.core.foundation.webdriver.DriverPool;55import com.qaprosoft.carina.core.foundation.webdriver.Screenshot;56import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;5758@SuppressWarnings("deprecation")59public class AbstractTestListener extends TestArgsListener60{61 private static final Logger LOGGER = Logger.getLogger(AbstractTestListener.class);6263 protected static ThreadLocal<TestResultItem> configFailures = new ThreadLocal<TestResultItem>();6465 private void startItem(ITestResult result, Messager messager)66 {6768 String test = TestNamingUtil.getCanonicalTestName(result);69 test = TestNamingUtil.associateTestInfo2Thread(test, Thread.currentThread().getId());7071 String deviceName = getDeviceName();72 messager.info(deviceName, test, DateUtils.now());73 }7475 private void passItem(ITestResult result, Messager messager)76 {77 String test = TestNamingUtil.getCanonicalTestName(result);7879 String deviceName = getDeviceName();8081 messager.info(deviceName, test, DateUtils.now());8283 EmailReportItemCollector84 .push(createTestResult(result, TestResultType.PASS, null, result.getMethod().getDescription()));85 result.getTestContext().removeAttribute(SpecialKeywords.TEST_FAILURE_MESSAGE);8687 TestNamingUtil.releaseTestInfoByThread();88 }8990 private String failItem(ITestResult result, Messager messager)91 {92 String test = TestNamingUtil.getCanonicalTestName(result);9394 String errorMessage = getFailureReason(result);95 96 takeScreenshot(result, "TEST FAILED - " + errorMessage);97 98 String deviceName = getDeviceName();99100 // TODO: remove hard-coded text101 if (!errorMessage.contains("All tests were skipped! Analyze logs to determine possible configuration issues."))102 {103 messager.info(deviceName, test, DateUtils.now(), errorMessage);104 if (!R.EMAIL.getBoolean("fail_full_stacktrace_in_report") && result.getThrowable() != null105 && result.getThrowable().getMessage() != null106 && !StringUtils.isEmpty(result.getThrowable().getMessage()))107 {108 EmailReportItemCollector.push(createTestResult(result, TestResultType.FAIL,109 result.getThrowable().getMessage(), result.getMethod().getDescription()));110 } else111 {112 EmailReportItemCollector.push(createTestResult(result, TestResultType.FAIL, errorMessage, result113 .getMethod().getDescription()));114 }115 }116117 result.getTestContext().removeAttribute(SpecialKeywords.TEST_FAILURE_MESSAGE);118 TestNamingUtil.releaseTestInfoByThread();119 return errorMessage;120 }121122 private String failRetryItem(ITestResult result, Messager messager, int count, int maxCount)123 {124 String test = TestNamingUtil.getCanonicalTestName(result);125126 String errorMessage = getFailureReason(result);127 128 takeScreenshot(result, "TEST FAILED - " + errorMessage);129 130 String deviceName = getDeviceName();131132 messager.info(deviceName, test, String.valueOf(count), String.valueOf(maxCount), errorMessage);133134 result.getTestContext().removeAttribute(SpecialKeywords.TEST_FAILURE_MESSAGE);135 TestNamingUtil.releaseTestInfoByThread();136 return errorMessage;137 }138139 private String skipItem(ITestResult result, Messager messager)140 {141 String test = TestNamingUtil.getCanonicalTestName(result);142143 String errorMessage = getFailureReason(result);144 if (errorMessage.isEmpty())145 {146 // identify is it due to the dependent failure or exception in before suite/class/method147 String[] methods = result.getMethod().getMethodsDependedUpon();148149 // find if any parent method failed/skipped150 boolean dependentMethod = false;151 String dependentMethodName = "";152 for (ITestResult failedTest : result.getTestContext().getFailedTests().getAllResults())153 {154 for (int i = 0; i < methods.length; i++)155 {156 if (methods[i].contains(failedTest.getName()))157 {158 dependentMethodName = failedTest.getName();159 dependentMethod = true;160 break;161 }162 }163 }164165 for (ITestResult skippedTest : result.getTestContext().getSkippedTests().getAllResults())166 {167 for (int i = 0; i < methods.length; i++)168 {169 if (methods[i].contains(skippedTest.getName()))170 {171 dependentMethodName = skippedTest.getName();172 dependentMethod = true;173 break;174 }175 }176 }177178 if (dependentMethod)179 {180 errorMessage = "Test skipped due to the dependency from: " + dependentMethodName;181 } else182 {183 // Try to find error details from last configuration failure in this thread184 TestResultItem resultItem = getConfigFailure();185 if (resultItem != null)186 {187 errorMessage = resultItem.getFailReason();188 }189 }190 }191192 String deviceName = getDeviceName();193194 messager.info(deviceName, test, DateUtils.now(), errorMessage);195196 EmailReportItemCollector197 .push(createTestResult(result, TestResultType.SKIP, errorMessage, result.getMethod().getDescription()));198199 result.getTestContext().removeAttribute(SpecialKeywords.TEST_FAILURE_MESSAGE);200 TestNamingUtil.releaseTestInfoByThread();201 return errorMessage;202 }203 204 private void skipAlreadyPassedItem(ITestResult result, Messager messager)205 {206 String test = TestNamingUtil.getCanonicalTestName(result);207 String deviceName = getDeviceName();208 messager.info(deviceName, test, DateUtils.now());209 }210211 private String getDeviceName()212 {213 String deviceName = DevicePool.getDevice().getName();214 String deviceUdid = DevicePool.getDevice().getUdid();215216 if (!deviceName.isEmpty() && !deviceUdid.isEmpty())217 {218 deviceName = deviceName + " - " + deviceUdid;219 }220221 return deviceName;222 }223 224 private void afterConfiguration(ITestResult result) {225 //register configuration step as test artifact226 String test = TestNamingUtil.getCanonicalTestName(result);227 Artifacts.add("LOG-" + test, ReportContext.getTestLogLink(test));228 Artifacts.add("DEMO-" + test, ReportContext.getTestScreenshotsLink(test));229 TestNamingUtil.releaseTestInfoByThread();230 }231232 @Override233 public void beforeConfiguration(ITestResult result)234 {235 // startItem(result, Messager.CONFIG_STARTED);236 // // do failure test cleanup in this place as right after the test237 // // context doesn't have up-to-date information.238 // // This context cleanup is required to launch dependent steps if parent method pass from Nth retry!239 removeIncorrectlyFailedTests(result.getTestContext());240 241 242 // added 3 below lines to be able to track log/screenshots for before suite/class/method actions too243 TestNamingUtil.releaseTestInfoByThread();244 String test = TestNamingUtil.getCanonicalTestName(result);245 TestNamingUtil.associateCanonicTestName(test);246 247 super.beforeConfiguration(result);248 }249250 @Override251 public void onConfigurationSuccess(ITestResult result)252 {253 afterConfiguration(result);254 // passItem(result, Messager.CONFIG_PASSED);255 super.onConfigurationSuccess(result);256 }257258 @Override259 public void onConfigurationSkip(ITestResult result)260 {261 afterConfiguration(result);262 // skipItem(result, Messager.CONFIG_SKIPPED);263 super.onConfigurationSkip(result);264 }265266 @Override267 public void onConfigurationFailure(ITestResult result)268 {269 afterConfiguration(result); 270 // failItem(result, Messager.CONFIG_FAILED);271 // String test = TestNamingUtil.getCanonicalTestName(result);272 // closeLogAppender(test);273274 String errorMessage = getFailureReason(result);275 takeScreenshot(result, "CONFIGURATION FAILED - " + errorMessage);276 277 TestResultItem resultItem = createTestResult(result, TestResultType.FAIL, errorMessage,278 result.getMethod().getDescription());279 setConfigFailure(resultItem);280281 super.onConfigurationFailure(result);282 }283284 @Override285 public void onStart(ITestContext context)286 {287 String uuid = StringGenerator.generateNumeric(8);288 ParameterGenerator.setUUID(uuid);289290 ReportContext.getBaseDir(); // create directory for logging as soon as possible291292 /*293 * //dropbox client initialization if (!Configuration.get(Parameter.DROPBOX_ACCESS_TOKEN).isEmpty()) {294 * dropboxClient = new DropboxClient(Configuration.get(Parameter.DROPBOX_ACCESS_TOKEN)); }295 */296 super.onStart(context);297 }298299 @Override300 public void onTestStart(ITestResult result)301 {302 super.onTestStart(result);303304 if (!result.getTestContext().getCurrentXmlTest().getTestParameters()305 .containsKey(SpecialKeywords.EXCEL_DS_CUSTOM_PROVIDER) &&306 result.getParameters().length > 0) // set parameters from XLS only if test contains any parameter at307 // all)308 {309 if (result.getTestContext().getCurrentXmlTest().getTestParameters()310 .containsKey(SpecialKeywords.EXCEL_DS_ARGS))311 {312 DSBean dsBean = new DSBean(result.getTestContext());313 int index = 0;314 for (String arg : dsBean.getArgs())315 {316 dsBean.getTestParams().put(arg, (String) result.getParameters()[index++]);317 }318 result.getTestContext().getCurrentXmlTest().setParameters(dsBean.getTestParams());319320 }321 }322 // obligatory reset any registered canonical name because for ALREADY_PASSED methods we can't do this in323 // onTestSkipped method324 TestNamingUtil.releaseTestInfoByThread();325 String test = TestNamingUtil.getCanonicalTestName(result);326 RetryCounter.initCounter(test);327328 startItem(result, Messager.TEST_STARTED);329330 TestNamingUtil.associateCanonicTestName(test);331 }332333 @Override334 public void onTestSuccess(ITestResult result)335 {336 passItem(result, Messager.TEST_PASSED);337338 // TestNamingUtil.releaseTestInfoByThread();339 super.onTestSuccess(result);340 }341342 @Override343 public void onTestFailure(ITestResult result)344 {345 String test = TestNamingUtil.getTestNameByThread();346 347 // String test = TestNamingUtil.getCanonicalTestName(result);348 int count = RetryCounter.getRunCount(test);349 int maxCount = RetryAnalyzer.getMaxRetryCountForTest();350 LOGGER.debug("count: " + count + "; maxCount:" + maxCount);351352 IRetryAnalyzer retry = result.getMethod().getRetryAnalyzer();353 if (count < maxCount && retry == null)354 {355 LOGGER.error("retry_count will be ignored as RetryAnalyzer is not declared for "356 + result.getMethod().getMethodName());357 }358359 if (count < maxCount && retry != null && !Jira.isRetryDisabled(result))360 {361 TestNamingUtil.decreaseRetryCounter(test);362 failRetryItem(result, Messager.RETRY_RETRY_FAILED, count, maxCount);363 } else364 {365 failItem(result, Messager.TEST_FAILED);366 closeLogAppender(test);367 }368369 // TestNamingUtil.releaseTestInfoByThread();370 super.onTestFailure(result);371 }372373 @Override374 public void onTestSkipped(ITestResult result)375 {376 // TODO: improve later removing duplicates with AbstractTest377 // handle Zafira already passed exception for re-run and do nothing. maybe return should be enough378 if (result.getThrowable() != null && result.getThrowable().getMessage() != null379 && result.getThrowable().getMessage().startsWith(SpecialKeywords.ALREADY_PASSED))380 {381 // [VD] it is prohibited to release TestInfoByThread in this place.!382 skipAlreadyPassedItem(result, Messager.TEST_SKIPPED_AS_ALREADY_PASSED);383 return;384 }385386 // handle AbstractTest->SkipExecution387 if (result.getThrowable() != null && result.getThrowable().getMessage() != null388 && result.getThrowable().getMessage().startsWith(SpecialKeywords.SKIP_EXECUTION))389 {390 // [VD] it is prohibited to release TestInfoByThread in this place.!391 return;392 }393394 skipItem(result, Messager.TEST_SKIPPED);395 // TestNamingUtil.releaseTestInfoByThread();396 super.onTestSkipped(result);397 }398399 @Override400 public void onFinish(ITestContext context)401 {402 removeIncorrectlyFailedTests(context);403 // printContextTestsSummary(context);404 super.onFinish(context);405 }406407 /**408 * When the test is restarted this method cleans fail statistics in test context. ...

Full Screen

Full Screen

Messager

Using AI Code Generation

copy

Full Screen

1import com.qaprosoft.carina.core.foundation.utils.messager.Messager;2import com.qaprosoft.carina.core.foundation.utils.messager.Messager.MessagerType;3import org.testng.Assert;4import org.testng.annotations.Test;5public class MessagerTest {6 public void testMessager() {7 Messager messager = new Messager(MessagerType.INFO, "Test message");8 Assert.assertEquals(messager.getMessage(), "Test message");9 }10}

Full Screen

Full Screen

Messager

Using AI Code Generation

copy

Full Screen

1Messager messager = new Messager();2messager.info("This is an info message");3messager.fail("This is a fail message");4messager.pass("This is a pass message");5messager.warn("This is a warn message");6messager.error("This is an error message");7Messager messager = new Messager();8messager.info("This is an info message");9messager.fail("This is a fail message");10messager.pass("This is a pass message");11messager.warn("This is a warn message");12messager.error("This is an error message");13Messager messager = new Messager();14messager.info("This is an info message");15messager.fail("This is a fail message");16messager.pass("This is a pass message");17messager.warn("This is a warn message");18messager.error("This is an error message");19Messager messager = new Messager();20messager.info("This is an info message");21messager.fail("This is a fail message");22messager.pass("This is a pass message");23messager.warn("This is a warn message");24messager.error("This is an error message");25Messager messager = new Messager();26messager.info("This is an info message");27messager.fail("This is a fail message");28messager.pass("This is a pass message");29messager.warn("This is a warn message");30messager.error("This is an error message");31Messager messager = new Messager();

Full Screen

Full Screen

Messager

Using AI Code Generation

copy

Full Screen

1import com.qaprosoft.carina.core.foundation.utils.messager.Messager;2public class MessagerSample {3 public static void main(String[] args) {4 Messager.sendMessage("Hello, this is sample message!");5 }6}7package com.qaprosoft.carina.demo;8import org.testng.Assert;9import org.testng.annotations.Test;10import com.qaprosoft.carina.core.foundation.utils.messager.Messager;11import com.qaprosoft.carina.core.foundation.webdriver.decorator.ExtendedWebElement;12import com.qaprosoft.carina.core.gui.AbstractPage;13import com.qaprosoft.carina.demo.gui.components.NewsItem;14import com.qaprosoft.carina.demo.gui.pages.HomePage;15public class SampleTest extends AbstractTest {16 public void testHomePage() {17 HomePage homePage = new HomePage(getDriver());18 homePage.open();19 Assert.assertTrue(homePage.isPageOpened(), "Home page is not opened!");20 NewsItem newsItem = homePage.getNews().get(2);21 String title = newsItem.getTitle();22 Messager.sendMessage("News item title: " + title);23 AbstractPage newsItemDetailsPage = newsItem.openNewsDetailsPage();24 String detailsPageTitle = newsItemDetailsPage.getTitle();25 Messager.sendMessage("News item details page title: " + detailsPageTitle);

Full Screen

Full Screen

Messager

Using AI Code Generation

copy

Full Screen

1Messager messager = new Messager(driver);2messager.sendMessage("Your message");3messager.sendImage("Your Image path");4messager.sendImage("Your Image path", "Image caption");5Messager messager = new Messager(driver);6messager.sendMessage("Your message");7messager.sendImage("Your Image path");8messager.sendImage("Your Image path", "Image caption");9Messager messager = new Messager(driver);10messager.sendMessage("Your message");11messager.sendImage("Your Image path");12messager.sendImage("Your Image path", "Image caption");13Messager messager = new Messager(driver);14messager.sendMessage("Your message");15messager.sendImage("Your Image path");16messager.sendImage("Your Image path", "Image caption");17Messager messager = new Messager(driver);18messager.sendMessage("Your message");19messager.sendImage("Your Image path");20messager.sendImage("Your Image path", "Image caption");

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Carina automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in Messager

Test Your Web Or Mobile Apps On 3000+ Browsers

Signup for free

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful