oauth2-proxy/AutomationTest
aswin-in-philips 3740172ef2 adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
..
BusinessLayer adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Models adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Tests adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Utilities adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
.editorconfig adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Env.json adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Philips.EDI.Foundation.APIGateway.AutomationTest.csproj adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Philips.EDI.Foundation.APIGateway.AutomationTest.json adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Philips.EDI.Foundation.APIGateway.AutomationTest.nuspec adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
Philips.EDI.Foundation.APIGateway.AutomationTest.sln adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
README.md adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
automation.packages.proj adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30
log4net.config adding terraform and terragrunt files 2022-05-02 18:22:08 +05:30

README.md

API Gateway Automation

Pre-Condition

Mountebank application should be deployed along with API Gateway deployment. Mountebank deployment with terrform: https://github.com/philips-internal/hds-auth-gateway/blob/master/Automation/deploy/cloud/app_monteback.tf

Allow Injection command should be passed while starting the mountebank application

command = "node bin/mb --allowInjection"

PostDeploymentTest has to executed first in order to create less payload and heavy payload mockservices for automation. (TestCategory = PostDeployment)

Mockservice configuration files https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/MockServiceConfigs

Automation Configuration

https://github.com/philips-internal/hds-auth-gateway/blob/master/AutomationTest/Env.json

AppConfiguration section is for static confguration values and drive name can be changed from C:\ to other drive for automation word reports and screenshots.

"AppConfiguration": { }

PipelineConfiguration section is for dynamic configuration which will be filled from tfs pipeline or user can fill before executing the automation.

"PipelineConfiguration": { }

Key Description Type
AuthUserName IAM login user email address, For browser based login tests and also for access token authenticator tests String
AuthPassword IAM login password String
APIGatewayBaseUrl BaseUrl fo the API gateway
Examples:
For Cloud: https://covid-ver2-api-gateway.us-east.philips-healthsuite.com
For On-Prem: https://localhost (or) https://hostname
String
OauthProxyCookieTimeoutInSeconds Oauth proxy cookie time out in seconds ( default value: 15 ) Integer
TenantDetails Tenant information with user-friendly tenant sub-domain name and its relevant Iam organization-ID.
Default Values:
"ValidTenant":{"tenantName":"","iamOrganizationId":""}
"InvalidTenant":{"tenantName":"invalidtenant","iamOrganizationId":""}
"AccessTokenTenant":{"tenantName":"accesstokentenant","iamOrganizationId":""}
String
OauthClientID IAM Oauth client id or User name. Used to get the Authorization Basic token, which will be used to get User or ServiceId Access token. String
OauthClientSecret IAM Oauth client password String
CFSpaceName Cloud foundry space name where the api gateway is deployed String
CFUserName Cloud foundry user name String
CFPassword Cloud foundry user password String
CookieName OAuth2 Proxy cookie name String
CFLoginUrl Cloud foundry login url (default: https://login.cloud.pcftest.com/oauth/token) String
CFAppsUrl Cloud foundry apps url (default: https://api.cloud.pcftest.com/v3/apps) String
CFAuthenticatorAppName Token Authenticator internal app name deployed in the space String
AuthenticatorSessionExpireOffsetInPercent Redis cache clear timeout offset for Authenticator app (default: 10), eg: if set to 99, then Redis cache will get cleared in 18 seconds ( if IAM access token timeout: 30 minutes) String
ServiceID Service identities ID in IAM String
ServiceIDPrivateKey ServiceID's private key in IAM String
IDMClientBaseUrl IDM client url till identiry (eg: https://idm-client-test.us-east.philips-healthsuite.com/authorize/identity) IAM String
String
IAMAuthorizationUrl IAM client authorization url (eg: https://iam-client-test.us-east.philips-healthsuite.com/authorize/oauth2/token) IAM String
IAMAccessTokenUrl IAM client access token url (eg: https://iam-client-test.us-east.philips-healthsuite.com/oauth2/access_token) IAM String
AccessTokenTestRoleName Role with BASIC.READ permission created for an organization ( eg: RoleName: TESTROLE ) which is used for access token authenticator tests String

Automation Test categories and corresponding Envoy configuration files to deploy

TestCategory Envoy file Comments
WithoutMultitenancy https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/EnvoyConfigs/envoyconfig_without_multitenancy.yaml With Standalone Redis
OrgNameInUrl https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/EnvoyConfigs/envoyconfig_with_multitenancy.yaml With Standalone Redis and APIGateway environment variable ORG_ID_SOURCE="url"
OrgIdInHeader https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/EnvoyConfigs/envoyconfig_with_multitenancy.yaml With Cluster Redis and APIGateway environment variable ORG_ID_SOURCE="header"
UserAccessToken https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/EnvoyConfigs/envoyconfig_withoutMultitenancy_WithAuthenticator.yaml With Standalone Redis"
ServiceIDAccessToken https://github.com/philips-internal/hds-auth-gateway/tree/master/AutomationTest/Tests/Data/EnvoyConfigs/envoyconfig_withoutMultitenancy_WithAuthenticator.yaml With Standalone Redis"

Automation Test Reports

Automation test reports will be available as word report and trx report file which is interated with tfs release pipeline and displayed in test results dashboard. https://tfsemea1.ta.philips.com/tfs/TPC_Region11/SAL/_dashboards/dashboard/76acadfe-3e1f-4225-9f4f-19af794bc95f

Manual Test cases suite:

https://tfsemea1.ta.philips.com/tfs/TPC_Region11/Healthcare%20IT/_testPlans/define?planId=1297712&suiteId=1298021