Esempio n. 1
0
        private StressResult PerformRequest(StressRequest req)
        {
            HttpWebRequest  request  = null;
            HttpWebResponse response = null;

            Stopwatch    watch  = new Stopwatch();
            StressResult result = new StressResult(req);

            try
            {
                watch.Start();
                request           = (HttpWebRequest)WebRequest.Create(req.Url);
                request.Method    = "GET";
                request.KeepAlive = true;
                response          = (HttpWebResponse)request.GetResponse();
                using (Stream stream = response.GetResponseStream())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        stream.CopyTo(ms);
                        result.ContentLength = ms.Length;
                    }
                }
                watch.Stop();

                result.TimeTaken      = watch.ElapsedMilliseconds;
                result.HttpStatusCode = response.StatusCode;
                result.Success        = true;
                if (this.KeepHeaders.Count > 0)
                {
                    result.ResponseHeaders = new List <string>();
                    Dictionary <string, string> dic = response.Headers.AllKeys.ToDictionary(h => h, h => response.Headers[h]);
                    foreach (var kh in this.KeepHeaders)
                    {
                        string value = String.Empty;
                        dic.TryGetValue(kh, out value);
                        result.ResponseHeaders.Add(value);
                    }
                }
                return(result);
            }
            catch (Exception e)
            {
                // TODO: Consider including exception in result
                result.Success = false;
                return(result);;
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
        }
Esempio n. 2
0
        private StressResult Report(StressResult r)
        {
            var data = new List <string>()
            {
                r.Request.Id,
                r.Success.ToString(),
                r.HttpStatusCode.ToString(),
                r.TimeTaken.ToString(),
                r.ContentLength.ToString(),
                r.Request.Url
            };

            if (r.ResponseHeaders != null)
            {
                data = data.Concat(r.ResponseHeaders).ToList();
            }

            Console.WriteLine(string.Join(";", data));
            return(r);
        }