private async Task AddNewUsers(int usersChanged, ITestExecutionContextInternal context) { Console.WriteLine("Adding {0} Users", usersChanged); for (var i = 0; i < usersChanged; i++) { var userNum = context.CurrentUsers + 1; var httpUser = GetNextHttpUser(userNum); await Task.Run(async() => { var user = new User(userNum, httpUser); Console.WriteLine($"Initializing User {userNum}"); try { await user.Initialize(); context.ModifyUsers(list => list.Add(user)); Console.WriteLine($"Added User {userNum}"); } catch (Exception ex) { Console.WriteLine($"Failed initializing User {userNum}"); Console.Write(ex); return; } await user.Run(result => UserIterationFinished?.Invoke(result)); }); } }
private static void Shutdown(ITestExecutionContextInternal context) { Console.WriteLine("Stopping Users"); RemoveUsers(context.CurrentUsers, context); Console.WriteLine("Users Stopped"); Console.WriteLine(); Console.WriteLine("Total Test Time: {0} Minutes", context.TotalMinutes); }
private static void RemoveUsers(int usersChanged, ITestExecutionContextInternal context) { Console.WriteLine("Removing {0} Users", usersChanged); for (var i = 0; i < usersChanged; i++) { context.ModifyUsers(list => { var user = list[list.Count - 1]; user.Stop(); list.Remove(user); }); } }
private Task AddNewUsers(int usersChanged, ITestExecutionContextInternal context) { Console.WriteLine("Adding {0} Users", usersChanged); var addUserTasks = new List <Task>(); for (var i = 0; i < usersChanged; i++) { var addUserTask = Task.Run(async() => { var userNum = context.UserInitializing(); var httpUser = GetNextHttpUser(userNum); var user = new User(userNum, httpUser); Console.WriteLine($"Initializing User {userNum}"); try { await user.Initialize(); context.UserInitialized(user); Console.WriteLine($"Added User {userNum}"); } catch (Exception) { Console.WriteLine($"GAVE UP Trying to initialize User {userNum}"); return; } await user.Run(_executionTimestamp.GetElapsedTime, result => UserIterationFinished?.Invoke(result)); }); addUserTasks.Add(addUserTask); } return(Task.WhenAll(addUserTasks)); }
private static void RemoveUsers(int usersChanged, ITestExecutionContextInternal context) { Console.WriteLine("Removing {0} Users", usersChanged); context.RemoveUsers(usersChanged); }