/// <summary> /// Should be deleted after switch will be fully done to serialized objects /// </summary> public ReportInfo(ProjEnvironment Env, BusinessFlow BF, GingerRunner GR = null) // to remove after discussion !!! { mProjEnvironment = Env; mBFESs = new ObservableList <BusinessFlowExecutionSummary>(); BusinessFlowExecutionSummary BFES = new BusinessFlowExecutionSummary(); BFES.BusinessFlowName = BF.Name; BFES.BusinessFlowRunDescription = BF.RunDescription; BFES.Status = BF.RunStatus; BFES.Activities = BF.Activities.Count; BFES.Actions = BF.GetActionsCount(); BFES.Validations = BF.GetValidationsCount(); BFES.ExecutionVariabeles = BF.GetBFandActivitiesVariabeles(true); BFES.BusinessFlow = BF; BFES.Selected = true; if (GR != null) { BFES.BusinessFlowExecLoggerFolder = Path.Combine(GR.ExecutionLoggerManager.ExecutionLogfolder, BF.ExecutionLogFolder); } if (mBFESs != null) { mBFESs.Clear(); } mBFESs.Add(BFES); mGingersMultiRun = null; // Set all General info if (BF.Elapsed != null) { TotalExecutionTime = TimeSpan.FromSeconds((long)BF.ElapsedSecs); } else { TotalExecutionTime = new TimeSpan(0); } ExecutionElapsedTime = TotalExecutionTime; DateCreated = DateTime.Now.ToString(); ExecutionEnv = mProjEnvironment.Name; DateCreatedShort = DateTime.Now.ToString("MM/dd"); }
public static List <AnalyzerItemBase> Analyze(GingerRunner GR, ObservableList <ApplicationPlatform> solutionApplicationPlatforms) { List <AnalyzerItemBase> IssuesList = new List <AnalyzerItemBase>(); // check that we have BFs if (GR.BusinessFlows.Count() == 0) { AnalyzeGingerRunner AGR = CreateNewIssue(IssuesList, GR); AGR.Description = "Runner is missing " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlows); AGR.Details = "Nothing to run"; AGR.HowToFix = "Add " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlows) + "to the Runner or delete the Runner"; AGR.CanAutoFix = AnalyzerItemBase.eCanFix.No; AGR.IssueType = eType.Warning; AGR.Impact = "Waste of resources"; AGR.Severity = eSeverity.Medium; AGR.Selected = false; } //check all Agents are configured foreach (ApplicationAgent AA in GR.ApplicationAgents) { if (string.IsNullOrEmpty(AA.AgentName)) { if (GR.SolutionApplications.Where(x => (x.AppName == AA.AppName && x.Platform == ePlatformType.NA)).FirstOrDefault() != null) { continue; } //create error AnalyzeGingerRunner AGR = CreateNewIssue(IssuesList, GR); AGR.ItemParent = GR.Name; AGR.Description = "Target Application is not mapped to an Agent"; AGR.Details = string.Format("The '{0}' Runner '{1}' Target Application is not mapped to any Agent", GR.Name, AA.AppName); AGR.HowToFix = "Map the Target Application to an Agent"; AGR.CanAutoFix = AnalyzerItemBase.eCanFix.No; AGR.IssueType = eType.Error; AGR.Impact = "Execution will fail."; AGR.Severity = eSeverity.Critical; AGR.Selected = false; } } return(IssuesList); }
public static void ClassInit(TestContext context) { TargetFrameworkHelper.Helper = new DotNetFrameworkHelper(); mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "BF Non-Driver Action Test"; mBF.Active = true; Activity activity = new Activity(); mBF.Activities.Add(activity); mBF.CurrentActivity = activity; mGR = new GingerRunner(); mGR.Executor = new GingerExecutionEngine(mGR); mGR.Executor.CurrentSolution = new Ginger.SolutionGeneral.Solution(); mGR.Executor.CurrentBusinessFlow = mBF; mGR.Executor.BusinessFlows.Add(mBF); Reporter.ToLog(eLogLevel.DEBUG, "Creating the GingerCoreNET WorkSpace"); WorkSpaceEventHandler WSEH = new WorkSpaceEventHandler(); WorkSpace.Init(WSEH); WorkSpace.Instance.SolutionRepository = GingerSolutionRepository.CreateGingerSolutionRepository(); if (((Solution)mGR.Executor.CurrentSolution).SolutionOperations == null) { ((Solution)mGR.Executor.CurrentSolution).SolutionOperations = new SolutionOperations((Solution)mGR.Executor.CurrentSolution); } if (WorkSpace.Instance.Solution == null) { WorkSpace.Instance.Solution = (Solution)mGR.Executor.CurrentSolution; } if (WorkSpace.Instance.Solution.SolutionOperations == null) { WorkSpace.Instance.Solution.SolutionOperations = new SolutionOperations(WorkSpace.Instance.Solution); } }
private void RunBusinessFlow() { Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + "Name?"); string BizFlowName = Console.ReadLine(); BusinessFlow businessFlow = (from x in SR.GetAllRepositoryItems <BusinessFlow>() where x.Name == BizFlowName select x).SingleOrDefault(); if (businessFlow == null) { Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " not found"); return; } GingerRunner gingerRunner = new GingerRunner(); gingerRunner.RunBusinessFlow(businessFlow, true); Console.WriteLine("Execution Completed"); Console.WriteLine("----------------------------"); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + ": " + businessFlow.Name); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " Description: " + businessFlow.Description); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " Status: " + businessFlow.RunStatus); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.Activities) + " Count: " + businessFlow.Activities.Count); Console.WriteLine("----------------------------"); foreach (Activity activity in businessFlow.Activities) { Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.Activity) + ": " + activity.ActivityName + " Status: " + activity.Status); Console.WriteLine("Actions Found:" + activity.Acts.Count); foreach (Act act in activity.Acts) { Console.WriteLine("------"); Console.WriteLine("Action:" + act.Description); Console.WriteLine("Description:" + act.ActionDescription); Console.WriteLine("Type:" + act.ActionType); Console.WriteLine("Class:" + act.ActClass); Console.WriteLine("Status:" + act.Status); Console.WriteLine("Error:" + act.Error); Console.WriteLine("ExInfo:" + act.ExInfo); } Console.WriteLine("----------"); } }
public override void SetReportRunner(GingerRunner gingerRunner, GingerReport gingerReport, ExecutionLoggerManager.ParentGingerData gingerData, Context mContext, string filename, int runnerCount) { base.SetReportRunner(gingerRunner, gingerReport, gingerData, mContext, filename, runnerCount); LiteDbRunner runner = new LiteDbRunner(); runner.BusinessFlowsColl.AddRange(liteDbBFList); if (lastRunnertStatus == eRunStatus.Stopped && gingerRunner.RunsetStatus != eRunStatus.Stopped && runner.BusinessFlowsColl.Count > gingerRunner.BusinessFlows.Count) { runner.BusinessFlowsColl.RemoveRange(0, gingerRunner.BusinessFlows.Count); } runner.SetReportData(gingerReport); SaveObjToReporsitory(runner, liteDbManager.NameInDb <LiteDbRunner>()); if (ExecutionLoggerManager.RunSetReport == null) { ExecutionLoggerManager.RunSetReport = new RunSetReport(); ExecutionLoggerManager.RunSetReport.GUID = Guid.NewGuid().ToString(); } ExecutionLoggerManager.RunSetReport.liteDbRunnerList.Add(runner); liteDbBFList.Clear(); lastRunnertStatus = gingerRunner.RunsetStatus; }
public static AccountReportRunner MapRunnerEndData(GingerRunner gingerRunner, Context context) { AccountReportRunner accountReportRunner = new AccountReportRunner(); accountReportRunner.Id = gingerRunner.Executor.ExecutionId; accountReportRunner.Name = gingerRunner.Name; accountReportRunner.EntityId = gingerRunner.Guid; accountReportRunner.AccountReportDbRunSetId = gingerRunner.Executor.ParentExecutionId; accountReportRunner.ExecutionId = (Guid)WorkSpace.Instance.RunsetExecutor.RunSetConfig.ExecutionID; accountReportRunner.Name = gingerRunner.Name; accountReportRunner.ElapsedEndTimeStamp = gingerRunner.Executor.Elapsed; accountReportRunner.EndTimeStamp = gingerRunner.Executor.EndTimeStamp; //accountReportRunner.RunStatus = gingerRunner.Status.ToString();//SetStatus(BusinessFlowsColl); // check if need to calculate based on businessflows status data accountReportRunner.RunStatus = GetRunnerStatus((GingerExecutionEngine)gingerRunner.Executor).ToString(); SetRunnerChildCounts((GingerExecutionEngine)gingerRunner.Executor, accountReportRunner); accountReportRunner.ExecutionRate = string.Format("{0:F1}", CalculateExecutionOrPassRate(accountReportRunner.ChildExecutedItemsCount[(int)_HTMLReportConfig.ExecutionStatisticsCountBy].Value, accountReportRunner.ChildExecutableItemsCount[(int)_HTMLReportConfig.ExecutionStatisticsCountBy].Value)); accountReportRunner.PassRate = string.Format("{0:F1}", CalculateExecutionOrPassRate(accountReportRunner.ChildPassedItemsCount[(int)_HTMLReportConfig.ExecutionStatisticsCountBy].Value, accountReportRunner.ChildExecutedItemsCount[(int)_HTMLReportConfig.ExecutionStatisticsCountBy].Value)); return(accountReportRunner); }
public void TestInitialize() { mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "BF Status Result Test"; mBF.Active = true; mBF.TargetApplications.Add(new TargetApplication() { AppName = "SCM" }); VariableString v1 = new VariableString() { Name = "v1", InitialStringValue = "1" }; mBF.AddVariable(v1); mGR = new GingerRunner(); mGR.CurrentSolution = new Ginger.SolutionGeneral.Solution(); mGR.GiveUserFeedback = true; Agent a = new Agent(); a.DriverType = Agent.eDriverType.SeleniumChrome; mGR.SolutionAgents = new ObservableList <IAgent>(); mGR.SolutionAgents.Add(a); mGR.SolutionApplications = new ObservableList <ApplicationPlatform>(); mGR.SolutionApplications.Add(new ApplicationPlatform() { AppName = "SCM", Platform = ePlatformType.Web }); mGR.ApplicationAgents.Add(new ApplicationAgent() { AppName = "SCM", Agent = a }); mGR.BusinessFlows.Add(mBF); }
private void RunBusinessFlow() { Console.WriteLine("Business Flow Name?"); string BizFlowName = Console.ReadLine(); BusinessFlow businessFlow = (from x in SR.GetAllRepositoryItems <BusinessFlow>() where x.Name == BizFlowName select x).SingleOrDefault(); if (businessFlow == null) { Console.WriteLine("Business Flow not found"); return; } GingerRunner gingerRunner = new GingerRunner(); gingerRunner.RunBusinessFlow(businessFlow, true); Console.WriteLine("Execution completed"); Console.WriteLine("BF Status: " + businessFlow.Status); foreach (Activity activity in businessFlow.Activities) { Console.WriteLine("Activity: " + activity.ActivityName + " Status: " + activity.Status); } }
public NewAutomatePage() { InitializeComponent(); mGingerRunner = App.AutomateTabGingerRunner; // Temp - this page need to get BF as param BusinessFlow BusinessFlow = App.BusinessFlow; mBusinessFlow = BusinessFlow; //Binding BusinessFlowNameLabel.BindControl(BusinessFlow, nameof(BusinessFlow.Name)); // TODO: break it down to each folder and show parts with hyperlink FlowPathLabel.Content = BusinessFlow.ContainingFolder; EnvironmentComboBox.ItemsSource = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <ProjEnvironment>(); EnvironmentComboBox.DisplayMemberPath = nameof(ProjEnvironment.Name); if (BusinessFlow.CurrentActivity == null && BusinessFlow.Activities.Count > 0) { BusinessFlow.CurrentActivity = BusinessFlow.Activities[0]; } FlowDiagramFrmae.Content = new BusinessFlowDiagramPage(BusinessFlow); ActivitiesList.ItemsSource = BusinessFlow.Activities; //TODO: Move these lines to GR to be one function call //WorkSpace.Instance.GingerRunner.BusinessFlows.Clear(); //WorkSpace.Instance.GingerRunner.BusinessFlows.Add(BusinessFlow); //WorkSpace.Instance.GingerRunner.CurrentBusinessFlow = BusinessFlow; //WorkSpace.Instance.GingerRunner.CurrentBusinessFlow.PropertyChanged += CurrentBusinessFlow_PropertyChanged; //WorkSpace.Instance.GingerRunner.GingerRunnerEvent += GingerRunner_GingerRunnerEvent; App.PropertyChanged += App_PropertyChanged; CurrentActivityFrame.Content = new ActivityPage(BusinessFlow.Activities[0]); // TODO: use binding? or keep each activity page InitGingerRunnerControls(); }
public static void ClassInit(TestContext context) { mGR = new GingerRunner(); mGR.Executor = new GingerExecutionEngine(mGR); mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "DB Test"; mBF.Active = true; Activity activity = new Activity(); mBF.Activities.Add(activity); mBF.CurrentActivity = activity; mGR.Executor.CurrentBusinessFlow = mBF; WorkSpaceEventHandler WSEH = new WorkSpaceEventHandler(); WorkSpace.Init(WSEH); WorkSpace.Instance.SolutionRepository = GingerSolutionRepository.CreateGingerSolutionRepository(); }
public void RunSetConfigSaveLoad() { //Arrange //Act RunSetConfig RSC = new RunSetConfig(); RSC.Name = "UT RSC1"; GingerRunner ARC1 = new GingerRunner(); ARC1.Name = " Agent 1"; BusinessFlowRun BFR = new BusinessFlowRun(); BFR.BusinessFlowName = "BF1"; ARC1.BusinessFlowsRunList.Add(BFR); RSC.GingerRunners.Add(ARC1); // RSC .SaveToFile(@"c:\temp\UTRSC1.xml"); //Assert // RunSetConfig RSC2 = (RunSetConfig)RepositoryItem.LoadFromFile(typeof(RunSetConfig), @"c:\temp\UTRSC1.xml"); }
public void WebServices_SoapWrapperActionTest() { WebServicesDriver mDriver = new WebServicesDriver(mBF); Agent wsAgent = new Agent(); wsAgent.DriverType = Agent.eDriverType.WebServices; wsAgent.Driver = mDriver; ApplicationAgent mAG = new ApplicationAgent(); mAG.Agent = wsAgent; mGR = new GingerRunner(); mGR.SolutionAgents = new ObservableList <Agent>(); mGR.SolutionAgents.Add(wsAgent); mGR.BusinessFlows.Add(mBF); Activity Activity2 = new Activity(); Activity2.Active = true; Activity2.ActivityName = "Soap UI Wrapper action"; Activity2.CurrentAgent = wsAgent; mBF.Activities.Add(Activity2); ActSoapUI actSoapUi = new ActSoapUI(); var xmlFilePath = TestResources.GetTestResourcesFile(@"XML\calculator_soapui_project.xml"); actSoapUi.AddNewReturnParams = true; actSoapUi.AddOrUpdateInputParamValue(ActSoapUI.Fields.ImportFile, xmlFilePath); mBF.Activities[0].Acts.Add(actSoapUi); Assert.AreEqual(1, actSoapUi.ActInputValues.Count); Assert.AreEqual(xmlFilePath, actSoapUi.ActInputValues[0].Value.ToString()); }
/// <summary> /// This method is used to Start the agent /// </summary> public static bool StartAgent(Activity activity, GingerRunner runner, Context context, out IWindowExplorer windowExplorerDriver) { bool isAgentStarted = false; windowExplorerDriver = null; ApplicationAgent appAgent = GetAppAgent(activity, runner, context); if (appAgent != null) { if (appAgent.Agent.Driver == null) { appAgent.Agent.StartDriver(); isAgentStarted = true; } else if (!appAgent.Agent.Driver.IsRunning()) { if (Reporter.ToUser(eUserMsgKey.PleaseStartAgent, eUserMsgOption.OKCancel, eUserMsgSelection.OK) == eUserMsgSelection.OK) { appAgent.Agent.StartDriver(); isAgentStarted = true; } else { isAgentStarted = false; } } DriverBase driver = appAgent.Agent.Driver; if (driver is IWindowExplorer) { windowExplorerDriver = (IWindowExplorer)appAgent.Agent.Driver; } } else { isAgentStarted = false; } return(isAgentStarted); }
public static void ClassInit(TestContext context) { AutoLogProxy.Init("NonUITests"); mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "BF WebServices Web API"; mBF.Active = true; Platform p = new Platform(); p.PlatformType = ePlatformType.WebServices; mBF.Platforms = new ObservableList <Platform>(); mBF.Platforms.Add(p); mDriver = new WebServicesDriver(mBF); mDriver.SaveRequestXML = true; mDriver.SavedXMLDirectoryPath = "~\\Documents"; wsAgent.DriverType = Agent.eDriverType.WebServices; wsAgent.Driver = mDriver; ApplicationAgent mAG = new ApplicationAgent(); mAG.Agent = wsAgent; mGR = new GingerRunner(); mGR.SolutionAgents = new ObservableList <Agent>(); mGR.SolutionAgents.Add(wsAgent); mGR.BusinessFlows.Add(mBF); Reporter.ToLog(eLogLevel.INFO, "Creating the GingerCoreNET WorkSpace"); WorkSpaceEventHandler WSEH = new WorkSpaceEventHandler(); WorkSpace.Init(WSEH); }
public void TestInitialize() { mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "BF Visual Testing"; mBF.Active = true; Platform p = new Platform(); p.PlatformType = ePlatformType.Web; mBF.Platforms = new ObservableList <Platform>(); mBF.Platforms.Add(p); mBF.TargetApplications.Add(new TargetApplication() { AppName = "VM" }); mGR = new GingerRunner(); mGR.SolutionFolder = TestResources.getGingerUnitTesterTempFolder(""); Agent a = new Agent(); a.DriverType = Agent.eDriverType.SeleniumChrome; mGR.SolutionAgents = new ObservableList <Agent>(); mGR.SolutionAgents.Add(a); mGR.ApplicationAgents.Add(new ApplicationAgent() { AppName = "VM", Agent = a }); mGR.SolutionApplications = new ObservableList <ApplicationPlatform>(); mGR.SolutionApplications.Add(new ApplicationPlatform() { AppName = "VM", Platform = ePlatformType.Web, Description = "VM application" }); mGR.BusinessFlows.Add(mBF); }
public void TestInitialize() { mGR = new GingerRunner(); mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "BF UIAAutomationTest"; Platform p = new Platform(); p.PlatformType = ePlatformType.Windows; mBF.Platforms = new ObservableList <Platform>(); mBF.Platforms.Add(p); mBF.TargetApplications.Add(new TargetApplication() { AppName = "PBTestAPP" }); Activity activity = new Activity(); activity.TargetApplication = "PBTestApp"; mBF.Activities.Add(activity); mBF.CurrentActivity = activity; mDriver = new WindowsDriver(mBF); mDriver.StartDriver(); UIA = (UIAComWrapperHelper)mDriver.mUIAutomationHelper; mXPathHelper = ((IXPath)UIA).GetXPathHelper(); //TODO: launch Win Forms Test App uiaForm.Show(); List <object> list = UIA.GetListOfWindows(); UIA.SwitchToWindow("FormEmbeddedBrowser"); AppWindow = (AutomationElement)UIA.GetCurrentWindow(); }
private void RunFlow(BusinessFlow businessFlow) { GingerRunner gingerRunner = new GingerRunner(); ExecutionLoggerManager ex = (ExecutionLoggerManager)((GingerExecutionEngine)gingerRunner.Executor).RunListeners[0]; // temp until we remove it from GR constructor and add manually //!!!!!!!!!!! ex.ExecutionLogfolder = @"c:\temp\jj"; // !!!!!!!!!!!!!!!!! ex.Configuration.ExecutionLoggerConfigurationIsEnabled = true; //ex.exec // ex.Configuration.exe // TODO: add dumper ProjEnvironment projEnvironment = new ProjEnvironment(); //ExecutionDumperListener executionDumperListener = new ExecutionDumperListener(@"c:\temp\dumper"); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! temp //gingerRunner.RunListeners.Add(executionDumperListener); // executionLogger = new ExecutionLogger(projEnvironment, eExecutedFrom.Automation); // executionLogger.Configuration.ExecutionLoggerConfigurationIsEnabled = true; // gingerRunner.RunListeners.Add(executionLogger); gingerRunner.Executor.BusinessFlows.Clear(); gingerRunner.Executor.BusinessFlows.Add(businessFlow); gingerRunner.Executor.CurrentBusinessFlow = businessFlow; gingerRunner.Executor.RunRunner(); Console.WriteLine("Execution Completed"); Console.WriteLine("----------------------------"); Console.WriteLine("Elapsed: " + businessFlow.Elapsed); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + ": " + businessFlow.Name); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " Description: " + businessFlow.Description); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " Status: " + businessFlow.RunStatus); Console.WriteLine(GingerDicser.GetTermResValue(eTermResKey.Activities) + " Count: " + businessFlow.Activities.Count); Console.WriteLine("----------------------------"); }
public void RunSetConfigSaveLoad() { //Arrange" string TempFilepath = TestResources.GetTempFile("UTRSC1.xml"); //Act RunSetConfig RSC = new RunSetConfig(); RSC.Name = "UT RSC1"; GingerRunner ARC1 = new GingerRunner(); ARC1.Name = " Agent 1"; BusinessFlowRun BFR = new BusinessFlowRun(); BFR.BusinessFlowName = "BF1"; ARC1.BusinessFlowsRunList.Add(BFR); RSC.GingerRunners.Add(ARC1); RSC.RepositorySerializer.SaveToFile(RSC, TempFilepath); //Assert NewRepositorySerializer newRepositorySerializer = new NewRepositorySerializer(); RunSetConfig RSC2 = (RunSetConfig)newRepositorySerializer.DeserializeFromFile(typeof(RunSetConfig), TempFilepath); }
public static void ClassInit(TestContext context) { mBF = new BusinessFlow(); mBF.Activities = new ObservableList <Activity>(); mBF.Name = "Output Simulation"; mBF.Active = true; Platform p = new Platform(); p.PlatformType = ePlatformType.WebServices; wsAgent = new Agent(); wsAgent.DriverType = Agent.eDriverType.WebServices; wsAgent.Driver = mDriver; ApplicationAgent mAG = new ApplicationAgent(); mAG.Agent = wsAgent; mGR = new GingerRunner(); mGR.SolutionAgents = new ObservableList <Agent>(); mGR.SolutionAgents.Add(wsAgent); mGR.BusinessFlows.Add(mBF); }
public static void ClassInit(TestContext context) { BF1 = new BusinessFlow(); BF1.Name = "VariableDependancyTest"; BF1.Active = true; ActivitiesGroup activityGroup = new ActivitiesGroup(); Activity activity1 = new Activity(); activity1.Active = true; ActDummy actDummy1 = new ActDummy(); actDummy1.Active = true; ActDummy actDummy2 = new ActDummy(); actDummy2.Active = true; activity1.Acts.Add(actDummy1); activity1.Acts.Add(actDummy2); Activity activity2 = new Activity(); activity2.Active = true; ActDummy actDummy3 = new ActDummy(); actDummy3.Active = true; ActDummy actDummy4 = new ActDummy(); actDummy4.Active = true; ActDummy actDummy7 = new ActDummy(); actDummy7.Active = true; ActDummy actDummy8 = new ActDummy(); actDummy8.Active = true; activity2.Acts.Add(actDummy3); activity2.Acts.Add(actDummy4); activity2.Acts.Add(actDummy7); activity2.Acts.Add(actDummy8); Activity activity3 = new Activity(); activity3.Active = true; ActDummy actDummy5 = new ActDummy(); actDummy5.Active = true; ActDummy actDummy6 = new ActDummy(); actDummy6.Active = true; activity3.Acts.Add(actDummy5); activity3.Acts.Add(actDummy6); activityGroup.AddActivityToGroup(activity1); activityGroup.AddActivityToGroup(activity2); activityGroup.AddActivityToGroup(activity3); BF1.Activities.Add(activity1); BF1.Activities.Add(activity2); BF1.Activities.Add(activity3); BF1.ActivitiesGroups.Add(activityGroup); Platform p = new Platform(); p.PlatformType = ePlatformType.Web; BF1.TargetApplications.Add(new TargetApplication() { AppName = "SCM" }); mGR = new GingerRunner(); mGR.Name = "Test Runner"; mGR.CurrentSolution = new Ginger.SolutionGeneral.Solution(); ProjEnvironment environment = new ProjEnvironment(); environment.Name = "Default"; BF1.Environment = environment.Name; Agent a = new Agent(); a.DriverType = Agent.eDriverType.SeleniumChrome; mGR.SolutionAgents = new ObservableList <Agent>(); mGR.SolutionAgents.Add(a); mGR.ApplicationAgents.Add(new ApplicationAgent() { AppName = "SCM", Agent = a }); mGR.SolutionApplications = new ObservableList <ApplicationPlatform>(); mGR.SolutionApplications.Add(new ApplicationPlatform() { AppName = "SCM", Platform = ePlatformType.Web, Description = "New application" }); mGR.BusinessFlows.Add(BF1); Context context1 = new Context(); context1.BusinessFlow = BF1; context1.Activity = BF1.Activities[0]; mGR.CurrentBusinessFlow = BF1; mGR.CurrentBusinessFlow.CurrentActivity = BF1.Activities[0]; mGR.Context = context1; }
public static HTMLReportPage GetSampleReportPage(string Xaml) { BusinessFlow BF1 = new BusinessFlow() { Name = "BF1 - Create Customer", Description = "Create any type of customer: Business/Residential..." }; BF1.Active = true; BF1.RunStatus = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed; BF1.Activities = new ObservableList <Activity>(); BF1.Elapsed = 2364; //Activity 1 Activity a1 = new Activity() { ActivityName = "Launch Application & Login", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed }; BF1.Activities.Add(a1); ActGotoURL act1 = new ActGotoURL() { Description = "Goto URL www.abcd.com", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 3124 }; a1.Acts.Add(act1); ActReturnValue ARV1 = new ActReturnValue(); ARV1.Param = "RC"; ARV1.Expected = "123"; ARV1.Actual = "123"; ARV1.Status = ActReturnValue.eStatus.Passed; act1.ReturnValues.Add(ARV1); ActTextBox act2 = new ActTextBox() { Description = "Enter User ID", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 230 }; // Add sample screen shot Bitmap tempBmp = new Bitmap(Ginger.Properties.Resources.ScreenShot1); act2.ScreenShots.Add(GingerCore.General.BitmapImageToFile(tempBmp)); a1.Acts.Add(act2); ActTextBox act3 = new ActTextBox() { Description = "Enter Password", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 112 }; a1.Acts.Add(act3); ActSubmit act4 = new ActSubmit() { Description = "Click Submit Button", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 1282 }; a1.Acts.Add(act4); //Activity 2 Activity a2 = new Activity() { ActivityName = "Create New customer", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed }; BF1.Activities.Add(a2); ActTextBox acta21 = new ActTextBox() { Description = "Enter First Name", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 325 }; a2.Acts.Add(acta21); ActTextBox acta22 = new ActTextBox() { Description = "Enter Last Name", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed, Elapsed = 302 }; a2.Acts.Add(acta22); ActTextBox acta23 = new ActTextBox() { Description = "Enter City", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed, Elapsed = 820, Error = "Error: Element not found by ID 'City'", ExInfo = "Cannot find element" }; a2.Acts.Add(acta23); ActSubmit acta24 = new ActSubmit() { Description = "Click Create Button", Status = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Pending }; a2.Acts.Add(acta24); //Add Variables BF1.Variables = new ObservableList <VariableBase>(); VariableString v1 = new VariableString() { Name = "FirstName", Value = "David Smith" }; BF1.Variables.Add(v1); VariableRandomNumber v2 = new VariableRandomNumber() { Name = "Random 1", Min = 1, Max = 100, Value = "55" }; BF1.Variables.Add(v2); //Add a few simple BFs BusinessFlow BF2 = new BusinessFlow() { Name = "BF2 - Customer Order Product", Description = "", Active = true }; BF2.Activities = new ObservableList <Activity>(); BF2.RunStatus = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed; BF2.Elapsed = 1249; ProjEnvironment env = new ProjEnvironment() { Name = "Env1" }; //TODO: add more env info //cretae dummy GR, GMR RunsetExecutor GMR = new RunsetExecutor(); GingerRunner GR = new GingerRunner(); GR.BusinessFlows.Add(BF1); GR.BusinessFlows.Add(BF2); GR.CurrentSolution = WorkSpace.UserProfile.Solution; GMR.Runners.Add(GR); ReportInfo RI = new ReportInfo(env, GMR); HTMLReportPage RP = new HTMLReportPage(RI, Xaml); return(RP); }
static AnalyzeGingerRunner CreateNewIssue(List <AnalyzerItemBase> IssuesList, GingerRunner GR) { AnalyzeGingerRunner AGR = new AnalyzeGingerRunner(); AGR.Status = AnalyzerItemBase.eStatus.NeedFix; AGR.GingerRunner = GR; AGR.ItemName = GR.Name; AGR.ItemClass = "Runner"; IssuesList.Add(AGR); return(AGR); }
public static void CreateRealRunSetFromDynamic(RunsetExecutor runsetExecutor, AddRunset dynamicRunset) { RunSetConfig runSetConfig = new RunSetConfig(); runSetConfig.Name = dynamicRunset.Name; runSetConfig.RunWithAnalyzer = dynamicRunset.RunAnalyzer; runSetConfig.RunModeParallel = dynamicRunset.RunInParallel; // Add runners foreach (AddRunner addRunner in dynamicRunset.AddRunners) { GingerRunner gingerRunner = new GingerRunner(); gingerRunner.Name = addRunner.Name; if (!string.IsNullOrEmpty(addRunner.RunMode)) { gingerRunner.RunOption = (GingerRunner.eRunOptions)Enum.Parse(typeof(GingerRunner.eRunOptions), addRunner.RunMode, true); } if (!string.IsNullOrEmpty(addRunner.Environment)) { gingerRunner.UseSpecificEnvironment = true; gingerRunner.SpecificEnvironmentName = addRunner.Environment; } //add Agents foreach (SetAgent setAgent in addRunner.SetAgents) { ApplicationAgent appAgent = new ApplicationAgent(); appAgent.AppName = setAgent.ApplicationName; appAgent.AgentName = setAgent.AgentName; gingerRunner.ApplicationAgents.Add(appAgent); } // Add BFs foreach (AddBusinessFlow addBusinessFlow in addRunner.AddBusinessFlows) { BusinessFlowRun businessFlowRun = new BusinessFlowRun(); businessFlowRun.BusinessFlowName = addBusinessFlow.Name; businessFlowRun.BusinessFlowIsActive = true; // set BF Variables if (addBusinessFlow.InputVariables != null) { foreach (InputVariable inputVariabel in addBusinessFlow.InputVariables) { businessFlowRun.BusinessFlowCustomizedRunVariables.Add(new VariableString() { DiffrentFromOrigin = true, VarValChanged = true, ParentType = inputVariabel.VariableParentType, ParentName = inputVariabel.VariableParentName, Name = inputVariabel.VariableName, InitialStringValue = inputVariabel.VariableValue, Value = inputVariabel.VariableValue }); } } gingerRunner.BusinessFlowsRunList.Add(businessFlowRun); } runSetConfig.GingerRunners.Add(gingerRunner); } //Add mail Report handling foreach (AddRunsetOperation addOperation in dynamicRunset.AddRunsetOperations) { if (addOperation is MailReport) { MailReport dynamicMailOperation = (MailReport)addOperation; RunSetActionHTMLReportSendEmail mailOperation = new RunSetActionHTMLReportSendEmail(); mailOperation.Name = "Dynamic Mail Report"; mailOperation.Condition = (RunSetActionBase.eRunSetActionCondition)Enum.Parse(typeof(RunSetActionBase.eRunSetActionCondition), dynamicMailOperation.Condition, true); mailOperation.RunAt = (RunSetActionBase.eRunAt)Enum.Parse(typeof(RunSetActionBase.eRunAt), dynamicMailOperation.RunAt, true); mailOperation.Active = true; mailOperation.MailFrom = dynamicMailOperation.MailFrom; mailOperation.MailTo = dynamicMailOperation.MailTo; mailOperation.MailCC = dynamicMailOperation.MailCC; mailOperation.Subject = dynamicMailOperation.Subject; mailOperation.Comments = dynamicMailOperation.Comments; //mailOperation.Comments = string.Format("Dynamic {0} Execution Report" + GingerDicser.GetTermResValue(eTermResKey.RunSet)); mailOperation.HTMLReportTemplate = RunSetActionHTMLReportSendEmail.eHTMLReportTemplate.HTMLReport; mailOperation.selectedHTMLReportTemplateID = 100;//ID to mark defualt template mailOperation.Email.IsBodyHTML = true; mailOperation.Email.EmailMethod = GingerCore.GeneralLib.Email.eEmailMethod.SMTP; mailOperation.Email.MailFrom = dynamicMailOperation.MailFrom; mailOperation.Email.MailTo = dynamicMailOperation.MailTo; mailOperation.Email.Subject = dynamicMailOperation.Subject; if (dynamicMailOperation.SendViaOutlook) { mailOperation.Email.EmailMethod = GingerCore.GeneralLib.Email.eEmailMethod.OUTLOOK; } else { if (dynamicMailOperation.SmtpDetails != null) { mailOperation.Email.EmailMethod = GingerCore.GeneralLib.Email.eEmailMethod.SMTP; mailOperation.Email.SMTPMailHost = dynamicMailOperation.SmtpDetails.Server; mailOperation.Email.SMTPPort = int.Parse(dynamicMailOperation.SmtpDetails.Port); mailOperation.Email.EnableSSL = bool.Parse(dynamicMailOperation.SmtpDetails.EnableSSL); if (string.IsNullOrEmpty(dynamicMailOperation.SmtpDetails.User) == false) { mailOperation.Email.ConfigureCredential = true; mailOperation.Email.SMTPUser = dynamicMailOperation.SmtpDetails.User; mailOperation.Email.SMTPPass = dynamicMailOperation.SmtpDetails.Password; } } } if (dynamicMailOperation.IncludeAttachmentReport) { EmailHtmlReportAttachment reportAttachment = new EmailHtmlReportAttachment(); reportAttachment.AttachmentType = EmailAttachment.eAttachmentType.Report; reportAttachment.ZipIt = true; mailOperation.EmailAttachments.Add(reportAttachment); } runSetConfig.RunSetActions.Add(mailOperation); } else if (addOperation is JsonReport) { JsonReport dynamicJsonReport = (JsonReport)addOperation; RunSetActionJSONSummary jsonReportOperation = new RunSetActionJSONSummary(); jsonReportOperation.Name = "Dynamic Json Report"; jsonReportOperation.Condition = (RunSetActionBase.eRunSetActionCondition)Enum.Parse(typeof(RunSetActionBase.eRunSetActionCondition), dynamicJsonReport.Condition, true); jsonReportOperation.RunAt = (RunSetActionBase.eRunAt)Enum.Parse(typeof(RunSetActionBase.eRunAt), dynamicJsonReport.RunAt, true); jsonReportOperation.Active = true; runSetConfig.RunSetActions.Add(jsonReportOperation); } } // Set config runsetExecutor.RunSetConfig = runSetConfig; }
public override void RunnerRunStart(uint eventTime, GingerRunner gingerRunner, bool offlineMode = false) { UpdateStat.Invoke(this, null); }
public override void RunnerRunEnd(uint eventTime, GingerRunner gingerRunner, string filename = null, int runnerCount = 0, bool offlineMode = false) { UpdateStat.Invoke(this, null); }
public override void RunSetUpdate(ObjectId runSetLiteDbId, ObjectId runnerLiteDbId, GingerRunner gingerRunner) { LiteDbRunner runner = new LiteDbRunner(); runner.BusinessFlowsColl.AddRange(liteDbBFList); runner._id = runnerLiteDbId; runner.Seq = 1; runner.Name = "Automated Runner"; runner.ApplicationAgentsMappingList = gingerRunner.ApplicationAgents.Select(a => a.AgentName + "_:_" + a.AppName).ToList(); runner.Environment = gingerRunner.ProjEnvironment != null ? gingerRunner.ProjEnvironment.Name : string.Empty; runner.GUID = gingerRunner.Guid; if (gingerRunner.BusinessFlows.Count > 0) { runner.StartTimeStamp = gingerRunner.BusinessFlows[0].StartTimeStamp; runner.EndTimeStamp = gingerRunner.BusinessFlows[0].EndTimeStamp; runner.Elapsed = gingerRunner.BusinessFlows[0].Elapsed; } runner.RunStatus = (liteDbBFList.Count > 0) ? liteDbBFList[0].RunStatus : eRunStatus.Automated.ToString(); SetRunnerChildCounts(runner); SaveObjToReporsitory(runner, liteDbManager.NameInDb <LiteDbRunner>()); liteDbBFList.Clear(); LiteDbRunSet runSet = new LiteDbRunSet(); runSet._id = runSetLiteDbId; base.SetReportRunSet(ExecutionLoggerManager.RunSetReport, ""); runSet.SetReportData(ExecutionLoggerManager.RunSetReport); runSet.RunnersColl.AddRange(new List <LiteDbRunner>() { runner }); SetRunSetChildCounts(runSet); SaveObjToReporsitory(runSet, liteDbManager.NameInDb <LiteDbRunSet>()); }
public abstract void RunSetUpdate(LiteDB.ObjectId runSetLiteDbId, LiteDB.ObjectId runnerLiteDbId, GingerRunner gingerRunner);
public override void RunnerRunEnd(uint eventTime, GingerRunner gingerRunner, string filename = null, int runnerCount = 0, bool offlineMode = false) { AddExecutionDetailsToLog(eExecutionPhase.End, "Runner", gingerRunner.Name, new GingerReport()); }
public override void RunnerRunStart(uint eventTime, GingerRunner gingerRunner, bool offlineMode = false) { AddExecutionDetailsToLog(eExecutionPhase.Start, "Runner", gingerRunner.Name, null); }
public override void Execute(ReportInfo RI) { string reportsResultFolder = string.Empty; HTMLReportsConfiguration currentConf = WorkSpace.Instance.Solution.HTMLReportsConfigurationSetList.Where(x => (x.IsSelected == true)).FirstOrDefault(); if (WorkSpace.Instance.Solution.LoggerConfigurations.SelectedDataRepositoryMethod == ExecutionLoggerConfiguration.DataRepositoryMethod.LiteDB) { ProduceLiteDBReportFolder(currentConf); return; } if (WorkSpace.Instance.RunsetExecutor.RunSetConfig.RunsetExecLoggerPopulated) { string runSetFolder = string.Empty; if (WorkSpace.Instance.RunsetExecutor.RunSetConfig.LastRunsetLoggerFolder != null) { runSetFolder = WorkSpace.Instance.RunsetExecutor.RunSetConfig.LastRunsetLoggerFolder; } else { GingerRunner gr = new GingerRunner(); runSetFolder = gr.ExecutionLoggerManager.GetRunSetLastExecutionLogFolderOffline(); } string currentHTMLFolderName = string.Empty; if (isHTMLReportFolderNameUsed && !String.IsNullOrEmpty(HTMLReportFolderName)) { if (!isHTMLReportPermanentFolderNameUsed) { currentHTMLFolderName = Path.Combine(HTMLReportFolderNameCalculated, System.IO.Path.GetFileName(runSetFolder)); } else { currentHTMLFolderName = HTMLReportFolderNameCalculated; } } if (String.IsNullOrEmpty(currentHTMLFolderName)) { if (!string.IsNullOrEmpty(WorkSpace.Instance.TestArtifactsFolder)) { currentHTMLFolderName = Path.Combine(WorkSpace.Instance.TestArtifactsFolder, System.IO.Path.GetFileName(runSetFolder)); } } if (!string.IsNullOrEmpty(selectedHTMLReportTemplateID.ToString())) { ObservableList <HTMLReportConfiguration> HTMLReportConfigurations = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <HTMLReportConfiguration>(); reportsResultFolder = Ginger.Reports.GingerExecutionReport.ExtensionMethods.CreateGingerExecutionReport(new ReportInfo(runSetFolder), false, HTMLReportConfigurations.Where(x => (x.ID == selectedHTMLReportTemplateID)).FirstOrDefault(), currentHTMLFolderName, isHTMLReportPermanentFolderNameUsed, currentConf.HTMLReportConfigurationMaximalFolderSize); } else { reportsResultFolder = Ginger.Reports.GingerExecutionReport.ExtensionMethods.CreateGingerExecutionReport(new ReportInfo(runSetFolder), false, null, currentHTMLFolderName, isHTMLReportPermanentFolderNameUsed); } } else { Errors = "In order to get HTML report, please, perform executions before"; Reporter.HideStatusMessage(); Status = Ginger.Run.RunSetActions.RunSetActionBase.eRunSetActionStatus.Failed; return; } }