예제 #1
0
        //  public static string stateName = string.Empty;
        //  public static string cityName = string.Empty;

        public void RunTestCases()
        {
            ExecutionSession.startTime = DateTime.Now;
            bool exceptionOccured = false;

            try
            {
                TestSetUp.InitializeSetUp();
                //SendStartMail(ExecutionSession.dictCommonData["Environment"]);
                //Environment.Exit(0);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error occured during Test Setup. Please look into logs for more details.");
                Logger.Log(ex.ToString());
                Environment.Exit(0);
            }

            try
            {
                ExecutionSession.lstExecutedTestCases = new List <ExecutedTestCase>();
                ExecutionSession.lstErrorsteps        = new List <ErrorSteps>();
                foreach (clientList ClientList in ExecutionSession.lstClient)
                {
                    if (ClientProgresscount != 0)
                    {
                        ProgressBar(ClientProgresscount, ClientCount);
                    }
                    ExecutionSession.dictCommonData.Clear();
                    ExecutionSession.dictCommonData.Add("Environment", ClientList.EnvironmentName);
                    ExecutionSession.dictCommonData.Add("EnvironmentUrl", ClientList.clientUrl);
                    if (!HelperClass.runAllBrowsers && !HelperClass.runMultipleBrowsers &&
                        !HelperClass.runMultipleThreads)
                    {
                        ExecuteTestCases(ClientList.clientUrl);
                    }
                    else if (HelperClass.runAllBrowsers || HelperClass.runMultipleBrowsers)
                    {
                        ExecuteMultipleBrowsers();
                    }
                    else if (HelperClass.runMultipleThreads)
                    {
                        ExecuteMultipleTestCases();
                    }
                    Progresscount = 0;
                    ClientProgresscount++;
                    //Thread.Sleep(2000);
                    Console.Clear();
                    if (ClientProgresscount == ClientCount)
                    {
                        ProgressBar(ClientProgresscount, ClientCount);
                    }
                }
            }
            catch (Exception e)
            {
                exceptionOccured = true;
            }


            if (!exceptionOccured)
            {
                try
                {
                    SummaryReport report = new SummaryReport();
                    report.GenerateSummaryReport();
                    TestSetUp.AddFailedTCToExcel();
                    //  SendEndMail(ExecutionSession.dictCommonData["Environment"]);
                }
                catch (Exception ex)
                {
                    Logger.Log(ex.ToString());
                }
            }

            if (HelperClass.sendEmail)
            {
                QCHelper qcHelper = new QCHelper();
                qcHelper.SendEmail();
            }
            Driver.QuitDriver(Driver.driver);
            //HTMLChartSummaryReport htmlChartSummaryReport = new HTMLChartSummaryReport();
            //htmlChartSummaryReport.generateSummaryReport();
            //System.Diagnostics.Process.Start(HelperClass.reportRunPath + "\\" + "SummaryReport" + ".html");
        }
예제 #2
0
        public void ExecuteMultipleBrowsers()
        {
            List <TestCase> lstRunTC;
            Report          rptTCMultiBrowser;
            DateTime        startTime;
            QCHelper        qcHelper = null;

            foreach (TestCase testCase in ExecutionSession.lstTestCase)
            {
                lstRunTC = ExecutionSession.lstAllBrowsersTC.Where(browserTC => browserTC.TestCaseName == testCase.TestCaseName).ToList();

                IRunTestCases      runTestCases;
                List <ThreadClass> lstThreads = new List <ThreadClass>();
                ThreadClass        storeThread;
                int count     = lstRunTC.Count;
                int threadCnt = 1;
                startTime = DateTime.Now;
                foreach (TestCase currentTestCase in lstRunTC)
                {
                    runTestCases = TestSetUp.GetRunTestCase();
                    runTestCases.CurrentTestCase = currentTestCase;
                    Thread runThread = new Thread(runTestCases.RunTestCase);
                    runThread.Name            = "Thread" + threadCnt;
                    storeThread               = new ThreadClass();
                    storeThread.ThreadName    = runThread.Name;
                    storeThread.currentThread = runThread;
                    lstThreads.Add(storeThread);
                    runThread.Start();
                    if (currentTestCase.Browser == Browser.FireFox)
                    {
                        Thread.Sleep(8000);
                    }
                    threadCnt++;
                }

                while (lstThreads.Any(thread => thread.currentThread.IsAlive))
                {
                }
                DateTime endTime       = DateTime.Now;
                TimeSpan timeTaken     = endTime.Subtract(startTime);
                string   executionTime = timeTaken.Minutes + " mins and "
                                         + timeTaken.Seconds + " secs";
                rptTCMultiBrowser = new Report();
                rptTCMultiBrowser.GenerateMultiBrowserDetailedReport(lstRunTC, timeTaken);
                try
                {
                    if (HelperClass.QCUpdateResults)
                    {
                        qcHelper = new QCHelper();
                        qcHelper.UploadResults(testCase);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex.ToString());
                }
            }

            try
            {
                SummaryReport report = new SummaryReport();
                report.GenerateSummaryReport();
                TestSetUp.AddFailedTCToExcel();
            }
            catch (Exception ex)
            {
                Logger.Log(ex.ToString());
            }
        }
예제 #3
0
        public void ExecuteMultipleTestCases()
        {
            IRunTestCases runTestCases = TestSetUp.GetRunTestCase();

            List <ThreadClass> lstThreads = new List <ThreadClass>();
            ThreadClass        storeThread;
            int count            = ExecutionSession.lstTestCase.Count;
            int runTestCaseCount = 0;

            if (ExecutionSession.lstTestCase.Count < HelperClass.runNoofThreads)
            {
                runTestCaseCount = ExecutionSession.lstTestCase.Count;
            }
            else
            {
                runTestCaseCount = HelperClass.runNoofThreads;
            }
            int threadCnt = 0;

            while (threadCnt < count)
            {
                if (threadCnt == 0)
                {
                    for (int iLp = 1; iLp <= runTestCaseCount; iLp++)
                    {
                        TestCase testCase = ExecutionSession.lstTestCase[threadCnt];
                        runTestCases.CurrentTestCase = testCase;
                        Thread runThread = new Thread(runTestCases.RunTestCase);
                        runThread.Name            = "Thread" + iLp;
                        storeThread               = new ThreadClass();
                        storeThread.ThreadName    = runThread.Name;
                        storeThread.currentThread = runThread;
                        lstThreads.Add(storeThread);
                        runThread.Start();
                        threadCnt++;
                        Console.WriteLine("Threads executed is : " + threadCnt);
                        Thread.Sleep(700);
                    }
                }
                else
                {
                    foreach (ThreadClass currentThread in lstThreads)
                    {
                        if (currentThread.currentThread.IsAlive == false)
                        {
                            if (threadCnt < count)
                            {
                                Console.WriteLine("Thread  " + currentThread.ThreadName + " is alive :" + currentThread.currentThread.IsAlive);
                                runTestCases = TestSetUp.GetRunTestCase();
                                TestCase testCase = ExecutionSession.lstTestCase[threadCnt];
                                runTestCases.CurrentTestCase = testCase;
                                Thread runThread = new Thread(runTestCases.RunTestCase);
                                runThread.Name = currentThread.ThreadName;
                                currentThread.currentThread = runThread;
                                runThread.Start();
                                threadCnt++;
                                Console.WriteLine("Threads executed is : " + threadCnt);
                                Thread.Sleep(700);
                            }
                        }
                    }
                }
            }

            while (lstThreads.Any(thread => thread.currentThread.IsAlive))
            {
            }

            try
            {
                SummaryReport report = new SummaryReport();
                report.GenerateSummaryReport();
                TestSetUp.AddFailedTCToExcel();
            }
            catch (Exception ex)
            {
                Logger.Log(ex.ToString());
            }
        }