public void TestQcTestRun() { AlmTestSetsRunner runner = new AlmTestSetsRunner("http://vmsoa22:8080/qcbin/", "sa", "", "DEFAULT", "Aaron", 100000, QcRunMode.RUN_LOCAL, null, new List<string> { "Aaron\\Amit" }); if (runner.Connected) runner.Run(); //runner.RunTestSet( // "Aaron", // "Amit", // 100000, // QcRunMode.RUN_LOCAL, // null); }
/// <summary> /// creates the correct runner according to the given type /// </summary> /// <param name="runType"></param> /// <param name="ciParams"></param> IAssetRunner CreateRunner(TestStorageType runType, JavaProperties ciParams) { IAssetRunner runner = null; switch (runType) { case TestStorageType.Alm: //check that all required parameters exist foreach (string param1 in requiredParamsForQcRun) { if (!_ciParams.ContainsKey(param1)) { ConsoleWriter.WriteLine(string.Format(Resources.LauncherParamRequired, param1)); return null; } } //parse params that need parsing double dblQcTimeout = int.MaxValue; if (!double.TryParse(_ciParams["almTimeout"], out dblQcTimeout)) { ConsoleWriter.WriteLine(Resources.LauncherTimeoutNotNumeric); dblQcTimeout = int.MaxValue; } ConsoleWriter.WriteLine(string.Format(Resources.LuancherDisplayTimout, dblQcTimeout)); QcRunMode enmQcRunMode = QcRunMode.RUN_LOCAL; if (!Enum.TryParse<QcRunMode>(_ciParams["almRunMode"], true, out enmQcRunMode)) { ConsoleWriter.WriteLine(Resources.LauncherIncorrectRunmode); enmQcRunMode = QcRunMode.RUN_LOCAL; } ConsoleWriter.WriteLine(string.Format(Resources.LauncherDisplayRunmode, enmQcRunMode.ToString())); //go over testsets in the parameters, and collect them List<string> sets = GetParamsWithPrefix("TestSet"); if (sets.Count == 0) { ConsoleWriter.WriteLine(Resources.LauncherNoTests); return null; } //create an Alm runner runner = new AlmTestSetsRunner(_ciParams["almServerUrl"], _ciParams["almUserName"], Decrypt(_ciParams["almPassword"], secretkey), _ciParams["almDomain"], _ciParams["almProject"], dblQcTimeout, enmQcRunMode, _ciParams["almRunHost"], sets); break; case TestStorageType.FileSystem: //get the tests IEnumerable<string> tests = GetParamsWithPrefix("Test"); IEnumerable<string> jenkinsEnvVariablesWithCommas = GetParamsWithPrefix("JenkinsEnv"); Dictionary<string, string> jenkinsEnvVariables = new Dictionary<string,string>(); foreach (string var in jenkinsEnvVariablesWithCommas) { string[] nameVal = var.Split(",;".ToCharArray()); jenkinsEnvVariables.Add(nameVal[0], nameVal[1]); } //parse the timeout into a TimeSpan TimeSpan timeout = TimeSpan.MaxValue; if (_ciParams.ContainsKey("fsTimeout")) { string strTimoutInSeconds = _ciParams["fsTimeout"]; if (strTimoutInSeconds.Trim() != "-1") { int intTimoutInSeconds = 0; int.TryParse(strTimoutInSeconds, out intTimoutInSeconds); timeout = TimeSpan.FromSeconds(intTimoutInSeconds); } } ConsoleWriter.WriteLine("Launcher timeout is " + timeout.ToString(@"dd\:\:hh\:mm\:ss")); //LR specific values: //default values are set by JAVA code, in com.hp.application.automation.tools.model.RunFromFileSystemModel.java int pollingInterval = 30; if (_ciParams.ContainsKey("controllerPollingInterval")) pollingInterval = int.Parse(_ciParams["controllerPollingInterval"]); TimeSpan perScenarioTimeOutMinutes = TimeSpan.MaxValue; if (_ciParams.ContainsKey("PerScenarioTimeOut")) { string strTimoutInMinutes = _ciParams["PerScenarioTimeOut"]; ConsoleWriter.WriteLine("reading PerScenarioTimeout: "+strTimoutInMinutes); if (strTimoutInMinutes.Trim() != "-1") { int intTimoutInMinutes = 0; if (int.TryParse(strTimoutInMinutes, out intTimoutInMinutes)) perScenarioTimeOutMinutes = TimeSpan.FromMinutes(intTimoutInMinutes); ConsoleWriter.WriteLine("PerScenarioTimeout: "+perScenarioTimeOutMinutes+" minutes"); } } ConsoleWriter.WriteLine("PerScenarioTimeout: " + perScenarioTimeOutMinutes.ToString(@"dd\:\:hh\:mm\:ss") + " minutes"); char[] delim = { '\n' }; List<string> ignoreErrorStrings = new List<string>(); if (_ciParams.ContainsKey("ignoreErrorStrings")) { ignoreErrorStrings.AddRange(_ciParams["ignoreErrorStrings"].Split(delim, StringSplitOptions.RemoveEmptyEntries)); } if (tests == null || tests.Count() == 0) { WriteToConsole(Resources.LauncherNoTestsFound); } List<string> validTests = Helper.ValidateFiles(tests); if (tests != null && tests.Count() > 0 && validTests.Count == 0) { ConsoleWriter.WriteLine(Resources.LauncherNoValidTests); return null; } //--MC connection info McConnectionInfo mcConnectionInfo = new McConnectionInfo(); if (_ciParams.ContainsKey("MobileHostAddress")) { string mcServerUrl = _ciParams["MobileHostAddress"]; if (!string.IsNullOrEmpty(mcServerUrl) ) { //url is something like http://xxx.xxx.xxx.xxx:8080 string[] strArray = mcServerUrl.Split(new Char[] { ':' }); if (strArray.Length == 3) { mcConnectionInfo.MobileHostAddress = strArray[1].Replace("/", ""); mcConnectionInfo.MobileHostPort = strArray[2]; } //mc username if (_ciParams.ContainsKey("MobileUserName")) { string mcUsername = _ciParams["MobileUserName"]; if (!string.IsNullOrEmpty(mcUsername)) { mcConnectionInfo.MobileUserName = mcUsername; } } //mc password if (_ciParams.ContainsKey("MobilePassword")) { string mcPassword = _ciParams["MobilePassword"]; if (!string.IsNullOrEmpty(mcPassword)) { mcConnectionInfo.MobilePassword = Decrypt(mcPassword, secretkey); } } //ssl if (_ciParams.ContainsKey("MobileUseSSL")) { string mcUseSSL = _ciParams["MobileUseSSL"]; if (!string.IsNullOrEmpty(mcUseSSL)) { mcConnectionInfo.MobileUseSSL = int.Parse(mcUseSSL); } } //Proxy enabled flag if (_ciParams.ContainsKey("MobileUseProxy")) { string useProxy = _ciParams["MobileUseProxy"]; if (!string.IsNullOrEmpty(useProxy)) { mcConnectionInfo.MobileUseProxy = int.Parse(useProxy); } } //Proxy type if (_ciParams.ContainsKey("MobileProxyType")) { string proxyType = _ciParams["MobileProxyType"]; if (!string.IsNullOrEmpty(proxyType)) { mcConnectionInfo.MobileProxyType = int.Parse(proxyType); } } //proxy address if (_ciParams.ContainsKey("MobileProxySetting_Address")) { string proxyAddress = _ciParams["MobileProxySetting_Address"]; if (!string.IsNullOrEmpty(proxyAddress)) { // data is something like "16.105.9.23:8080" string[] strArray4ProxyAddr = proxyAddress.Split(new Char[] { ':' }); if (strArray.Length == 2) { mcConnectionInfo.MobileProxySetting_Address = strArray4ProxyAddr[0]; mcConnectionInfo.MobileProxySetting_Port = int.Parse(strArray4ProxyAddr[1]); } } } //Proxy authentication if (_ciParams.ContainsKey("MobileProxySetting_Authentication")) { string proxyAuthentication = _ciParams["MobileProxySetting_Authentication"]; if (!string.IsNullOrEmpty(proxyAuthentication)) { mcConnectionInfo.MobileProxySetting_Authentication = int.Parse(proxyAuthentication); } } //Proxy username if (_ciParams.ContainsKey("MobileProxySetting_UserName")) { string proxyUsername = _ciParams["MobileProxySetting_UserName"]; if (!string.IsNullOrEmpty(proxyUsername)) { mcConnectionInfo.MobileProxySetting_UserName = proxyUsername; } } //Proxy password if (_ciParams.ContainsKey("MobileProxySetting_Password")) { string proxyPassword = _ciParams["MobileProxySetting_Password"]; if (!string.IsNullOrEmpty(proxyPassword)) { mcConnectionInfo.MobileProxySetting_Password = Decrypt(proxyPassword, secretkey); } } } } // other mobile info string mobileinfo = ""; if (_ciParams.ContainsKey("mobileinfo")) { mobileinfo = _ciParams["mobileinfo"]; } runner = new FileSystemTestsRunner(validTests, timeout, pollingInterval, perScenarioTimeOutMinutes, ignoreErrorStrings, jenkinsEnvVariables, mcConnectionInfo, mobileinfo); break; default: runner = null; break; } return runner; }
/// <summary> /// creates the correct runner according to the given type /// </summary> /// <param name="runType"></param> /// <param name="ciParams"></param> IAssetRunner CreateRunner(TestStorageType runType, JavaProperties ciParams) { IAssetRunner runner = null; switch (runType) { case TestStorageType.Alm: //check that all required parameters exist foreach (string param1 in requiredParamsForQcRun) { if (!_ciParams.ContainsKey(param1)) { ConsoleWriter.WriteLine(string.Format(Resources.LauncherParamRequired, param1)); return null; } } //parse params that need parsing double dblQcTimeout = int.MaxValue; if (!double.TryParse(_ciParams["almTimeout"], out dblQcTimeout)) { ConsoleWriter.WriteLine(Resources.LauncherTimeoutNotNumeric); dblQcTimeout = int.MaxValue; } ConsoleWriter.WriteLine(string.Format(Resources.LuancherDisplayTimout, dblQcTimeout)); QcRunMode enmQcRunMode = QcRunMode.RUN_LOCAL; if (!Enum.TryParse<QcRunMode>(_ciParams["almRunMode"], true, out enmQcRunMode)) { ConsoleWriter.WriteLine(Resources.LauncherIncorrectRunmode); enmQcRunMode = QcRunMode.RUN_LOCAL; } ConsoleWriter.WriteLine(string.Format(Resources.LauncherDisplayRunmode, enmQcRunMode.ToString())); //go over testsets in the parameters, and collect them List<string> sets = GetParamsWithPrefix("TestSet"); if (sets.Count == 0) { ConsoleWriter.WriteLine(Resources.LauncherNoTests); return null; } //create an Alm runner runner = new AlmTestSetsRunner(_ciParams["almServerUrl"], _ciParams["almUserName"], Decrypt(_ciParams["almPassword"], secretkey), _ciParams["almDomain"], _ciParams["almProject"], dblQcTimeout, enmQcRunMode, _ciParams["almRunHost"], sets); break; case TestStorageType.FileSystem: //get the tests IEnumerable<string> tests = GetParamsWithPrefix("Test"); IEnumerable<string> jenkinsEnvVariablesWithCommas = GetParamsWithPrefix("JenkinsEnv"); Dictionary<string, string> jenkinsEnvVariables = new Dictionary<string,string>(); foreach (string var in jenkinsEnvVariablesWithCommas) { string[] nameVal = var.Split(",;".ToCharArray()); jenkinsEnvVariables.Add(nameVal[0], nameVal[1]); } //parse the timeout into a TimeSpan TimeSpan timeout = TimeSpan.MaxValue; if (_ciParams.ContainsKey("fsTimeout")) { string strTimoutInSeconds = _ciParams["fsTimeout"]; if (strTimoutInSeconds.Trim() != "-1") { int intTimoutInSeconds = 0; int.TryParse(strTimoutInSeconds, out intTimoutInSeconds); timeout = TimeSpan.FromSeconds(intTimoutInSeconds); } } ConsoleWriter.WriteLine("Launcher timeout is " + timeout.ToString(@"dd\:\:hh\:mm\:ss")); //LR specific values: //default values are set by JAVA code, in com.hp.application.automation.tools.model.RunFromFileSystemModel.java int pollingInterval = 30; if (_ciParams.ContainsKey("controllerPollingInterval")) pollingInterval = int.Parse(_ciParams["controllerPollingInterval"]); TimeSpan perScenarioTimeOutMinutes = TimeSpan.MaxValue; if (_ciParams.ContainsKey("PerScenarioTimeOut")) { string strTimoutInMinutes = _ciParams["PerScenarioTimeOut"]; ConsoleWriter.WriteLine("reading PerScenarioTimeout: "+strTimoutInMinutes); if (strTimoutInMinutes.Trim() != "-1") { int intTimoutInMinutes = 0; if (int.TryParse(strTimoutInMinutes, out intTimoutInMinutes)) perScenarioTimeOutMinutes = TimeSpan.FromMinutes(intTimoutInMinutes); ConsoleWriter.WriteLine("PerScenarioTimeout: "+perScenarioTimeOutMinutes+" minutes"); } } ConsoleWriter.WriteLine("PerScenarioTimeout: " + perScenarioTimeOutMinutes.ToString(@"dd\:\:hh\:mm\:ss") + " minutes"); char[] delim = { '\n' }; List<string> ignoreErrorStrings = new List<string>(); if (_ciParams.ContainsKey("ignoreErrorStrings")) { ignoreErrorStrings.AddRange(_ciParams["ignoreErrorStrings"].Split(delim, StringSplitOptions.RemoveEmptyEntries)); } if (tests == null || tests.Count() == 0) { WriteToConsole(Resources.LauncherNoTestsFound); } List<string> validTests = Helper.ValidateFiles(tests); if (tests != null && tests.Count() > 0 && validTests.Count == 0) { ConsoleWriter.WriteLine(Resources.LauncherNoValidTests); return null; } runner = new FileSystemTestsRunner(validTests, timeout, pollingInterval, perScenarioTimeOutMinutes, ignoreErrorStrings, jenkinsEnvVariables); break; default: runner = null; break; } return runner; }