示例#1
0
        private bool ExecuteStep(DataRow dr, RemoteWebDriver driver)
        {
            string guimapName        = string.Empty;
            string guiMapCommandName = string.Empty;
            bool   result;
            int    guiTestId       = Convert.ToInt32(dr["GuiTestID"].ToString().Trim());
            string inputTableValue = string.Empty;
            int    guiMapId        = Convert.ToInt32(dr["GuiMapID"].ToString().Trim());
            int    guiMapCommandId = Convert.ToInt32(dr["GuiMapCommandID"].ToString().Trim());

            try
            {
                var sql            = new Sql();
                var sl             = new Selenium();
                var adapterGuimap  = new GuiMapTableAdapter();
                var adapterTest    = new TestTableAdapter();
                var adapterCommand = new TestCommandTableAdapter();
                //var adapter_test_failurelog = new DataSetAutoTestTableAdapters.TestFailiureLogTableAdapter();
                string inputDataColumn   = string.Empty;
                var    adapterGuiproject = new GuiProjectPageTableAdapter();

                _projectPageId = Convert.ToInt32(adapterTest.GetProjectPageID(Convert.ToInt32(guiTestId)));
                //_projectId = Convert.ToInt32(adapterGuiproject.GetProjectID(_projectPageId));
                string inputTableValueDescription = string.Empty;
                if ((dr["InputDataRow"].ToString().Trim() != string.Empty) &&
                    (dr["InputDataRow"].ToString().IndexOf('-') < 0) && (dr["InputDataRow"].ToString().IndexOf(',') < 0))
                {
                    string inputDataRow = dr["InputDataRow"].ToString().Trim();
                    inputDataColumn = dr["InputDataColumn"].ToString().Trim();
                    string inputTableName = sql.GetInputDataTableName(guiTestId.ToString(CultureInfo.InvariantCulture),
                                                                      returnTestNameIfNotExists: true);
                    inputTableValue = sql.InputDataValue(inputTableName, inputDataRow, inputDataColumn);

                    inputTableValueDescription = " with DataInput=" + inputTableValue + "in DataRow=" + inputDataRow;
                    if (inputTableValue.IndexOf(Constants.RegularExpressionOutput, 0, StringComparison.Ordinal) >= 0)
                    {
                        inputTableValue = sl.GetLastCreatrdValue(inputDataColumn);
                    }
                }


                if (inputTableValue.IndexOf(Constants.RegularExpressionRandom, 0, StringComparison.Ordinal) >= 0)
                {
                    string rnd = Guid.NewGuid().ToString().Substring(2, 13);
                    inputTableValue = inputTableValue.Replace(Constants.RegularExpressionRandom, rnd);
                }


                result = sl.ExecuteOneStep(dr, inputDataColumn, inputTableValue, driver);

                adapterTest.GetTestName(guiTestId);
                if (guiMapId != 0)
                {
                    guimapName = adapterGuimap.GetGuiMapName(guiMapId).Trim();
                }
                if (guiMapCommandId != 0)
                {
                    guiMapCommandName = adapterCommand.GetTestCommandName(guiMapCommandId).Trim();
                }
                string description;
                int    status;
                string ss = string.Empty;

                if (result)
                {
                    description = string.Format("{0}={1}", Constants.LogStepStatus, "Passed");
                    status      = Constants.Passed;
                }
                //LogResult(_runExecutionId, _batchId, _flowId, guiTestId, guiMapId,"Step Passed: " + guiMapCommandName + " => " + guimapName + inputTableValueDescription,Constants.Passed, "0", _projectId, _projectPageId);
                else
                {
                    //ss = sl.ScreenShot(driver, Directory.GetCurrentDirectory() + "\\Logs");
                    ss = sl.ScreenShot(driver, "\\\\" + Environment.MachineName + "\\Logs");
                    string     pagesource = sl.SourcePage(driver);
                    TextParser tp         = new TextParser();
                    //get iis server
                    string iisServer = tp.GetIis(pagesource);
                    description = string.Format("{0}={1}\t{2}={3}\t{4}={5}\t{6}", Constants.LogStepStatus, "Failed",
                                                "SnapShot", ss, "IISServer", iisServer, sl.LastFailureMessage);
                    status = Constants.Failed;

                    //LogResult(_runExecutionId, _batchId, _flowId, guiTestId, guiMapId,"Step Failed: " + guiMapCommandName + " => " + guimapName + inputTableValueDescription +"\n" + sl.LastFailureMessage + "\n" + ss, Constants.Failed, "0", _projectId,_projectPageId);
                }
                LogResult(_runExecutionId, _batchId, _flowId, guiTestId, guiMapId, guiMapCommandName + " " + description + inputTableValueDescription, status, "0", _projectId, _projectPageId);
            }

            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                result = false;
            }


            return(result);
        }
示例#2
0
        private bool ExecuteStep(DataRow dr, IWebDriver driver)
        {
            string guimapName        = string.Empty;
            string guiMapCommandName = string.Empty;
            bool   result;
            int    guiTestId       = Convert.ToInt32(dr["GuiTestID"].ToString().Trim());
            string inputTableValue = string.Empty;
            int    guiMapId        = Convert.ToInt32(dr["GuiMapID"].ToString().Trim());
            int    guiMapCommandId = Convert.ToInt32(dr["GuiMapCommandID"].ToString().Trim());

            try
            {
                var sql            = new Sql();
                var sl             = new Selenium();
                var adapterGuimap  = new GuiMapTableAdapter();
                var adapterTest    = new TestTableAdapter();
                var adapterCommand = new TestCommandTableAdapter();
                //var adapter_test_failurelog = new DataSetAutoTestTableAdapters.TestFailiureLogTableAdapter();
                string inputDataColumn   = string.Empty;
                var    adapterGuiproject = new GuiProjectPageTableAdapter();

                _projectPageId = Convert.ToInt32(adapterTest.GetProjectPageID(Convert.ToInt32(guiTestId)));
                _projectId     = Convert.ToInt32(adapterGuiproject.GetProjectID(_projectPageId));
                string inputTableValueDescription = string.Empty;
                if ((dr["InputDataRow"].ToString().Trim() != string.Empty) &&
                    (dr["InputDataRow"].ToString().IndexOf('-') < 0) && (dr["InputDataRow"].ToString().IndexOf(',') < 0))
                {
                    string inputDataRow = dr["InputDataRow"].ToString().Trim();
                    inputDataColumn = dr["InputDataColumn"].ToString().Trim();
                    string inputTableName = sql.GetInputDataTableName(guiTestId.ToString(CultureInfo.InvariantCulture),
                                                                      returnTestNameIfNotExists: true);
                    inputTableValue = sql.InputDataValue(inputTableName, inputDataRow, inputDataColumn);

                    inputTableValueDescription = " with data input: " + inputTableValue + "in row : " + inputDataRow;
                    if (inputTableValue.IndexOf(Constants.RegularExpressionOutput, 0, StringComparison.Ordinal) >= 0)
                    {
                        inputTableValue = sl.GetLastCreatrdValue(inputDataColumn);
                    }
                }


                if (inputTableValue.IndexOf(Constants.RegularExpressionRandom, 0, StringComparison.Ordinal) >= 0)
                {
                    string rnd = Guid.NewGuid().ToString().Substring(2, 16);
                    inputTableValue = inputTableValue.Replace(Constants.RegularExpressionRandom, rnd);
                }


                result = sl.ExecuteOneStep(dr, inputDataColumn, inputTableValue, driver);

                adapterTest.GetTestName(guiTestId);
                if (guiMapId != 0)
                {
                    guimapName = adapterGuimap.GetGuiMapName(guiMapId).Trim();
                }
                if (guiMapCommandId != 0)
                {
                    guiMapCommandName = adapterCommand.GetTestCommandName(guiMapCommandId).Trim();
                }


                if (result)
                {
                    LogResult(_runExecutionId, _batchId, _flowId, guiTestId, guiMapId,
                              "Step Passed: " + guiMapCommandName + " => " + guimapName + inputTableValueDescription,
                              Constants.Passed, "0", _projectId, _projectPageId);
                }
                else
                {
                    string ss = sl.ScreenShot(driver, Directory.GetCurrentDirectory() + "\\Logs");
                    LogResult(_runExecutionId, _batchId, _flowId, guiTestId, guiMapId,
                              "Step Failed: " + guiMapCommandName + " => " + guimapName + inputTableValueDescription +
                              "\n" + sl.LastFailureMessage + "\n" + ss, Constants.Failed, "0", _projectId,
                              _projectPageId);
                }
            }

            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                result = false;
            }


            return(result);
        }
示例#3
0
        internal bool ExecuteOneTest(string testId, string inputDataRow, RemoteWebDriver driver, ref Dictionary <string, int> testStatus)
        {
            try
            {
                if (testId == string.Empty)
                {
                    MessageBox.Show("Select test first", "Applenium");
                    return(false);
                }
                if (testStatus.ContainsKey("TotalTests"))
                {
                    testStatus["TotalTests"] = testStatus["TotalTests"] + 1;
                }
                else
                {
                    testStatus.Add("TotalTests", 1);
                }

                var sql = new Sql();

                DataTable dt                   = sql.GetDataTable(Constants.StrTestStepsToSelenium, testId);
                bool      testresult           = true;
                bool      recursivetestresult  = true;
                var       adapterGuiproject    = new GuiProjectPageTableAdapter();
                var       adapterTest          = new TestTableAdapter();
                var       adapteGuiPageSection = new GuiPageSectionTableAdapter();
                string    testname             = adapterTest.GetTestName(Convert.ToInt32(testId));

                if (guiInstance != null && isBatchRun == false)
                {
                    guiInstance.UpdateProgressLabel(testname);
                }

                LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                          "TestStatus=Started with DataRow=" + inputDataRow, Constants.Done, "0", _projectId,
                          _projectPageId);
                var    jp = new JsonParser();
                string skipTestOnStepFail = jp.ReadJson("SkipTestOnStepFail");


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

                if (inputDataRow != null)
                {
                    if (inputDataRow.IndexOf("-", 0, StringComparison.Ordinal) >= 0)
                    {
                        string[] rows = inputDataRow.Split('-');
                        for (int i = Convert.ToInt32(rows[0].ToString(CultureInfo.InvariantCulture));
                             i <= Convert.ToInt32(rows[1].ToString(CultureInfo.InvariantCulture));
                             i++)
                        {
                            testresult = ExecuteOneTest(testId, i.ToString(CultureInfo.InvariantCulture), driver, ref testStatus);
                            if (testresult == false)
                            {
                                recursivetestresult = false;
                            }
                        }
                        return(recursivetestresult);
                    }

                    if (inputDataRow.IndexOf(",", 0, StringComparison.Ordinal) >= 0)
                    {
                        string[] rows = inputDataRow.Split(',');
                        foreach (string key in rows)
                        {
                            testresult = ExecuteOneTest(testId, key, driver, ref testStatus);
                            if (testresult == false)
                            {
                                recursivetestresult = false;
                            }
                        }

                        return(recursivetestresult);
                    }
                    foreach (DataRow testrow in dt.Rows)
                    {
                        testrow["InputDataRow"] = inputDataRow;
                    }
                }
                foreach (DataRow row in dt.Rows)
                {
                    if (myInstance.StopExecution)
                    {
                        testresult = false;
                        break;
                    }
                    bool stepresult = ExecuteStep(row, driver);
                    if (stepresult == false)
                    {
                        testresult = false;
                        if (skipTestOnStepFail == "yes")
                        {
                            LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                                      " Previous Step is Failed => TestStatus=Skiped moving to next test", Constants.Error, "0", _projectId, _projectPageId);
                            break;
                        }
                    }
                }
                adapterTest.GetTestName(Convert.ToInt32(testId));
                int projectPageSectionId = Convert.ToInt32(adapterTest.GetProjectPageID(Convert.ToInt32(Convert.ToInt32(testId))));
                _projectPageId = Convert.ToInt32(adapteGuiPageSection.GetGuiPageID(projectPageSectionId));
                _projectId     = Convert.ToInt32(adapterGuiproject.GetProjectID(_projectPageId));
                string description;
                int    status;
                if (testresult)
                {
                    description = string.Format("{0}={1}", Constants.LogTestStatus, "Passed");
                    status      = Constants.Passed;
                    if (testStatus.ContainsKey("PassedTests"))
                    {
                        testStatus["PassedTests"] = testStatus["PassedTests"] + 1;
                    }
                    else
                    {
                        testStatus.Add("PassedTests", 1);
                    }

                    //LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,testname + " Test Passed  with data row : " + inputDataRow, Constants.Passed, "0",_projectId,_projectPageId);
                }

                else
                {
                    //LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,testname + " Test Failed  with data row : " + inputDataRow, Constants.Failed, "0",_projectId,_projectPageId);
                    description = string.Format("{0}={1}", Constants.LogTestStatus, "Failed");
                    status      = Constants.Failed;
                    if (testStatus.ContainsKey("FailedTests"))
                    {
                        testStatus["FailedTests"] = testStatus["FailedTests"] + 1;
                    }
                    else
                    {
                        testStatus.Add("FailedTests", 1);
                    }
                }
                LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0, description + " with DataRow=" + inputDataRow, status, "0", _projectId, _projectPageId);
                return(testresult);
            }
            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);
                return(false);
            }
        }
示例#4
0
        internal bool ExecuteOneTest(string testId, string inputDataRow, IWebDriver driver)
        {
            if (testId == string.Empty)
            {
                MessageBox.Show("Select test first", "Applenium");
                return(false);
            }
            var sql = new Sql();

            DataTable dt                  = sql.GetDataTable(Constants.StrTestStepsToSelenium, testId);
            bool      testresult          = true;
            bool      recursivetestresult = true;
            var       adapterGuiproject   = new GuiProjectPageTableAdapter();
            var       adapterTest         = new TestTableAdapter();
            string    testname            = adapterTest.GetTestName(Convert.ToInt32(testId));

            LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                      testname + " Test Started  with data row : " + inputDataRow, Constants.Done, "0", _projectId,
                      _projectPageId);
            var    jp = new JsonParser();
            string skipTestOnStepFail = jp.ReadJson("SkipTestOnStepFail");


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

            if (inputDataRow != null)
            {
                if (inputDataRow.IndexOf("-", 0, StringComparison.Ordinal) >= 0)
                {
                    string[] rows = inputDataRow.Split('-');
                    for (int i = Convert.ToInt32(rows[0].ToString(CultureInfo.InvariantCulture));
                         i <= Convert.ToInt32(rows[1].ToString(CultureInfo.InvariantCulture));
                         i++)
                    {
                        testresult = ExecuteOneTest(testId, i.ToString(CultureInfo.InvariantCulture), driver);
                        if (testresult == false)
                        {
                            recursivetestresult = false;
                        }
                    }
                    return(recursivetestresult);
                }

                if (inputDataRow.IndexOf(",", 0, StringComparison.Ordinal) >= 0)
                {
                    string[] rows = inputDataRow.Split(',');
                    foreach (string key in rows)
                    {
                        testresult = ExecuteOneTest(testId, key, driver);
                        if (testresult == false)
                        {
                            recursivetestresult = false;
                        }
                    }

                    return(recursivetestresult);
                }
                foreach (DataRow testrow in dt.Rows)
                {
                    testrow["InputDataRow"] = inputDataRow;
                }
            }
            foreach (DataRow row in dt.Rows)
            {
                if (myInstance.StopExecution)
                {
                    testresult = false;
                    break;
                }
                bool stepresult = ExecuteStep(row, driver);
                if (stepresult == false)
                {
                    testresult = false;
                    if (skipTestOnStepFail == "yes")
                    {
                        LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                                  " Previous Step is Failed => Skipping test " + testname + " moving to next test : ",
                                  Constants.Error, "0", _projectId, _projectPageId);
                        break;
                    }
                }
            }
            adapterTest.GetTestName(Convert.ToInt32(testId));
            _projectPageId = Convert.ToInt32(adapterTest.GetProjectPageID(Convert.ToInt32(Convert.ToInt32(testId))));

            _projectId = Convert.ToInt32(adapterGuiproject.GetProjectID(_projectPageId));

            if (testresult)
            {
                LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                          testname + " Test Passed  with data row : " + inputDataRow, Constants.Passed, "0", _projectId,
                          _projectPageId);
            }
            else
            {
                LogResult(_runExecutionId, _batchId, _flowId, Convert.ToInt32(testId), 0,
                          testname + " Test Failed  with data row : " + inputDataRow, Constants.Failed, "0", _projectId,
                          _projectPageId);
                //LogFailiure(_runExecutionID, flowID, null, Convert.ToInt32(TestId), test_name, "Description in the step");
            }
            return(testresult);
        }