public Phase2LoadTestForm() { InitializeComponent(); this.loadVo = new LoadTestInputVO(); this.uiThreads = new List <Thread>(); this.timedEvents = new List <TimeSpan>(); this.loadController = null; this.numberUsersComboBox.SelectedIndex = 0; this.progressionRateComboBox.SelectedIndex = 0; this.delayUserTextBox.Text = "100"; this.executeFlowComboBox.SelectedIndex = 0; this.numIterations = 1; //this.curIteration = 0; this.inputsValid = false; }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void startButton_Click(object sender, EventArgs e) { this.setStartButtonEnabled(false); this.setPauseButtonEnabled(false); this.setStopButtonEnabled(true); //Determine progression rate var progRate = (string)this.progressionRateComboBox.SelectedItem; var pRate = CashlinxLoadThreadController.ProgressionRate.RANDOM; if (progRate.Equals("Arithmetic", StringComparison.OrdinalIgnoreCase)) { pRate = CashlinxLoadThreadController.ProgressionRate.ARITHMETIC; } else if (progRate.Equals("Geometric", StringComparison.OrdinalIgnoreCase)) { pRate = CashlinxLoadThreadController.ProgressionRate.GEOMETRIC; } var eFlow = CashlinxLoadThreadController.ExecuteFlow.NEWLOAN_EXIST_CUSTOMER; uint delayUsers = 0; if (!UInt32.TryParse(this.delayUserTextBox.Text, out delayUsers)) { //Use default delayUsers = DEFAULT_DELAY; } uint numThreads; if (!UInt32.TryParse((string)this.numberUsersComboBox.SelectedItem, out numThreads)) { //Use default numThreads = DEFAULT_THREADS; } uint numIters; if (!UInt32.TryParse((string)this.numberIterationsTextBox.Text, out numIters)) { numIters = 1; } DateTime dateNow = DateTime.Now; string fileDateMonth = ("" + dateNow.Date.Month).PadLeft(2, '0'); string fileDateDay = ("" + dateNow.Date.Day).PadLeft(2, '0'); string fileDateYear = "" + dateNow.Date.Year; string fileDateHour = ("" + dateNow.TimeOfDay.Hours).PadLeft(2, '0'); string fileDateMin = ("" + dateNow.TimeOfDay.Minutes).PadLeft(2, '0'); string fileDateSec = ("" + dateNow.TimeOfDay.Seconds).PadLeft(2, '0'); string fileName = "LoadTestOutput_" + fileDateMonth + fileDateDay + fileDateYear + "_" + fileDateHour + fileDateMin + fileDateSec + ".csv"; StreamWriter fileOutput = new StreamWriter(@"c:\tmp\logs\" + fileName); try { fileOutput.AutoFlush = true; } catch (Exception) { } //Create thread load controller this.loadController = new CashlinxLoadThreadController(pRate, delayUsers, numThreads, 1.0d, numIters, this.loadVo, ThreadPriority.Normal, eFlow, this.addMessage, fileOutput); this.startTestTime = DateTime.Now; //this.startTimer(); //Start UI threads if enabled //NOTE: Disabling UI threads ----------------------------------------- /*if (this.uiThreadsCheckBox.Checked == true) * { * if (!this.CreateUIThreads(MAX_UI_THREADS)) * { * this.setStartButtonEnabled(true); * MessageBox.Show("Could not create UI threads", "Load Test Error", MessageBoxButtons.OK, * MessageBoxIcon.Error); * return; * } * if (!this.StartUIThreads()) * { * this.setStartButtonEnabled(true); * MessageBox.Show("Could not start UI threads", "Load Test Error", MessageBoxButtons.OK, * MessageBoxIcon.Error); * return; * } * Thread.Sleep(100); * }*/ //Perform startup of other threads this.addMessage("Starting load test with " + numThreads + " thread(s)"); this.loadController.startThreads(); Thread.Sleep(1000); this.statusChecker.RunWorkerAsync(); this.statusChecker.RunWorkerCompleted += statusChecker_RunWorkerCompleted; }