Пример #1
0
 //Inserting dictionary for driver class
 private void InsDictRecDriver(String key, DriverClassLib value)
 {
     try
     {
         ExcelReaderGlobal.getRunningDriver.Add(key, value);
     }
     catch
     {
         ExcelReaderGlobal.getRunningDriver[key] = value;
     }
 }
Пример #2
0
        public Boolean TestRunner()
        {
            try
            {
                driver = new DriverClassLib(Int32.Parse(Utility.getDriverType));

                InsDictRec("CurRow_" + fileName, 0);
                InsDictRec("MaxRow_" + fileName, 0);
                InsDictRec("ModuleVal_" + fileName, null);
                InsDictRec("nullElemTS_" + fileName, null);
                InsDictRec("nullElemFlag_" + fileName, false);
                InsDictRec("stopRequestFlag" + fileName, false);
                InsDictRec("object_" + fileName, new Object());
                InsDictRecDriver("driver" + fileName, driver);
                InsDictRec("pauseflag_" + fileName, false);

                int startingRow    = 1;
                int worksheetRange = GetTestCases(fileName);

                InsDictRec("MaxRow_" + fileName, worksheetRange);

                maxRange = (float)worksheetRange;
                Logger.Info(maxRange);

                //Backup previous report
                Report.BackUp(sheetName, fileName);

                //For showing execution progress in FAST application
                //Report.WriteRunTimeStepsMax(sheetName, fileName, worksheetRange); //Removed as obsolete

                #region Execute test cases
                //Execute each test case
                foreach (string tc in testCasesList)
                {
                    List <Boolean> tempResults = new List <Boolean>();

                    for (int row = startingRow; row < worksheetRange; row++)
                    {
                        #region for loop

                        //Locking mechanism
                        lock (ExcelReaderGlobal.getMonitoringObj["object_" + fileName]) { }

                        InsDictRec("CurRow_" + fileName, row);

                        //Get row data
                        GetRowData(fileName, row);

                        //Check if the step is intended to be skipped
                        if (action.Equals("skip"))
                        {
                            continue;
                        }

                        //Set element to be interacted upon
                        IWebElement elem = driver.LocateByType(locator, locvalue, attribute, attrvalue);

                        #region Stop flag check
                        //Stop test if flag is true
                        if (ExcelReaderGlobal.getRunningFlag["stopRequestFlag"])
                        {
                            Boolean result = GetTestCaseResult(tempResults);
                            DataFlush();
                            return(result);
                        }
                        #endregion

                        #region Execute test steps
                        //Execute test case steps
                        if (tc.Equals(testcase))
                        {
                            Boolean result = RunSteps(elem, row);
                            tempResults.Add(result);

                            //Log test steps
                            if (!result && elem == null && exitIfNull)
                            {
                                //Do the following if elem is null
                                string err = "<br>Unable to locate element for this step [" + locator + "=" + locvalue + "]";
                                Report.WriteTestStepResult(sheetName, fileName, testModule, tc, stepnumber, stepdescription + err, result);

                                //try
                                //{
                                //    dbConn.testResultsInsert(fileName, testModule, tc, stepnumber, stepdescription + err, result == true ? "Pass" : "Fail");
                                //}
                                //catch (Exception e)
                                //{
                                //    Console.WriteLine(e.ToString());
                                //}

                                //nullElemFlag = true; //removed
                                InsDictRec("nullElemFlag_" + fileName, true);
                                InsDictRec("nullElemTS_" + fileName, fileName);
                                //nullElemTS = fileName; // removed as when calling a thread, should not access via static
                                result = GetTestCaseResult(tempResults);
                                testCaseResultsList.Add(result);
                                tcDictionary.Add(tc, result);
                                Report.WriteTestCaseResult(sheetName, fileName, testModule, tc, result);
                                //Report.WriteModuleValue(sheetName, fileName, testModule);
                                InsDictRec("ModuleVal_" + fileName, testModule);

                                try
                                {
                                    Report.GenerateReport(sheetName, fileName);
                                }
                                catch (Exception e)
                                {
                                    Logger.Error("Unable to generate report!" + e.ToString());
                                }


                                DataFlush();
                                driver.Shutdown();
                                return(result);
                            }
                            else
                            {
                                exitIfNull = true;
                                Report.WriteTestStepResult(sheetName, fileName, testModule, tc, stepnumber, stepdescription, result);
                                //try
                                //{
                                //    dbConn.testResultsInsert(fileName, testModule, tc, stepnumber, stepdescription, result == true ? "Pass" : "Fail");
                                //}
                                //catch (Exception e)
                                //{
                                //    Console.WriteLine(e.ToString());
                                //}
                            }

                            //For showing execution progress in FAST application
                            //Report.WriteRunTimeSteps(sheetName, fileName, row); //Obsolete
                        }
                        #endregion

                        #region Move to next TC within the file
                        //Log test case result and move to next test case
                        if (!tc.Equals(testcase) || row.Equals(worksheetRange - 1))
                        {
                            Boolean result = GetTestCaseResult(tempResults);
                            testCaseResultsList.Add(result);
                            tcDictionary.Add(tc, result);

                            //Log test case result
                            Report.WriteTestCaseResult(sheetName, fileName, testModule, tc, result);

                            //Set starting row for next test case
                            startingRow = row;
                            break;
                        }
                        #endregion

                        #endregion for loop
                    }
                    //Clear data
                    //Report.WriteModuleValue(sheetName, fileName, testModule);
                    InsDictRec("ModuleVal_" + fileName, testModule);

                    DataFlush();
                }
                #endregion

                //Generate Report
                try
                {
                    Report.GenerateReport(sheetName, fileName);
                }
                catch (Exception ex)
                {
                    Logger.Error(String.Format("TestRunner Error {0},{1},{2}", sheetName, fileName, ex.ToString()));
                }


                //Return overall test scenario result
                overallResult = GetTestCaseResult(testCaseResultsList);

                //Close WebDriver instance
                driver.Shutdown();
                return(overallResult);
            }
            catch (Exception e)
            {
                driver.Shutdown();
                Logger.Error("TestRunner Error: " + e.ToString());
                return(false);
            }
        }