private bool HandleInputParameters(string fileName, ref string errorReason, Dictionary <string, object> inputParams, string dataTablePath) { try { string path = fileName; if (_runCancelled()) { QTPTestCleanup(); KillQtp(); return(false); } _qtpApplication.Open(path, true, false); _qtpParamDefs = _qtpApplication.Test.ParameterDefinitions; _qtpParameters = _qtpParamDefs.GetParameters(); // handle all parameters (index starts with 1 !!!) for (int i = 1; i <= _qtpParamDefs.Count; i++) { // input parameters if (_qtpParamDefs[i].InOut == qtParameterDirection.qtParamDirIn) { string paramName = _qtpParamDefs[i].Name; qtParameterType type = _qtpParamDefs[i].Type; // if the caller supplies value for a parameter we set it if (inputParams.ContainsKey(paramName)) { // first verify that the type is correct object paramValue = inputParams[paramName]; if (!VerifyParameterValueType(paramValue, type)) { ConsoleWriter.WriteErrLine(string.Format("Illegal input parameter type (skipped). param: '{0}'. expected type: '{1}'. actual type: '{2}'", paramName, Enum.GetName(typeof(qtParameterType), type), paramValue.GetType())); } else { _qtpParameters[paramName].Value = paramValue; } } } } // specify data table path if (dataTablePath != null) { _qtpApplication.Test.Settings.Resources.DataTablePath = dataTablePath; ConsoleWriter.WriteLine("Using external data table: " + dataTablePath); } } catch (Exception e) { errorReason = Resources.QtpRunError; return(false); } return(true); }
private bool HandleInputParameters(string fileName, ref string errorReason) { try { string path = fileName; if (_runCancelled()) { QTPTestCleanup(); KillQtp(); return(false); } _qtpApplication.Open(path, true, false); _qtpParamDefs = _qtpApplication.Test.ParameterDefinitions; _qtpParameters = _qtpParamDefs.GetParameters(); } catch (Exception e) { errorReason = Resources.QtpRunError; return(false); } return(true); }
private bool HandleInputParameters(string fileName, ref string errorReason) { try { string path = fileName; if (_runCancelled()) { QTPTestCleanup(); KillQtp(); return false; } _qtpApplication.Open(path, true, false); _qtpParamDefs = _qtpApplication.Test.ParameterDefinitions; _qtpParameters = _qtpParamDefs.GetParameters(); } catch (Exception e) { errorReason = Resources.QtpRunError; return false; } return true; }
private bool HandleInputParameters(string fileName, ref string errorReason, Dictionary <string, object> inputParams, TestInfo testInfo) { try { string path = fileName; if (_runCancelled()) { QTPTestCleanup(); KillQtp(); return(false); } _qtpApplication.Open(path, true, false); _qtpParamDefs = _qtpApplication.Test.ParameterDefinitions; _qtpParameters = _qtpParamDefs.GetParameters(); // handle all parameters (index starts with 1 !!!) for (int i = 1; i <= _qtpParamDefs.Count; i++) { // input parameters if (_qtpParamDefs[i].InOut == qtParameterDirection.qtParamDirIn) { string paramName = _qtpParamDefs[i].Name; qtParameterType type = _qtpParamDefs[i].Type; // if the caller supplies value for a parameter we set it if (inputParams.ContainsKey(paramName)) { // first verify that the type is correct object paramValue = inputParams[paramName]; if (!VerifyParameterValueType(paramValue, type)) { ConsoleWriter.WriteErrLine(string.Format("Illegal input parameter type (skipped). param: '{0}'. expected type: '{1}'. actual type: '{2}'", paramName, Enum.GetName(typeof(qtParameterType), type), paramValue.GetType())); } else { _qtpParameters[paramName].Value = paramValue; } } } } // specify data table path if (testInfo.DataTablePath != null) { _qtpApplication.Test.Settings.Resources.DataTablePath = testInfo.DataTablePath; ConsoleWriter.WriteLine("Using external data table: " + testInfo.DataTablePath); } // specify iteration mode if (testInfo.IterationInfo != null) { try { IterationInfo ii = testInfo.IterationInfo; if (!IterationInfo.AvailableTypes.Contains(ii.IterationMode)) { throw new ArgumentException(String.Format("Illegal iteration mode '{0}'. Available modes are : {1}", ii.IterationMode, string.Join(", ", IterationInfo.AvailableTypes))); } bool rangeMode = IterationInfo.RANGE_ITERATION_MODE.Equals(ii.IterationMode); if (rangeMode) { int start = Int32.Parse(ii.StartIteration); int end = Int32.Parse(ii.EndIteration); _qtpApplication.Test.Settings.Run.StartIteration = start; _qtpApplication.Test.Settings.Run.EndIteration = end; } _qtpApplication.Test.Settings.Run.IterationMode = testInfo.IterationInfo.IterationMode; ConsoleWriter.WriteLine("Using iteration mode: " + testInfo.IterationInfo.IterationMode + (rangeMode ? " " + testInfo.IterationInfo.StartIteration + "-" + testInfo.IterationInfo.EndIteration : "")); } catch (Exception e) { String msg = "Failed to parse 'Iterations' element . Using default iteration settings. Error : " + e.Message; ConsoleWriter.WriteLine(msg); } } } catch (Exception) { errorReason = Resources.QtpRunError; return(false); } return(true); }
private bool HandleInputParameters(string fileName, ref string errorReason, Dictionary<string, object> inputParams) { try { string path = fileName; if (_runCancelled()) { QTPTestCleanup(); KillQtp(); return false; } _qtpApplication.Open(path, true, false); _qtpParamDefs = _qtpApplication.Test.ParameterDefinitions; _qtpParameters = _qtpParamDefs.GetParameters(); // handle all parameters (index starts with 1 !!!) for (int i = 1; i <= _qtpParamDefs.Count; i++) { // input parameters if (_qtpParamDefs[i].InOut == qtParameterDirection.qtParamDirIn) { string paramName = _qtpParamDefs[i].Name; qtParameterType type = _qtpParamDefs[i].Type; // if the caller supplies value for a parameter we set it if (inputParams.ContainsKey(paramName)) { // first verify that the type is correct object paramValue = inputParams[paramName]; if (!VerifyParameterValueType(paramValue, type)) { ConsoleWriter.WriteErrLine(string.Format("Illegal input parameter type (skipped). param: '{0}'. expected type: '{1}'. actual type: '{2}'", paramName, Enum.GetName(typeof(qtParameterType), type), paramValue.GetType())); } else { _qtpParameters[paramName].Value = paramValue; } } } } } catch (Exception e) { errorReason = Resources.QtpRunError; return false; } return true; }