public PCRunEventLog GetRunEventLog(int runId) { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { return(_pcRestProxy.GetRunEventLog(runId, ref pcErrorResponse)); } catch (Exception e) { _fileLog.Write(LogMessageType.Error, string.Format("GetRunEventLog failed. Error: " + e.Message)); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, string.Format("GetRunEventLog failed, ExceptionMessage: {0}, ErrorCode: {1}", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } } return(null); }
public string GetTestName() { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { PCTest pcTest = _pcRestProxy.GetTestData(int.Parse(_pcModel.TestId), ref pcErrorResponse); return(pcTest.Name); } catch (Exception e) { _fileLog.Write(LogMessageType.Error, string.Format("getTestName failed, reason: {0}", e.Message)); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, string.Format("GetTestName failed, ExceptionMessage: {0}, ErrorCode: {1}", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } return(""); } }
public bool AddRunToTrendReport(int runId, String trendReportId) { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { if (trendReportId == "0") { pcErrorResponse.ErrorCode = 99999543; pcErrorResponse.ExceptionMessage = "The test is not associated with any trend Report"; _fileLog.Write(LogMessageType.Info, "Error: " + pcErrorResponse.ExceptionMessage); } else { PCTrendReportRequest pcTrendReportRequest = new PCTrendReportRequest(_pcModel.Project, runId, null); _fileLog.Write(LogMessageType.Info, "Adding run: " + runId + " to trend report: " + trendReportId); _pcRestProxy.UpdateTrendReport(trendReportId, pcTrendReportRequest, ref pcErrorResponse); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Info, "Error: " + pcErrorResponse.ExceptionMessage); } else { _fileLog.Write(LogMessageType.Info, "Publishing run: " + runId + " on trend report: " + trendReportId); } } } catch (Exception e) { _fileLog.Write(LogMessageType.Error, "Failed to add run to trend report: Problem connecting to PC Server. " + e.Message); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, string.Format("AddRunToTrendReport failed, ExceptionMessage: {0}, ErrorCode: {1}", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } } return(pcErrorResponse.ErrorCode == 0); }
public bool Login() { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { _fileLog.Write(LogMessageType.Info, string.Format("Trying to login: [PCServer: '{0}://{1}', User: '******']", _pcModel.isHTTPSProtocol(), _pcModel.PCServerAndPort, _pcModel.UserName)); _loggedIn = _pcRestProxy.Authenticate(_pcModel.UserName, _pcModel.Password, ref pcErrorResponse); } catch (Exception e) { _fileLog.Write(LogMessageType.Error, "Error: " + e.Message); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, "\n ExceptionMessage: " + pcErrorResponse.ExceptionMessage + "\n ErrorCode: " + pcErrorResponse.ErrorCode.ToString()); } } if (!_loggedIn && pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Info, "\n ExceptionMessage: " + pcErrorResponse.ExceptionMessage + "\n ErrorCode: " + pcErrorResponse.ErrorCode.ToString()); } _fileLog.Write(LogMessageType.Info, string.Format("Login {0}", _loggedIn ? "succeeded\n" : "failed\n")); return(_loggedIn); }
public string PublishRunReport(int runId, string reportDirectory) { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { PCRunResults runResultsList = _pcRestProxy.GetRunResults(runId, ref pcErrorResponse); if (runResultsList.ResultsList != null) { foreach (PCRunResult result in runResultsList.ResultsList) { if (result.Name.Equals(PCBuilder.PC_REPORT_ARCHIVE_NAME)) { string reportArchiveFullPath = Path.Combine(reportDirectory, PCBuilder.PC_REPORT_ARCHIVE_NAME); _fileLog.Write(LogMessageType.Info, "Publishing analysis report:"); bool downloadSucceeded = _pcRestProxy.GetRunResultData(runId, result.ID, reportArchiveFullPath, ref pcErrorResponse); if (downloadSucceeded && File.Exists(reportArchiveFullPath)) { _fileLog.Write(LogMessageType.Info, "Result file downloaded successfully to: " + reportArchiveFullPath); string extractedReportDirectory = reportDirectory; if (!Directory.Exists(extractedReportDirectory)) { Directory.CreateDirectory(extractedReportDirectory); } if (Directory.Exists(reportDirectory)) { WaitForUnlockedFile(reportArchiveFullPath); ZipFile.ExtractToDirectory(reportArchiveFullPath, extractedReportDirectory); } else { _fileLog.Write(LogMessageType.Info, "Failed to create directory for extracting the report"); } string reportFile = Path.Combine(extractedReportDirectory, PCBuilder.PC_REPORT_FILENAME); if (File.Exists(reportFile)) { _fileLog.Write(LogMessageType.Info, "Report file extracted and available from: " + reportFile + "\n"); return(reportFile); } else { _fileLog.Write(LogMessageType.Info, "Failed to extract report\n"); } } else { _fileLog.Write(LogMessageType.Info, "Failed to download\\create report\n"); } } } } _fileLog.Write(LogMessageType.Info, "Failed to get run report\n"); } catch (Exception ex) { _fileLog.Write(LogMessageType.Error, "failed to get run report\n" + ex.Message); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, string.Format("PublishRunReport failed, ExceptionMessage: {0}, ErrorCode: {1}\n", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } } return(""); }
private int GetCorrectTestInstanceID(int testID) { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); if (!TestExist(testID, ref pcErrorResponse)) { _fileLog.Write(LogMessageType.Info, string.Format("Error: {0}", pcErrorResponse.ExceptionMessage)); return(0); } if (_pcModel.AutoTestInstance) { try { _fileLog.Write(LogMessageType.Info, "Searching for available Test Instance"); PCTestInstances pcTestInstances = _pcRestProxy.GetTestInstancesByTestId(testID, ref pcErrorResponse); int testInstanceID = 0; if (pcTestInstances != null && pcTestInstances.TestInstancesList != null && pcTestInstances.TestInstancesList.Count > 0) { PCTestInstance pcTestInstance = pcTestInstances.TestInstancesList[pcTestInstances.TestInstancesList.Count - 1]; testInstanceID = pcTestInstance.TestInstanceID; _fileLog.Write(LogMessageType.Info, "Found test instance ID: " + testInstanceID + "\n"); } else { _fileLog.Write(LogMessageType.Info, "Could not find available TestInstanceID, Creating Test Instance."); _fileLog.Write(LogMessageType.Info, "Searching for available TestSet"); // Get a random TestSet PCTestSets pcTestSets = _pcRestProxy.GetAllTestSets(ref pcErrorResponse); if (pcTestSets != null && pcTestSets.PCTestSetsList != null) { PCTestSet pcTestSet = pcTestSets.PCTestSetsList[pcTestSets.PCTestSetsList.Count - 1]; int testSetID = pcTestSet.TestSetID; _fileLog.Write(LogMessageType.Info, string.Format("Creating Test Instance with testID: {0} and TestSetID: {1}", testID, testSetID)); testInstanceID = _pcRestProxy.CreateTestInstance(testID, testSetID, ref pcErrorResponse); if (testInstanceID == 0) { _fileLog.Write(LogMessageType.Info, string.Format("Test Instance could not be created for Test ID '", testID + "'")); } else { _fileLog.Write(LogMessageType.Info, string.Format("Test Instance with ID : {0} has been created successfully.", testInstanceID)); } } else { string msg = "No TestSetID available in project, please create a testset from LoadRunner Enterprise UI"; _fileLog.Write(LogMessageType.Info, msg); } } return(testInstanceID); } catch (Exception ex) { _fileLog.Write(LogMessageType.Error, string.Format("getCorrectTestInstanceID failed, reason: {0}", ex)); if (pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, string.Format("getCorrectTestInstanceID failed, ExceptionMessage: {0}, ErrorCode: {1}", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } return(int.Parse(null)); } } return(int.Parse(_pcModel.TestInstanceId)); }
public int StartRun() { PCErrorResponse pcErrorResponse = new PCErrorResponse("", 0); try { int testID = int.Parse(_pcModel.TestId); int testInstance = GetCorrectTestInstanceID(testID); if (testInstance == 0) { return(0); } SetCorrectTrendReportID(); //if(_pcModel) string msg = string.Format("Executing Load Test:\n====================\nTest ID: {0} \nTest Instance ID: {1} \nTimeslot Duration: {2} \nPost Run Action: {3} \nUse VUDS: {4}\n====================\n", int.Parse(_pcModel.TestId), testInstance, _pcModel.PCTimeslotDuration, _pcModel.PCPostRunActionsRequest.PostRunAction, _pcModel.isVudsMode()); _fileLog.Write(LogMessageType.Info, msg); PCRunResponse response = _pcRestProxy.StartRun(testID, testInstance, _pcModel.PCTimeslotDuration, ref pcErrorResponse, _pcModel.PCPostRunActionsRequest.PostRunAction, _pcModel.isVudsMode()); if (response == null && pcErrorResponse != null) { _fileLog.Write(LogMessageType.Info, string.Format("{0}. {1}Code: {2}", pcErrorResponse.ExceptionMessage, !"RepeatWithParameters".Equals(_pcModel.TimeslotRepeat) ? "Error " : "", pcErrorResponse.ErrorCode)); if ("RepeatWithParameters".Equals(_pcModel.TimeslotRepeat)) { int count = 1; while (count < Int32.Parse(_pcModel.TimeslotRepeatAttempts) && response == null) { count++; _fileLog.Write(LogMessageType.Info, string.Format("Repeating timeslot - Attempt # {0}. Waiting {1} minute(s) before trying once again to execute the test.", count, _pcModel.TimeslotRepeatDelay)); System.Threading.Thread.Sleep(Int32.Parse(_pcModel.TimeslotRepeatDelay) * 1000 * 60); _fileLog.Write(LogMessageType.Info, string.Format("Repeating timeslot - Attempt # {0}. Executing the test:", count)); response = _pcRestProxy.StartRun(testID, testInstance, _pcModel.PCTimeslotDuration, ref pcErrorResponse, _pcModel.PCPostRunActionsRequest.PostRunAction, _pcModel.isVudsMode()); if (response == null && pcErrorResponse != null) { _fileLog.Write(LogMessageType.Info, string.Format("Repeating timeslot - Attempt # {0}. Exception - {1}, Code: {2}.", count, pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); _fileLog.Write(LogMessageType.Info, string.Format("Repeating timeslot - Attempt # {0}. {1} remaining attempt(s).", count, Int32.Parse(_pcModel.TimeslotRepeatAttempts) - count)); } if (count == Int32.Parse(_pcModel.TimeslotRepeatAttempts) && response == null) { _fileLog.Write(LogMessageType.Info, string.Format("All attempts to create a timeslot failed. Exception - {0}, Error Code: {1}.", pcErrorResponse.ExceptionMessage, pcErrorResponse.ErrorCode)); } } } return(0); } _fileLog.Write(LogMessageType.Info, string.Format("Run started (TestID: {0}, RunID: {1}, TimeslotID: {2})\n", response.TestID, response.ID, response.TimeslotID)); if (response.ID > 0) { return(response.ID); } } catch (Exception ex) { if (!_loggedIn && pcErrorResponse.ErrorCode > 0) { _fileLog.Write(LogMessageType.Error, "\n ExceptionMessage: " + pcErrorResponse.ExceptionMessage + "\n ErrorCode: " + pcErrorResponse.ErrorCode.ToString()); } _fileLog.Write(LogMessageType.Error, ex.Message); } return(0); }