Ejemplo n.º 1
0
 public Task DeleteAll()
 {
     return(Task.WhenAll(
                _cache.DeleteAll(),
                _varyBy.DeleteAll(),
                _uriInfo.DeleteAll()
                ));
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            string testPlanParameters = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestPlan.json"));

            var testPlans = JsonConvert.DeserializeObject <List <TestPlan> >(testPlanParameters);

            foreach (var testPlan in testPlans)
            {
                try
                {
                    ICacheProvider provider = ProviderFactory.GetByName(testPlan.ProviderName);
                    var            keys     = PrepareTestData(testPlan, provider);

                    ConcurrentBag <TestResult> results = new ConcurrentBag <TestResult>();
                    List <Task> tasks = new List <Task>();
                    for (int i = 0; i < testPlan.Threads.Count; i++)
                    {
                        var value = i;
                        tasks.Add(Task.Factory.StartNew(() =>
                        {
                            var cacheProvider = ProviderFactory.GetByName(testPlan.ProviderName);
                            for (int j = 0; j < testPlan.RepeateCount; j++)
                            {
                                results.Add(ProcessOneRequest(cacheProvider, keys, testPlan.Threads[value]));
                            }
                            Thread.Sleep(testPlan.Threads[value].Interval);
                        }));
                    }

                    Task.WaitAll(tasks.ToArray());

                    if (!Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports")))
                    {
                        Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports"));
                    }

                    var res = results.ToList();
                    File.WriteAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports", $"{testPlan.Name}.csv"),
                                       TestResultConverter.Convert(res.OrderBy(p => p.DateTimeStart)));

                    var groupedRes = res.GroupBy(p => p.ThreadNumber);
                    foreach (var item in groupedRes)
                    {
                        File.WriteAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports", $"{testPlan.Name} - {item.Key}.csv"),
                                           TestResultConverter.Convert(item));
                    }

                    File.AppendAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "process.log"), $"Processed {testPlan.Name}");
                    provider.DeleteAll(keys.Select(p => p.Value));
                }
                catch (Exception ex)
                {
                    File.AppendAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "error.log"),
                                       DateTime.Now.ToString() + " | " + ex.ToString());
                }
            }
        }
Ejemplo n.º 3
0
 public Task DeleteAll()
 {
     return(_cache.DeleteAll());
 }