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}"); }
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); }