예제 #1
0
 /// <summary>
 /// Verifies that a specific Browser doesn't exist.
 /// </summary>
 /// <param name="ts">Test step.</param>
 public static void BrowserNotExist(TestStep ts)
 {
     try
     {
         var title = WebdriverBrowser.GetTitleFromPartOfTitle(ts.TestData.ContainsValue(ts.TestDataKeyToUse).ToString(), false);
         BrowserWindow.Locate(title);
         Result.PassStepOutandSave(ts.TestDataKeyToUse, ts.TestStepNumber, Constants.Verification.VerifyBrowserExist, Constants.Fail, string.Concat(Constants.Verification.BrowserWithTitle, ts.TestData.ContainsValue(ts.TestDataKeyToUse), Constants.Verification.DoesExist), ts.Remarks);
     }
     catch (Exception ex)
     {
         Result.PassStepOutandSave(ts.TestDataKeyToUse, ts.TestStepNumber, Constants.Verification.VerifyBrowserNotExist, Constants.Pass, string.Concat(Constants.Verification.BrowserWithTitle, ts.TestData.ContainsValue(ts.TestDataKeyToUse), Constants.Verification.DoesExist), ts.Remarks);
         LogHelper.ErrorLog(ex, Constants.ClassName.Verifications, MethodBase.GetCurrentMethod().Name);
     }
 }
예제 #2
0
 /// <summary>
 /// Launch web browser.
 /// </summary>
 /// <param name="testStep">Test step.</param>
 /// <value>Test step value.</value>
 /// <returns>True or false.</returns>
 public static bool LaunchWebDriverBrowser(TestStep testStep)
 {
     try
     {
         //// Launch browser
         WebdriverBrowser.Launch(Convert.ToString(testStep.TestData[Convert.ToInt32(testStep.TestDataKeyToUse)]));
         Result.PassStepOutandSave(testStep.TestDataKeyToUse, testStep.TestStepNumber, "LaunchWebDriverBrowser", Entities.Constants.Pass, "WebDriverBrowser launched sucessfully", testStep.Remarks);
         return(true);
     }
     catch (Exception ex)
     {
         Result.PassStepOutandSave(testStep.TestDataKeyToUse, testStep.TestStepNumber, "LaunchWebDriverBrowser", Entities.Constants.Fail, string.Format(Entities.Constants.Messages.DueToException, ex.Message), testStep.Remarks);
         LogHelper.ErrorLog(ex, Entities.Constants.ClassName.UiActionsClassName, MethodBase.GetCurrentMethod().Name);
         return(false);
     }
 }
예제 #3
0
        public static void MyAssemblyCleanup()
        {
            try
            {
                Timing.TotalEndTime  = DateTime.Now;
                Timing.Totalduration = Timing.TotalEndTime - Timing.TotalStartTime;

                Reporting.InsertSummaryDetailsAndFormat();
                File.SetAttributes(Reporting.FilePath, FileAttributes.Normal);

                //// Close any open sessions of the browser at the end of the test run
                WebdriverBrowser webDriverBrowser = new WebdriverBrowser();
                webDriverBrowser.CloseAllWebdriver_Browsers();

                //// Email notification for test report
                EmailNotification emailNotification = new EmailNotification();
                emailNotification.SendTestReportMail();
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLog(ex, Constants.ClassName.BaseTestClass, MethodBase.GetCurrentMethod().Name);
                throw;
            }
        }
예제 #4
0
        /// <summary>
        /// Executes test steps.
        /// </summary>
        public void Execute()
        {
            try
            {
                TestSessionId = Guid.NewGuid();

                //// Initiliaze test data
                TestCase.TestDataCount = Constants.Zero;

                var  errorMessage = string.Empty;
                Data objData      = new Data();
                if (!objData.InitiliazeTestCaseAndTestData(ref errorMessage))
                {
                    Assert.Inconclusive(Constants.Messages.TestInitializationError, errorMessage);
                }

                //// Run the test case once for every test data that exist
                var testCaseCount = TestCase.TestDataCount;
                for (var testCaseIndex = 1; testCaseIndex <= testCaseCount; testCaseIndex++)
                {
                    var isSuccess = true;

                    var testStepCount = TestCase.TestStepList.Count;
                    for (var testStepIndex = 0; testStepIndex <= testStepCount - 1; testStepIndex++)
                    {
                        var teststep = new TestStep();
                        var testStep = teststep;
                        testStep.TestDataKeyToUse = Convert.ToString(testCaseIndex);
                        testStep.Action           = TestCase.TestStepList[testStepIndex].Action;
                        testStep.TestData         = TestCase.TestStepList[testStepIndex].TestData;
                        testStep.TestStepNumber   = TestCase.TestStepList[testStepIndex].TestStepNumber;
                        testStep.UiControl        = TestCase.TestStepList[testStepIndex].UiControl;
                        testStep.Verification     = TestCase.TestStepList[testStepIndex].Verification;
                        testStep.Remarks          = TestCase.TestStepList[testStepIndex].Remarks;
                        WebdriverBrowser objWebdriverBrowser = new WebdriverBrowser();
                        switch (testStep.Action.ToUpper())
                        {
                        case Constants.TestStepAction.CloseWebDriverBrowsers:
                            isSuccess = objWebdriverBrowser.CloseAllWebdriver_Browsers();
                            break;

                        case Constants.TestStepAction.LaunchWebDriverBrowser:
                            isSuccess = UiActions.LaunchWebDriverBrowser(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverEditUIControl:
                            isSuccess = UiActions.WebDriverEditUIControl(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverAlertHandler:
                            isSuccess = UiActions.WebDriverAlertHandler(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverFrameHandler:
                            isSuccess = UiActions.WebDriverFrameHandler(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverSwitchToDefaultFrame:
                            isSuccess = UiActions.WebDriverSwitchToDefaultFrame(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverVerify:
                            isSuccess = UiActions.WebDriverVerify(testStep);
                            break;

                        case Constants.TestStepAction.WebDriverSaveUIControl:
                            isSuccess = UiActions.WebDriverSaveUIControl(testStep);
                            break;

                        case Constants.TestStepAction.WebPaginationIteration:
                            isSuccess = UiActions.WebPaginationIteration(testStep);
                            break;

                        case Constants.TestStepAction.WaitforUI:
                            isSuccess = UiActions.WaitForUI(testStep);
                            break;

                        case Constants.TestStepAction.Sendkeys:
                            isSuccess = UiActions.SendKeys(testStep);
                            break;

                        default:
                            Result.PassStepOutandSave(testStep.TestDataKeyToUse, testStep.TestStepNumber, Constants.TestIterations, Constants.Fail, string.Format(Constants.Messages.NotSupported, testStep.Action), testStep.Remarks);
                            isSuccess = false;
                            break;
                        }

                        if (!isSuccess)
                        {
                            break;
                        }

                        //// Exit if one test step failed
                    }

                    if (!isSuccess && Result.GetTestScriptResult() == Constants.Fail)
                    {
                        //// Some test step failed, raise Assert.Fail after all test data iterations are completed
                        var bounds = Screen.GetBounds(Point.Empty);

                        using (var bitmap = new Bitmap(bounds.Width, bounds.Height))
                        {
                            using (var objGraphic = Graphics.FromImage(bitmap))
                            {
                                objGraphic.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
                            }

                            bitmap.Save(
                                new StringBuilder()
                                .Append(Reporting.PathString)
                                .Append(Constants.DoubleBackslash)
                                .Append(Path.GetFileNameWithoutExtension(TestCase.Name))
                                .Append(Constants.Jpg).ToString(),
                                ImageFormat.Jpeg);

                            Hyplink = new StringBuilder()
                                      .Append(Constants.Hyperlink)
                                      .Append(Reporting.PathString)
                                      .Append(Constants.DoubleBackslash)
                                      .Append(Path.GetFileNameWithoutExtension(TestCase.Name))
                                      .Append(Constants.Jpg)
                                      .Append(@""",""")
                                      .Append(Path.GetFileNameWithoutExtension(TestCase.Name))
                                      .Append(@""")").ToString();
                        }

                        Assert.Fail(Constants.Messages.TestCaseFailedError, Reporting.FilePath);
                    }
                    else
                    {
                        Hyplink = null;
                    }
                }

                LogHelper objLogHelper = new LogHelper();
                objLogHelper.EventLog(
                    string.Format(
                        Constants.Messages.SuccessfullCompletion,
                        MethodBase.GetCurrentMethod().Name),
                    Constants.ClassName.TestCases,
                    MethodBase.GetCurrentMethod().Name);
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLog(ex, Constants.ClassName.TestCases, MethodBase.GetCurrentMethod().Name);
                throw;
            }
        }