Beispiel #1
0
        internal static int RunStep(StringBuilder stepBuilder, List<ThreadSession> sessionList, TaskSetting setting, string stepName, int runtimes)
        {
            CaseStep[] caseList = new CaseStep[sessionList.Count];
            Task[] taskList = new Task[sessionList.Count];
            for (int i = 0; i < taskList.Length; i++)
            {
                var session = sessionList[i];
                var caseStep = CaseStep.Create(setting.CaseStepTypeFormat, stepName);
                if (caseStep != null)
                {
                    caseStep.Runtimes = runtimes;
                    caseStep.Init(session);
                    caseList[i] = caseStep;
                    taskList[i] = Task.Factory.StartNew(caseStep.StartRun);
                }
            }
            if (setting.WaitTimeout == TimeSpan.Zero)
            {
                Task.WaitAll(taskList);
            }
            else
            {
                Task.WaitAll(taskList, setting.WaitTimeout);
            }

            int errorCount = caseList.Sum(t => t.Timer.FailNum);
            DoStepResult(stepBuilder, stepName, caseList);
            return errorCount;
        }
Beispiel #2
0
 protected void SetChildStep(string stepName)
 {
     CaseStep caseStep = null;
     if (!string.IsNullOrEmpty(stepName))
     {
         caseStep = Create(_session.Setting.CaseStepTypeFormat, stepName);
         if (caseStep == null) throw new Exception(string.Format(_session.Setting.CaseStepTypeFormat, stepName) + " isn't found.");
         caseStep.Runtimes = 1;
         caseStep.Init(_session);
     }
     ChildStep = caseStep;
 }