Example #1
0
        private string ReadFileAsString(FileEntry fileEntry)
        {
            Stream contentStream = null;

            try
            {
                contentStream = new MemoryStream();

                RequestResults requestResult =
                    this.Extractor.Read(fileEntry.Index, fileEntry.CompressedLength, ref contentStream);

                switch (requestResult)
                {
                case RequestResults.Authenticated:
                    StreamReader sR = new StreamReader(contentStream);

                    return(sR.ReadToEnd());

                case RequestResults.ContentNotExists:
                    throw new FileNotFoundException();

                case RequestResults.PasswordError:
                    throw new Exceptions.DeploymentException(Global.SystemMessages.PASSWORD_WRONG, new SecurityException());
                }

                return(string.Empty);
            }
            finally
            {
                contentStream?.Close();
            }
        }
Example #2
0
 public RecordingResult()
 {
     RequestResult = RequestResults.Unset;
     GeneratedRecordingsBlob = new RPRecordingsBlob();
     Completed = false;
     Success = false;
 }
Example #3
0
 public RecordingResult()
 {
     RequestResult           = RequestResults.Unset;
     GeneratedRecordingsBlob = new RPRecordingsBlob();
     Completed = false;
     Success   = false;
 }
Example #4
0
        public void ProvideContentFileStream(string languageId, string requestedFilePath, out Stream outputStream)
        {
            outputStream = null;

            if (string.IsNullOrEmpty(requestedFilePath))
            {
                return;
            }

            requestedFilePath = requestedFilePath.Replace('/', '\\');
            if (requestedFilePath[0] == '\\')
            {
                requestedFilePath = requestedFilePath.Substring(1);
            }

            string requestPath = string.Empty;
            string requestFile = requestedFilePath;

            int lastIndex = requestedFilePath.LastIndexOf('\\');

            if (lastIndex > -1)
            {
                requestPath = requestedFilePath.Substring(0, lastIndex + 1);
                requestFile = requestedFilePath.Substring(lastIndex + 1);
            }

            FileEntry fileEntry =
                this.Extractor.Get(
                    string.Concat(
                        this.ContentsRegistration(languageId),
                        requestPath
                        ),
                    requestFile
                    );

            if (fileEntry.Index == -1)
            {
                throw new FileNotFoundException();
            }

            outputStream = new MemoryStream();

            RequestResults requestResult =
                this.Extractor.Read(fileEntry.Index, fileEntry.CompressedLength, ref outputStream);

            switch (requestResult)
            {
            case RequestResults.ContentNotExists:
                throw new FileNotFoundException();

            case RequestResults.PasswordError:
                throw new Exceptions.DeploymentException(Global.SystemMessages.PASSWORD_WRONG, new SecurityException());
            }
        }
Example #5
0
        public void ProvideContentFileStream(string languageID, string requestedFilePath, out Stream outputStream)
        {
            outputStream = null;

            if (string.IsNullOrEmpty(requestedFilePath))
            {
                return;
            }

            requestedFilePath = requestedFilePath.Replace('/', Path.DirectorySeparatorChar);
            if (requestedFilePath[0] == Path.DirectorySeparatorChar)
            {
                requestedFilePath = requestedFilePath.Substring(1);
            }

            FileEntry fileEntry =
                this.Decompiler.Get(
                    Path.Combine(
                        this.ContentsRegistration(languageID),
                        requestedFilePath.Replace(Path.GetFileName(requestedFilePath), string.Empty)
                        ),
                    Path.GetFileName(requestedFilePath)
                    );

            if (fileEntry.Index == -1)
            {
                return;
            }

            outputStream = new MemoryStream();

            RequestResults requestResult =
                this.Decompiler.Read(fileEntry.Index, fileEntry.CompressedLength, ref outputStream);

            switch (requestResult)
            {
            case RequestResults.ContentNotExists:
                throw new FileNotFoundException();

            case RequestResults.PasswordError:
                throw new Exception.DeploymentException(Global.SystemMessages.PASSWORD_WRONG, new SecurityException());
            }
        }
Example #6
0
        public RequestResults <Starship> GetByUrl <Starship>(string url, Dictionary <string, string> parameters)
        {
            RequestResults <Starship> swapiResponse;
            string serializedParameters = "?" + SerializeDictionary(parameters);
            string json = HttpRequest(apiUrl + url + serializedParameters, HttpMethod.GET);

            if (json == "")
            {
                swapiResponse = new RequestResults <Starship>()
                {
                    next = null
                };
            }
            else
            {
                swapiResponse = JsonConvert.DeserializeObject <RequestResults <Starship> >(json);
            }

            return(swapiResponse);
        }
Example #7
0
        private RequestResults <Starship> GetAllStarships(string entityName = "/starships/")
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("page", "1");
            RequestClass req = new RequestClass();
            RequestResults <Starship> result = req.GetByUrl <Starship>(entityName, parameters);

            if (result != null)
            {
                while (result.next != null)
                {
                    parameters["page"] = (Convert.ToInt32(parameters["page"]) + 1).ToString();
                    RequestResults <Starship> nextResult = req.GetByUrl <Starship>(entityName, parameters);

                    result.results.InsertRange(result.results.Count, nextResult.results);
                    result.next = String.IsNullOrEmpty(result.next) ? null : nextResult.next;
                }
            }
            return(result);
        }
        public void Execute(TestScenario testScenario, TestScenarioResults testScenarioResults,
                            bool shouldExecuteRecordedRequestPauses, List <string> ignoreUrlRequestsPatterns)
        {
            var testScenarioRunResult = new TestScenarioRunResult();
            var watch = Stopwatch.StartNew();

            foreach (var httpRequestDto in testScenario.Requests)
            {
                if (ShouldFilterRequest(httpRequestDto.Url, ignoreUrlRequestsPatterns))
                {
                    continue;
                }

                var requestResults = new RequestResults();
                try
                {
                    if (shouldExecuteRecordedRequestPauses)
                    {
                        Thread.Sleep(httpRequestDto.MillisecondsPauseAfterPreviousRequest);
                    }


                    var request  = CreateRestRequest(httpRequestDto);
                    var response = ExecuteMeasuredRequest(request);

                    UpdateCookiesCollection(response);

                    requestResults.ExecutionTime = response.ExecutionTime;

                    requestResults.StatusCode   = response.StatusCode;
                    requestResults.RequestUrl   = response.ResponseUri.ToString();
                    requestResults.IsSuccessful = response.IsSuccessful;
                    if (!response.IsSuccessful)
                    {
                        requestResults.ResponseContent = response.ResponseUri.ToString();
                    }

                    foreach (var loadTestAssertionHandler in _loadTestAssertionHandlers)
                    {
                        var responseAssertionResults = loadTestAssertionHandler.Execute(httpRequestDto, response);
                        requestResults.ResponseAssertionResults.AddRange(responseAssertionResults);
                    }
                }
                catch (Exception ex)
                {
                    requestResults.RequestUrl      = httpRequestDto.Url;
                    requestResults.IsSuccessful    = false;
                    requestResults.ResponseContent = $"{httpRequestDto.Url} {ex.Message}";
                    Console.WriteLine($"FAILED- {httpRequestDto.Url}");
                }

                testScenarioRunResult.RequestResults.Add(requestResults);
            }

            watch.Stop();

            testScenarioRunResult.ExecutionTime = watch.Elapsed;
            testScenarioResults.TimesExecuted++;
            testScenarioResults.Weight = testScenario.Weight;
            if (testScenarioRunResult.Passed)
            {
                testScenarioResults.TimesPassed++;
            }
            else
            {
                testScenarioResults.TimesFailed++;
            }

            testScenarioResults.TestScenarioRunResults.GetOrAdd(testScenarioRunResult.RunId, testScenarioRunResult);
        }