Example #1
0
        public TestResult RunTest(TestTarget test, RestClient client, string testCase, string token, string clientID)
        {
            ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
            TestTargetTestCases tc         = test.TestCases.FirstOrDefault(x => x.name == testCase);
            TestResult          testResult = new TestResult();

            var request = GetTargetRestRequest(test, tc, token, clientID);
            var res     = client.Execute(request);

            testResult.Response = res;
            testResult.TestName = test.Name;
            testResult.Status   = testResult.Response.StatusCode == (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), tc.resultCode.ToString()) ? "PASSED" : "FAILED";

            TestResults.Add(testResult);

            Logger.Information($"------------------------------------------------------");
            Logger.Information($"Test Name: {testResult.TestName} ");
            Logger.Information($"Test Case: {tc.name} ");
            Logger.Information($"Test status code: {testResult.Response.StatusCode} ");
            if (testResult.Status == "PASSED")
            {
                Logger.Information($"Test Result: {testResult.Status}");
            }
            else
            {
                Logger.Error($"Test Result: {testResult.Status}");
            }


            return(testResult);
        }
        public string ExecuteApigeeTest(string testName, string testCase)
        {
            TestTarget          testTarget = (TestTarget)testApplication.Targets.FirstOrDefault(x => x.Name == testName);
            ProductApp          apigeeApp  = (ProductApp)testApplication.Environments[0].ProductApps.FirstOrDefault(x => x.ID == testTarget?.ProductAppID);
            TestTargetTestCases tc         = testTarget?.TestCases.FirstOrDefault(x => x.name == testCase);

            var res = testHelper.RunTest(testTarget, testApplication.Client, testCase, useInvalidToken ? "" : ApigeeToken(apigeeApp?.ClientID, apigeeApp?.ClientSecret), useInvalidApiKey ? "" : apigeeApp?.ClientID);

            if (res?.Response.StatusCode == (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), tc.resultCode.ToString()))
            {
                return($"SUCCESS: Status: {res?.Response.StatusCode}");
            }

            return($"FAILURE: {res?.Response.StatusCode} : {res?.Response.ErrorMessage}");
        }
        public string ExecuteBxhTest(string testName, string testCase)
        {
            TestTarget          testTarget = (TestTarget)testApplication.Targets.FirstOrDefault(x => x.Name == testName);
            TestTargetApiKey    envApiKey  = (TestTargetApiKey)testApplication.Environments[0].ApiKey;
            TestTargetTestCases tc         = testTarget?.TestCases.FirstOrDefault(x => x.name == testCase);

            var res = testHelper.RunTest(testTarget, testApplication.Client, testCase, useInvalidApiKey ? "" : envApiKey.value, "");

            if (res?.Response.StatusCode == (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), tc.resultCode.ToString()))
            {
                return($"SUCCESS: Status: {res?.Response.StatusCode}");
            }

            return($"FAILURE: {res?.Response.StatusCode} : {res?.Response.ErrorMessage}");
        }
        public string ExecuteInnerTest(string testName, string testCase)
        {
            TestTarget            testTarget = (TestTarget)_testApplication.Targets.FirstOrDefault(x => x.Name == testName);
            TestTargetCredentials innerCreds = (TestTargetCredentials)_testApplication.Environments[0].credentials;
            TestTargetTestCases   tc         = testTarget?.TestCases.FirstOrDefault(x => x.name == testCase);

            var res = _testHelper.RunTest(testTarget, _testApplication.Client, testCase, InnerToken(innerCreds.username, innerCreds.password), "");

            if (res?.Response.StatusCode == (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), tc.resultCode.ToString()))
            {
                return($"SUCCESS: Status: {res?.Response.StatusCode}");
            }

            return($"FAILURE: {res?.Response.StatusCode} : {res?.Response.ErrorMessage}");
        }
Example #5
0
        public RestRequest GetTargetRestRequest(TestTarget test, TestTargetTestCases testCase, string token, string clientId)
        {
            //setup request
            var request = new RestRequest(test.TargetURL, (Method)Enum.Parse(typeof(Method), test.HTTPVerb));

            //add headers
            foreach (var header in test.Headers)
            {
                if (header.key == "api-key")   //only used for apigee for now...
                {
                    request.AddHeader(header.key, clientId);
                }
                else if (header.key == "Authorization" && header.value == "Bearer")
                {
                    request.AddHeader(header.key, header.value + " " + token);
                }
                else if (header.key == "x-api-key")
                {
                    request.AddHeader(header.key, token);
                }
                else
                {
                    request.AddHeader(header.key, header.value);
                }
            }
            List <TestTargetParameters> parameters = new List <TestTargetParameters>();

            testCase.paramId.ForEach(x =>
            {
                parameters.Add(test.Parameters.FirstOrDefault(y => y.id == x));
            });

            //add params
            foreach (var param in parameters)
            {
                request.AddParameter(param.key, param.value, (ParameterType)Enum.Parse(typeof(ParameterType), param.type));
            }

            return(request);
        }