Exemplo n.º 1
0
        private void LoadDataSet()
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                communicatorDataSet.EnforceConstraints = false;

                SymbolTableAdapter symbolAdapter = new SymbolTableAdapter();
                symbolAdapter.Fill(communicatorDataSet.Symbol);

                ScenarioTableAdapter scenarioAdapter = new ScenarioTableAdapter();
                scenarioAdapter.Fill(communicatorDataSet.Scenario);

                TextTableAdapter textAdapter = new TextTableAdapter();
                textAdapter.Fill(communicatorDataSet.Text);

                communicatorDataSet.EnforceConstraints = true;
                communicatorDataSet.AcceptChanges();
            }
            catch (Exception ex)
            {
                ReportError(ex.Message.ToString());
            }

            RefreshScenarioListView();

            this.EnableButtons();

            Cursor.Current = Cursors.Default;
        }
Exemplo n.º 2
0
        private void LoadDataSet()
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                adaScenarioDataSet1.EnforceConstraints = false;

                SymbolTableAdapter symbolAdapter = new SymbolTableAdapter();
                symbolAdapter.Fill(adaScenarioDataSet1.Symbol);

                ScenarioTableAdapter scenarioAdapter = new ScenarioTableAdapter();
                scenarioAdapter.Fill(adaScenarioDataSet1.Scenario);

                TextTableAdapter textAdapter = new TextTableAdapter();
                textAdapter.Fill(adaScenarioDataSet1.Text);

                adaScenarioDataSet1.EnforceConstraints = true;
            }
            catch (Exception ex)
            {
                ReportError(ex);
            }

            RefreshViews();

            Cursor.Current = Cursors.Default;
        }
Exemplo n.º 3
0
        internal bool ExecuteOneScenario(string scenarioId, IWebDriver driver)
        {
            if (scenarioId == string.Empty)
            {
                MessageBox.Show("Select Scenario first", "Applenium");
                return(false);
            }

            _flowId = Convert.ToInt32(scenarioId);


            var       sql        = new Sql();
            DataTable dtScenario = sql.GetDataTable(Constants.StrScenarioTestsToSelenium, scenarioId);

            var adapterScenario = new ScenarioTableAdapter();

            _projectId = Convert.ToInt32(adapterScenario.GetProjectID(_flowId));
            string scenarioname = adapterScenario.GetScenarioName(_flowId);

            LogResult(_runExecutionId, _batchId, _flowId, 0, 0, scenarioname + " Scenario Started", Constants.Done, "0",
                      _projectId, 0);
            Singleton myInstance     = Singleton.Instance; // Will always be the same instance...
            bool      scenarioresult = true;

            foreach (DataRow row in dtScenario.Rows)
            {
                if (myInstance.StopExecution)
                {
                    scenarioresult = false;
                    break;
                }
                string testId = row["GuiTestID"].ToString();

                bool testresult = ExecuteOneTest(testId, row["InputDataRow"].ToString(), driver);
                if (testresult == false)
                {
                    scenarioresult = false;
                }
            }

            if (scenarioresult)
            {
                LogResult(_runExecutionId, _batchId, _flowId, 0, 0, scenarioname + " Scenario Passed", Constants.Passed,
                          "0", _projectId, 0);
            }
            else
            {
                LogResult(_runExecutionId, _batchId, _flowId, 0, 0, scenarioname + " Scenario Failed", Constants.Failed,
                          "0", _projectId, 0);
                //LogFailiure(_runExecutionID, flowID, scenario_name, 0, null, "Description in the test");
            }
            return(scenarioresult);
        }
Exemplo n.º 4
0
        private void SaveDataSet()
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                communicatorDataSet.EnforceConstraints = false;

                ScenarioTableAdapter scenarioAdapter = new ScenarioTableAdapter();
                scenarioAdapter.Update(communicatorDataSet);

                TextTableAdapter textAdapter = new TextTableAdapter();
                textAdapter.Update(communicatorDataSet);

                communicatorDataSet.EnforceConstraints = true;
                communicatorDataSet.AcceptChanges();
            }
            catch (Exception ex)
            {
                ReportError(ex.Message.ToString());
            }

            Cursor.Current = Cursors.Default;
        }
Exemplo n.º 5
0
        /// <summary>
        /// Unitest will cal this one
        /// </summary>
        /// <param name="batchId"></param>
        /// <returns></returns>
        public bool ExecuteOneBatch(string batchId)
        {
            try
            {
                var jp = new JsonParser();
                //VSH: clean global configuration before ExecuteOneBatch
                Boolean res = jp.AddConfigToMemory("");

                string remote = Constants.MemoryConf["RemoteNode"];
                int    timeoutAllScenarios = Convert.ToInt32(Constants.MemoryConf["TimeoutAllScenarios"]) * 1000;
                var    sel = new Selenium();
                if (batchId == string.Empty)
                {
                    MessageBox.Show("Select Batch first", "Applenium");
                    return(false);
                }
                var sql = new Sql();
                _batchId = Convert.ToInt32(batchId);
                DataTable dtScenario = sql.GetDataTable(Constants.StrBatchScenariosToSelenium,
                                                        _batchId.ToString(CultureInfo.InvariantCulture));
                //SetAllScenariusStatusToRunorNot(dtScenario, Constants.Pending);
                var adapterBatches    = new BatchesTableAdapter();
                var adapterBatchLogic = new BatchLogicTableAdapter();
                var adapterBrowser    = new BrowsersTableAdapter();
                _batchname = adapterBatches.GetBatchName(_batchId);
                var adapterScenario = new ScenarioTableAdapter();

                _projectId = Convert.ToInt32(adapterBatches.GetProjectID(Convert.ToInt32(_batchId)));


                LogObject logObject = new LogObject();
                logObject.ExecutionID   = _runExecutionId;
                logObject.BatchID       = _batchId;
                logObject.Description   = Constants.LogBatchStatus + "=" + Constants.PROGRESS_STARTED;
                logObject.BatchName     = _batchname;
                logObject.BatchProgress = Constants.PROGRESS_STARTED;
                logObject.StatusTag     = Constants.DONE;
                logObject.ProjectID     = _projectId;

                logger.Print(logObject);

                Singleton myInstance = Singleton.Instance;
                myInstance.BatchResult = true;
                var threadFinishEvents = new List <EventWaitHandle>();
                foreach (DataRow row in dtScenario.Rows)
                {
                    if (myInstance.StopExecution)
                    {
                        myInstance.BatchResult = false;
                        break;
                    }
                    var threadFinish = new EventWaitHandle(false, EventResetMode.ManualReset);

                    string BrowserID       = row["BrowserID"].ToString();
                    string batchLogicId    = row["BatchLogicID"].ToString();
                    int    executionStatus = Convert.ToInt32(row["ExecutionStatusID"].ToString());

                    if (executionStatus == 1) //run only selected scenarios
                    {
                        threadFinishEvents.Add(threadFinish);
                        _browserName = adapterBrowser.GetBrowserName(Convert.ToInt32(BrowserID));



                        ThreadStart ts = delegate
                        {
                            //wait till hub return available browser

                            RemoteWebDriver driver = null;
                            driver = sel.SetWebDriverBrowser(null, BrowserID, false);
                            driver.Manage().Window.Maximize();



                            string scenarioId = row["ScenarioID"].ToString();

                            // adapterBatchLogic.Update(_batchId, Convert.ToInt32(scenarioId), Convert.ToInt32(browserId),Constants.Running, Convert.ToInt32(batchLogicId));

                            string scenarioname = adapterScenario.GetScenarioName(Convert.ToInt32(scenarioId));
                            if (guiInstance != null && isBatchRun == true)
                            {
                                guiInstance.UpdateProgressLabel("", "", Constants.UpdateProgress_REGULAR);
                            }

                            LogObject logObject2 = new LogObject();
                            logObject2.ExecutionID   = _runExecutionId;
                            logObject2.BatchID       = _batchId;
                            logObject2.ScenarioID    = Convert.ToInt32(scenarioId);
                            logObject2.ScnearioName  = scenarioname;
                            logObject2.Browser       = _browserName;
                            logObject2.ProjectID     = _projectId;
                            logObject2.ProjectName   = _projectName;
                            logObject2.BatchName     = _batchname;
                            logObject2.ProjectPageID = _projectPageId;
                            logObject2.StatusTag     = Constants.DONE;
                            logObject2.Browser       = _browserName;
                            logger.Print(logObject2);


                            // Do long work here
                            bool scanearioresult = ExecuteOneScenario(scenarioId, driver);

                            Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, (EventHandler)
                                                                delegate
                            {
                                if (scanearioresult == false)
                                {
                                    myInstance.BatchResult = false;
                                    //adapterBatchLogic.Update(_batchId,Convert.ToInt32(scenarioId),Convert.ToInt32(browserId),Constants.Failed,Convert.ToInt32(batchLogicId));
                                }


                                driver.Quit();
                                threadFinish.Set();
                            }, null, null);
                        };
                        try
                        {
                            ts.BeginInvoke(delegate(IAsyncResult aysncResult) { ts.EndInvoke(aysncResult); }, null);
                        }

                        catch (Exception exc)
                        {
                            MessageBox.Show("An exception has occoured when trying to execute a scenario - " + exc.TargetSite);
                        }
                        if (remote == "no")
                        {
                            WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
                        }
                    }
                }

                WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
                string description;
                int    status;
                string bStatus = Constants.PROGRESS_FAILED;

                if (myInstance.BatchResult)
                {
                    description = string.Format("{0}={1}", Constants.LogBatchName, "Passed");
                    status      = Constants.PASSED;
                    bStatus     = Constants.PROGRESS_PASSED;
                    //LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Passed",Constants.Passed, "0", _projectId, 0);
                }

                else
                {
                    //LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Failed",Constants.Failed, "0", _projectId, 0);
                    description = string.Format("{0}={1}", Constants.LogBatchStatus, "Failed");
                    status      = Constants.FAILED;
                    bStatus     = Constants.PROGRESS_FAILED;
                }

                LogObject logObject3 = new LogObject();
                logObject3.ExecutionID = _runExecutionId;
                logObject3.BatchID     = Convert.ToInt32(_batchId);
                logObject3.Description = description;
                logObject3.StatusTag   = status;
                logObject3.BatchStatus = bStatus;
                logObject3.ProjectID   = _projectId;
                logger.Print(logObject3);


                //SetAllScenariusStatusToRunorNot(dtScenario, Constants.NotRunnig);
                return(myInstance.BatchResult);
            }
            catch (Exception exception)
            {
                LogObject exceptionLog = new LogObject();
                exceptionLog.Description = exception.Message;
                exceptionLog.StatusTag   = Constants.ERROR;
                logger.Print(exceptionLog);

                return(false);
            }
        }
Exemplo n.º 6
0
        internal bool ExecuteOneScenario(string scenarioId, RemoteWebDriver driver)
        {
            //clean global configuration before ExecuteOneScenario
            var     jp  = new JsonParser();
            Boolean res = jp.AddConfigToMemory("");

            //init test status count
            var testStatus = new Dictionary <string, int>();

            if (testStatus.ContainsKey("PassedTests"))
            {
                testStatus["PassedTests"] = 0;
            }
            else
            {
                testStatus.Add("PassedTests", 0);
            }

            if (testStatus.ContainsKey("FailedTests"))
            {
                testStatus["FailedTests"] = 0;
            }
            else
            {
                testStatus.Add("FailedTests", 0);
            }
            if (testStatus.ContainsKey("TotalTests"))
            {
                testStatus["TotalTests"] = 0;
            }
            else
            {
                testStatus.Add("TotalTests", 0);
            }

            try
            {
                if (scenarioId == string.Empty)
                {
                    MessageBox.Show("Select Scenario first", "Applenium");
                    return(false);
                }

                _flowId = Convert.ToInt32(scenarioId);

                var       sql        = new Sql();
                DataTable dtScenario = sql.GetDataTable(Constants.StrScenarioTestsToSelenium, scenarioId);

                var adapterScenario = new ScenarioTableAdapter();
                _projectId    = Convert.ToInt32(adapterScenario.GetProjectID(_flowId));
                _scenarioname = adapterScenario.GetScenarioName(_flowId);
                string scenariodescription = adapterScenario.GetScenarioDescription(_flowId);

                if (guiInstance != null && isBatchRun == false)
                {
                    guiInstance.UpdateProgressLabel(_scenarioname, _testname, Constants.UpdateProgress_REGULAR);
                }


                LogObject logObject = new LogObject();
                logObject.Description = "-------------------------------------------------------------------------------------------------------------\n" + "\t\t\t\t\t\t\t\t\t\t" + _scenarioname + " Scenario Started\n-------------------------------------------------------------------------------------------------------------\n";
                logObject.StatusTag   = Constants.INFO;
                logger.Print(logObject);

                //                AppleniumLogger.LogResult(string.Empty,
                //"-------------------------------------------------------------------------------------------------------------\n" + "\t\t\t\t\t\t\t\t\t\t" + scenarioname + " Scenario Started\n-------------------------------------------------------------------------------------------------------------\n", Constants.Info, null);

                LogObject logObject2 = new LogObject();
                logObject2.ExecutionID    = _runExecutionId;
                logObject2.BatchID        = _batchId;
                logObject2.BatchName      = _batchname;
                logObject2.ProjectName    = _projectName;
                logObject2.ScenarioID     = _flowId;
                logObject2.ScenarioStatus = Constants.PROGRESS_STARTED;
                logObject2.StatusTag      = Constants.DONE;
                logObject2.Description    = Constants.LogScenarioStatus + "=" + Constants.PROGRESS_STARTED;
                logger.Print(logObject2);

                Singleton myInstance     = Singleton.Instance; // Will always be the same instance...
                bool      scenarioresult = true;

                LogObject result = new LogObject();
                foreach (DataRow row in dtScenario.Rows)
                {
                    // Check if we got a warning message, if we did skip all tests in the scenario
                    if (Applenium._4____Infrustructure.Utilities.skipSCN == true)
                    {
                        break;
                    }

                    if (myInstance.StopExecution)
                    {
                        scenarioresult = false;
                        break;
                    }
                    string testId = row["GuiTestID"].ToString();

                    bool testresult = ExecuteOneTest(testId, row["InputDataRow"].ToString(), driver, ref testStatus);
                    if (testresult == false)
                    {
                        scenarioresult = false;
                    }
                }
                string description;



                if (scenarioresult == true && Applenium._4____Infrustructure.Utilities.skipSCN == false)
                {
                    description = String.Format("{0}={1}", Constants.LogScenarioStatus, "Passed");

                    result.ScenarioStatus = Constants.PROGRESS_PASSED;
                    result.StatusTag      = Constants.PASSED;
                }
                else if (scenarioresult == false && Applenium._4____Infrustructure.Utilities.skipSCN == false)
                {
                    result.ScenarioStatus = Constants.PROGRESS_FAILED;
                    result.StatusTag      = Constants.FAILED;
                }

                else if (scenarioresult == true && Applenium._4____Infrustructure.Utilities.skipSCN == true)
                {
                    scenarioresult   = true;
                    result.StatusTag = Constants.DEBUG;
                }
                result.ExecutionID   = _runExecutionId;
                result.BatchID       = _batchId;
                result.BatchName     = _batchname;
                result.ScenarioID    = _flowId;
                result.ScnearioName  = _scenarioname;
                result.ProjectName   = _projectName;
                result.ProjectID     = _projectId;
                result.ProjectPageID = _projectPageId;
                result.BatchName     = _batchname;
                result.Description   = scenariodescription + " | PassedTest=" + testStatus["PassedTests"] + " | FailedTest=" + testStatus["FailedTests"] + " | TotalTest=" + testStatus["TotalTests"];
                result.ProjectID     = _projectId;
                result.Browser       = _browserName;
                logger.Print(result);

                Applenium._4____Infrustructure.Utilities.skipSCN = false;

                return(scenarioresult);
            }

            catch (Exception exception)
            {
                LogObject logObject3 = new LogObject();
                logObject3.Exception   = exception;
                logObject3.StatusTag   = Constants.ERROR;
                logObject3.Description = exception.Message;
                logger.Print(logObject3);
                return(false);
            }
        }
Exemplo n.º 7
0
        internal int LogResult(int runExecutionId, int batchId, int scenarioId, int testId, int stepId,
                               string description, int status, string outOfFlow, int projectId, int projectPageId)
        {
            try
            {
                int      result;
                string   batchName       = string.Empty;
                string   scenarioName    = string.Empty;
                string   testName        = string.Empty;
                string   stepName        = string.Empty;
                string   projectName     = string.Empty;
                string   projectPageName = string.Empty;
                DateTime occurred        = DateTime.Now.ToUniversalTime();
                using (var adapterLogresult = new TestResultsTableAdapter())
                {
                    result = adapterLogresult.Insert(runExecutionId, batchId, scenarioId, testId, stepId, description,
                                                     status, outOfFlow, projectId, projectPageId, occurred);
                }

                using (var adapterBatch = new BatchesTableAdapter())
                {
                    if (batchId != 0)
                    {
                        batchName = adapterBatch.GetBatchName(batchId);
                    }
                    else
                    {
                        batchName = Constants.LogNothing;
                    }
                }

                using (var adapterScenario = new ScenarioTableAdapter())
                {
                    if (scenarioId != 0)
                    {
                        scenarioName = adapterScenario.GetScenarioName(scenarioId);
                    }
                    else
                    {
                        scenarioName = Constants.LogNothing;
                    }
                }

                using (var adapterTest = new TestTableAdapter())
                {
                    if (testId != 0)
                    {
                        testName = adapterTest.GetTestName(testId);
                    }
                    else
                    {
                        testName = Constants.LogNothing;
                    }
                }

                using (var adapterGuiMap = new GuiMapTableAdapter())
                {
                    if (stepId != 0)
                    {
                        stepName = adapterGuiMap.GetGuiMapName(stepId).Trim();
                    }
                    else
                    {
                        stepName = Constants.LogNothing;
                    }
                }

                using (var adapterProject = new ProjectsTableAdapter())
                {
                    if (projectId != 0)
                    {
                        projectName = adapterProject.GetProjectName(projectId);
                    }
                    else
                    {
                        projectName = Constants.LogNothing;
                    }
                }

                using (var adapterProjectPage = new GuiProjectPageTableAdapter())
                {
                    if (projectPageId != 0)
                    {
                        projectPageName = adapterProjectPage.GetProjectPageName(projectPageId);
                    }
                    else
                    {
                        projectPageName = Constants.LogNothing;
                    }
                }


                string logString = String.Format("{0}={1}\t{2}={3}\t{4}={5}\t{6}={7}\t{8}={9}\t{10}=( {11} )\t{12}={13}\t{14}={15}",
                                                 Constants.LogExecutionId, runExecutionId,
                                                 Constants.LogBatchName, batchName,
                                                 Constants.LogScenarioName, scenarioName,
                                                 Constants.LogTestName, testName,
                                                 Constants.LogStepName, stepName,
                                                 Constants.LogDescription, description,
                                                 Constants.LogProjectName, projectName,
                                                 Constants.LogProjectPageName, projectPageName);
                if (status == Constants.Passed)
                {
                    Logger.Passed(logString);
                }
                if (status == Constants.Done)
                {
                    Logger.Done(logString);
                }
                if (status == Constants.Failed)
                {
                    Logger.Failed(logString);
                }

                return(result);
            }
            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                return(0);
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Unitest will cal this one
        /// </summary>
        /// <param name="batchId"></param>
        /// <returns></returns>
        public bool ExecuteOneBatch(string batchId)
        {
            try
            {
                var    jp     = new JsonParser();
                string remote = jp.ReadJson("RemoteNode");
                int    timeoutAllScenarios = Convert.ToInt32(jp.ReadJson("TimeoutAllScenarios")) * 1000;
                var    sel = new Selenium();
                if (batchId == string.Empty)
                {
                    MessageBox.Show("Select Batch first", "Applenium");
                    return(false);
                }
                var sql = new Sql();
                _batchId = Convert.ToInt32(batchId);
                DataTable dtScenario = sql.GetDataTable(Constants.StrBatchScenariosToSelenium,
                                                        _batchId.ToString(CultureInfo.InvariantCulture));
                //SetAllScenariusStatusToRunorNot(dtScenario, Constants.Pending);
                var    adapterBatches    = new BatchesTableAdapter();
                var    adapterBatchLogic = new BatchLogicTableAdapter();
                var    adapterBrowser    = new BrowsersTableAdapter();
                string batchname         = adapterBatches.GetBatchName(_batchId);
                var    adapterScenario   = new ScenarioTableAdapter();

                _projectId = Convert.ToInt32(adapterBatches.GetProjectID(Convert.ToInt32(_batchId)));

                LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, Constants.LogBatchStatus + "=Started",
                          Constants.Done,
                          "0", _projectId, 0);

                Singleton myInstance = Singleton.Instance;
                myInstance.BatchResult = true;
                var threadFinishEvents = new List <EventWaitHandle>();
                foreach (DataRow row in dtScenario.Rows)
                {
                    if (myInstance.StopExecution)
                    {
                        myInstance.BatchResult = false;
                        break;
                    }
                    var threadFinish = new EventWaitHandle(false, EventResetMode.ManualReset);

                    string browserId       = row["BrowserID"].ToString();
                    string batchLogicId    = row["BatchLogicID"].ToString();
                    int    executionStatus = Convert.ToInt32(row["ExecutionStatusID"].ToString());

                    if (executionStatus == 1) //run only selected scenarios
                    {
                        threadFinishEvents.Add(threadFinish);
                        string browserName = adapterBrowser.GetBrowserName(Convert.ToInt32(browserId));



                        ThreadStart ts = delegate
                        {
                            //wait till hub return available browser

                            RemoteWebDriver driver  = null;
                            int             elapsed = 0;
                            while ((driver == null) && (elapsed < timeoutAllScenarios))
                            {
                                //generate random number 30-60
                                Random r    = new Random();
                                int    rInt = r.Next(30000, 60000);  //for ints

                                Thread.Sleep(rInt);
                                driver   = sel.SetWebDriverBrowser(null, browserId, false);
                                elapsed += rInt;
                            }


                            string scenarioId = row["ScenarioID"].ToString();

                            // adapterBatchLogic.Update(_batchId, Convert.ToInt32(scenarioId), Convert.ToInt32(browserId),Constants.Running, Convert.ToInt32(batchLogicId));

                            string scenarioname = adapterScenario.GetScenarioName(Convert.ToInt32(scenarioId));
                            if (guiInstance != null && isBatchRun == true)
                            {
                                guiInstance.UpdateProgressLabel(scenarioname);
                            }
                            LogResult(_runExecutionId, Convert.ToInt32(_batchId), Convert.ToInt32(scenarioId), 0, 0,
                                      scenarioname + " ScenarioBrowser=" + browserName,
                                      Constants.Done,
                                      "0", _projectId, _projectPageId);

                            // Do long work here
                            bool scanearioresult = ExecuteOneScenario(scenarioId, driver);

                            Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, (EventHandler)
                                                                delegate
                            {
                                if (scanearioresult == false)
                                {
                                    myInstance.BatchResult = false;
                                    //adapterBatchLogic.Update(_batchId,Convert.ToInt32(scenarioId),Convert.ToInt32(browserId),Constants.Failed,Convert.ToInt32(batchLogicId));
                                }


                                driver.Quit();
                                threadFinish.Set();
                            }, null, null);
                        };

                        ts.BeginInvoke(delegate(IAsyncResult aysncResult) { ts.EndInvoke(aysncResult); }, null);
                        if (remote == "no")
                        {
                            WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
                        }
                    }
                }

                WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
                string description;
                int    status;

                if (myInstance.BatchResult)
                {
                    description = string.Format("{0}={1}", Constants.LogBatchName, "Passed");
                    status      = Constants.Passed;
                    //LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Passed",Constants.Passed, "0", _projectId, 0);
                }

                else
                {
                    //LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Failed",Constants.Failed, "0", _projectId, 0);
                    description = string.Format("{0}={1}", Constants.LogBatchStatus, "Failed");
                    status      = Constants.Failed;
                }
                LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, description, status, "0", _projectId, 0);

                //SetAllScenariusStatusToRunorNot(dtScenario, Constants.NotRunnig);
                return(myInstance.BatchResult);
            }
            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                return(false);
            }
        }
Exemplo n.º 9
0
        internal bool ExecuteOneScenario(string scenarioId, RemoteWebDriver driver)
        {
            //init test status count
            var testStatus = new Dictionary <string, int>();

            if (testStatus.ContainsKey("PassedTests"))
            {
                testStatus["PassedTests"] = 0;
            }
            else
            {
                testStatus.Add("PassedTests", 0);
            }

            if (testStatus.ContainsKey("FailedTests"))
            {
                testStatus["FailedTests"] = 0;
            }
            else
            {
                testStatus.Add("FailedTests", 0);
            }
            if (testStatus.ContainsKey("TotalTests"))
            {
                testStatus["TotalTests"] = 0;
            }
            else
            {
                testStatus.Add("TotalTests", 0);
            }

            try
            {
                if (scenarioId == string.Empty)
                {
                    MessageBox.Show("Select Scenario first", "Applenium");
                    return(false);
                }

                _flowId = Convert.ToInt32(scenarioId);


                var       sql        = new Sql();
                DataTable dtScenario = sql.GetDataTable(Constants.StrScenarioTestsToSelenium, scenarioId);

                var adapterScenario = new ScenarioTableAdapter();
                _projectId = Convert.ToInt32(adapterScenario.GetProjectID(_flowId));
                string scenarioname = adapterScenario.GetScenarioName(_flowId);
                LogResult(_runExecutionId, _batchId, _flowId, 0, 0, String.Format("{0}={1}", Constants.LogScenarioStatus, "Started"), Constants.Done,
                          "0",
                          _projectId, _projectPageId);
                Singleton myInstance     = Singleton.Instance; // Will always be the same instance...
                bool      scenarioresult = true;
                foreach (DataRow row in dtScenario.Rows)
                {
                    if (myInstance.StopExecution)
                    {
                        scenarioresult = false;
                        break;
                    }
                    string testId = row["GuiTestID"].ToString();

                    bool testresult = ExecuteOneTest(testId, row["InputDataRow"].ToString(), driver, ref testStatus);
                    if (testresult == false)
                    {
                        scenarioresult = false;
                    }
                }
                string description;
                int    status;
                if (scenarioresult)
                {
                    description = String.Format("{0}={1}", Constants.LogScenarioStatus, "Passed");
                    status      = Constants.Passed;
                    //     LogResult(_runExecutionId, _batchId, _flowId, 0, 0, scenarioname + " Scenario Passed",Constants.Passed,"0", _projectId, 0);
                }
                else
                {
                    //LogResult(_runExecutionId, _batchId, _flowId, 0, 0, scenarioname + " Scenario Failed",Constants.Failed,"0", _projectId, 0);
                    description = String.Format("{0}={1}", Constants.LogScenarioStatus, "Failed");
                    status      = Constants.Failed;
                }
                LogResult(_runExecutionId, _batchId, _flowId, 0, 0, description + " : PassedTest=" + testStatus["PassedTests"] + " FailedTest=" + testStatus["FailedTests"] + " TotalTest=" + testStatus["TotalTests"], status, "0", _projectId, 0);
                return(scenarioresult);
            }

            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                return(false);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Unitest will cal this one
        /// </summary>
        /// <param name="batchId"></param>
        /// <returns></returns>
        public bool ExecuteOneBatch(string batchId)
        {
            var    jp     = new JsonParser();
            string remote = jp.ReadJson("RemoteNode");
            int    timeoutAllScenarios = Convert.ToInt32(jp.ReadJson("TimeoutAllScenarios")) * 1000;
            var    sel = new Selenium();

            if (batchId == string.Empty)
            {
                MessageBox.Show("Select Batch first", "Applenium");
                return(false);
            }
            var sql = new Sql();

            _batchId = Convert.ToInt32(batchId);
            DataTable dtScenario = sql.GetDataTable(Constants.StrBatchScenariosToSelenium,
                                                    _batchId.ToString(CultureInfo.InvariantCulture));

            SetAllScenariusStatusToRunorNot(dtScenario, Constants.Pending);
            var    adapterBatches    = new BatchesTableAdapter();
            var    adapterBatchLogic = new BatchLogicTableAdapter();
            var    adapterBrowser    = new BrowsersTableAdapter();
            string batchname         = adapterBatches.GetBatchName(_batchId);
            var    adapterScenario   = new ScenarioTableAdapter();

            _projectId = Convert.ToInt32(adapterBatches.GetProjectID(Convert.ToInt32(_batchId)));

            LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Started", Constants.Done,
                      "0", _projectId, 0);

            Singleton myInstance = Singleton.Instance;

            myInstance.BatchResult = true;
            var threadFinishEvents = new List <EventWaitHandle>();

            foreach (DataRow row in dtScenario.Rows)
            {
                if (myInstance.StopExecution)
                {
                    myInstance.BatchResult = false;
                    break;
                }
                var threadFinish = new EventWaitHandle(false, EventResetMode.ManualReset);
                threadFinishEvents.Add(threadFinish);
                string browserId    = row["BrowserID"].ToString();
                string batchLogicId = row["BatchLogicID"].ToString();


                string      browserName = adapterBrowser.GetBrowserName(Convert.ToInt32(browserId));
                IWebDriver  driver      = null;
                ThreadStart ts          = delegate
                {
                    driver = sel.SetWebDriverBrowser(driver, browserId, false);
                    if (driver == null)
                    {
                        return;
                    }


                    string scenarioId = row["ScenarioID"].ToString();

                    adapterBatchLogic.Update(_batchId, Convert.ToInt32(scenarioId), Convert.ToInt32(browserId), Constants.Running, Convert.ToInt32(batchLogicId));

                    string scenarioname = adapterScenario.GetScenarioName(Convert.ToInt32(scenarioId));
                    LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0,
                              scenarioname + " Scenario will run on " + browserName + " browser.", Constants.Done,
                              "0", _projectId, 0);


                    // Do long work here
                    bool scanearioresult = ExecuteOneScenario(scenarioId, driver);
                    Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, (EventHandler)
                                                        delegate
                    {
                        if (scanearioresult == false)
                        {
                            myInstance.BatchResult = false;
                            adapterBatchLogic.Update(_batchId, Convert.ToInt32(scenarioId),
                                                     Convert.ToInt32(browserId), Constants.Failed,
                                                     Convert.ToInt32(batchLogicId));
                        }
                        else
                        {
                            adapterBatchLogic.Update(_batchId, Convert.ToInt32(scenarioId), Convert.ToInt32(browserId), Constants.Passed, Convert.ToInt32(batchLogicId));
                        }
                        driver.Quit();
                        threadFinish.Set();
                    }, null, null);
                };

                ts.BeginInvoke(delegate(IAsyncResult aysncResult) { ts.EndInvoke(aysncResult); }, null);
                if (remote == "no")
                {
                    WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
                }
            }

            WaitHandle.WaitAll(threadFinishEvents.ToArray(), Convert.ToInt32(timeoutAllScenarios));
            if (myInstance.BatchResult)
            {
                LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Passed",
                          Constants.Passed, "0", _projectId, 0);
            }
            else
            {
                LogResult(_runExecutionId, Convert.ToInt32(_batchId), 0, 0, 0, batchname + " Batch Failed",
                          Constants.Failed, "0", _projectId, 0);
                //LogFailiure(_runExecutionID, 0, null, 0, null, "Description in the scenario");
            }

            SetAllScenariusStatusToRunorNot(dtScenario, Constants.NotRunnig);
            return(myInstance.BatchResult);
        }