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); }
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); }
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); } }
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); }