Exemplo n.º 1
0
        /// <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");
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 4
0
        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("----------");
            }
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
        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();
        }
Exemplo n.º 11
0
        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");
        }
Exemplo n.º 12
0
        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());
        }
Exemplo n.º 13
0
        /// <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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
        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("----------------------------");
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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;
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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;
        }
Exemplo n.º 24
0
 public override void RunnerRunStart(uint eventTime, GingerRunner gingerRunner, bool offlineMode = false)
 {
     UpdateStat.Invoke(this, null);
 }
Exemplo n.º 25
0
 public override void RunnerRunEnd(uint eventTime, GingerRunner gingerRunner, string filename = null, int runnerCount = 0, bool offlineMode = false)
 {
     UpdateStat.Invoke(this, null);
 }
Exemplo n.º 26
0
        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>());
        }
Exemplo n.º 27
0
 public abstract void RunSetUpdate(LiteDB.ObjectId runSetLiteDbId, LiteDB.ObjectId runnerLiteDbId, GingerRunner gingerRunner);
Exemplo n.º 28
0
 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());
 }
Exemplo n.º 29
0
 public override void RunnerRunStart(uint eventTime, GingerRunner gingerRunner, bool offlineMode = false)
 {
     AddExecutionDetailsToLog(eExecutionPhase.Start, "Runner", gingerRunner.Name, null);
 }
Exemplo n.º 30
0
        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;
            }
        }