Ejemplo n.º 1
0
        public async Task <ProbeResult> ExecuteProbe(EndpointProbe probe)
        {
            string payloadString =
                probe.Payload?.GetType() == typeof(JObject) ?
                JsonConvert.SerializeObject(probe.Payload) :
                probe.Payload?.ToString() ?? string.Empty;

            HttpRequestMessage request = new HttpRequestMessage
            {
                Method  = probe.Method,
                Content = new StringContent(
                    payloadString,
                    Encoding.UTF8,
                    "application/json")
            };

            try
            {
                Stopwatch           timer    = Stopwatch.StartNew();
                HttpResponseMessage response = TargetAPI.SendAsync(request).Result;
                timer.Stop();

                return(new ProbeResult
                {
                    Endpoint = probe.Endpoint,
                    Method = probe.Method.Method,
                    RequestPayload = request.Content.ReadAsStringAsync().Result,
                    UserID = UserID,
                    ConcurrentUsersAtRequestTime = NumberOfConcurrentUsers,
                    bSuccessResponse = response.IsSuccessStatusCode ? true : false,
                    StatusCode = (int)response.StatusCode,
                    StatusMessage = response.StatusCode.ToString(),
                    RoundTripTime = timer.ElapsedMilliseconds
                });
            }
            catch (TaskCanceledException)
            {
                return(new ProbeResult
                {
                    Endpoint = probe.Endpoint,
                    Method = probe.Method.Method,
                    RequestPayload = request.Content.ReadAsStringAsync().Result,
                    UserID = UserID,
                    ConcurrentUsersAtRequestTime = NumberOfConcurrentUsers,
                    bRequestTimeout = true,
                    StatusMessage = $"Client-side request timeout (longer than {Defaults.RequestTimeoutInSeconds})"
                });
            }
            finally
            {
                ++Progress;
            }
        }
Ejemplo n.º 2
0
 public DearTarget(Platform platform, TargetAPI api, Optimization optimization, BuildType buildType)
     : base(platform, DevEnv.vs2019, optimization)
 {
     Api   = api;
     Build = buildType;
 }