<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" /> <section name="FirefoxPreferences" type="System.Configuration.AppSettingsSection" /> <section name="FirefoxExtensions" type="System.Configuration.AppSettingsSection" /> <section name="ChromePreferences" type="System.Configuration.AppSettingsSection" /> <section name="InternetExplorerPreferences" type="System.Configuration.AppSettingsSection" /> <section name="ChromeExtensions" type="System.Configuration.AppSettingsSection" /> <section name="DriverCapabilities" type="System.Configuration.AppSettingsSection" /> <section name="ChromeArguments" type="System.Configuration.AppSettingsSection" /> <section name="Inputs" type="System.Configuration.AppSettingsSection" /> <section name="Outputs" type="System.Configuration.AppSettingsSection" /> <section name="keyVault" type="System.Configuration.AppSettingsSection" /> <section name="database" type="System.Configuration.AppSettingsSection" /> <section name="blobStorage" type="System.Configuration.AppSettingsSection" /> <section name="docDb" type="System.Configuration.AppSettingsSection" /> <section name="dataLake" type="System.Configuration.AppSettingsSection" /> <section name="tableStorage" type="System.Configuration.AppSettingsSection" /> <section name="appInsights" type="System.Configuration.AppSettingsSection" /> <section name="serviceBus" type="System.Configuration.AppSettingsSection" /> <section name="azureAd" type="System.Configuration.AppSettingsSection" /> <section name="adfpipeline" type="System.Configuration.AppSettingsSection" /> <section name="spex" type="System.Configuration.AppSettingsSection" /> <section name="reporting" type="System.Configuration.AppSettingsSection" /> <section name="chaosMonkey" type="System.Configuration.AppSettingsSection" /> <sectionGroup name="environments"> <section name="ChromeWindows" type="System.Configuration.AppSettingsSection" /> <section name="ChromeWindowsMobile" type="System.Configuration.AppSettingsSection" /> <section name="ChromeAndroid" type="System.Configuration.AppSettingsSection" /> <section name="ChromeMac" type="System.Configuration.AppSettingsSection" /> <section name="FirefoxWindows" type="System.Configuration.AppSettingsSection" /> <section name="SafariMac" type="System.Configuration.AppSettingsSection" /> <section name="SafariIPhone" type="System.Configuration.AppSettingsSection" /> <section name="SafariIPad" type="System.Configuration.AppSettingsSection" /> <section name="EdgeWindows" type="System.Configuration.AppSettingsSection" /> <section name="IEWindows" type="System.Configuration.AppSettingsSection" /> </sectionGroup> </configSections> <appSettings> <add key="Platform" value="Android" /> <add key="Env" value="dev" /> <add key="expectedResponseTimeInMs" value="5000" /> <add key="input" value="TestData\Input" /> <add key="output" value="TestData\Output" /> <add key="before" value="TestData\Before" /> <add key="after" value="TestData\After" /> <add key="DeploymentDate" value="" /> <add key="ReadFileUrl" value="" /> <!--mandatory keys--> <!-- URL Configuration--> <add key="protocol" value="https" /> <add key="host" value="www.google.com" /> <add key="url" value="/" /> <!--<add key="browser" value="Safari" />--> <add key="SimulateMobileBrowser" value="false" /> <add key="browser" value="Chrome" /> <!--InternetExplorer, Firefox, FirefoxPortable, PhantomJs, RemoteWebDriver, Edge, BrowserStack--> <add key="DriverCapabilities" value="CloudProvider" /> <!--The browser to use, based on which the appropriate browser 'Preferences/Arguments/Extensions' get picked up from the config below and applied to the DriverContext--> <add key="CrossBrowserEnvironment" value="ChromeWindows" /> <add key="BuildNumber" value="" /> <add key="FirefoxUseLegacyImplementation" value="false" /> <add key="FireFoxPath" value="FirefoxPortable.exe" /> <add key="PhantomJsPath" value="" /> <add key="RemoteWebDriverHub" value="http://hub-cloud.browserstack.com/wd/hub" /> <!--<add key="proxy" value="127.0.0.1:9999" />--> <!--nlog trace level must be set to "trace" for at least one logger to see EventFiringWebDriver logs--> <add key="EnableEventFiringWebDriver" value="false" /> <!-- Used for ElementStyle Validations --> <!--timeouts--> <add key="longTimeout" value="9" /> <add key="mediumTimeout" value="6" /> <add key="shortTimeout" value="3" /> <add key="ImplicitlyWaitMilliseconds" value="5000" /> <!--Enable or disable synchronization with AngularJS--> <add key="SynchronizationWithAngularEnabled" value="false" /> <!--Downloaded files, screenshots and page source location--> <add key="UseCurrentDirectory" value="true" /> <add key="DownloadFolder" value="TestOutput\\Downloads" /> <add key="ScreenShotFolder" value="TestOutput\\Screenshots" /> <add key="PageSourceFolder" value="TestOutput\\PageSources" /> <!--Screenshots and logging--> <add key="FullDesktopScreenShotEnabled" value="false" /> <add key="SeleniumScreenShotEnabled" value="true" /> <add key="GetPageSourceEnabled" value="false" /> <!--JavaScript Error Logging--> <add key="JavaScriptErrorLogging" value="false"/> <add key="JavaScriptErrorTypes" value="SyntaxError,EvalError,ReferenceError,RangeError,TypeError,URIError,Refused to display,Internal Server Error,Cannot read property" /> <!--Use default firefox profile?--> <add key="UseDefaultFirefoxProfile" value="false" /> <add key="PathToFirefoxProfile" value="C:\Users\ci_objectivity\AppData\Roaming\Mozilla\Firefox\Profiles" /> <add key="ClientSettingsProvider.ServiceUri" value="" /> <!--Perf logging--> <add key="EnablePerfDebugLogging" value="false" /> <add key="EnablePerfTag" value="false"/> <add key="PerfExecutor" value="locust -f {1}.py --no-web --host={3} --num-request=40 --clients=20 --hatch-rate=20 --print-stats --csv={1} --logfile={1}.log" /> <!--<add key="PerfExecutor" value="abs -n 40 -s 20 -c 20 -e {1}.csv -g {1}.tsv -T "application/json" -H "Authorization:Bearer AUTH_TOKEN" -H "BusinessContext:BUSINESS_CONTEXT" -v 3 "{2}"" />--> <add key="TestProjectName" value="EShopApplicationWebSolution" /> <add key="DefaultKeyPrefix" value="" /> <!--Driver and Browser paths: Leave it blank to pick it from the default output directory--> <add key="PathToChromeDriverDirectory" value="" /> <!--<add key="PathToFirefoxDriverDirectory" value="" /> <add key="PathToInternetExplorerDriverDirectory" value="" /> <add key="PathToEdgeDriverDirectory" value="" /> <add key="ChromeBrowserExecutableLocation" value="" /> <add key="FireFoxBrowserExecutableLocation" value="" />--> </appSettings> <keyVault> <add key="ClientId" value="" /> <add key="ClientSecret" value="" /> <!-- TODO: Replace Client-secret with Cert based approach --> <add key="VaultUri" value="https://xyz-secrets-{Env}-kv.vault.azure.net/secrets/" /> <!-- The URL should end with "secrets/" --> <add key="CertThumbprint" value="" /> <add key="CertPath" value="" /> <add key="CertPwd" value="" /> <add key="SqlClientIdKey" value="DbClientId" /> <!-- Key from KeyVault --> <add key="SqlClientSecretKey" value="DbClientSecret" /> <!-- Key from KeyVault --> </keyVault> <database> <add key="AdTenant" value="" /> <add key="DbKey" value="xyz-storage-core-{Env}-db" /> <!-- Database name --> <add key="DbServer" value="xyz-storage-core-{Env}-ss.database.windows.net" /> <!-- Database Server name --> <add key="DbUser" value="" /> <add key="DbPwd" value="" /> </database> <blobStorage> <add key="ConnectionStringKey" value="SecretName" /> <!-- Key from KeyVault --> </blobStorage> <tableStorage> <add key="ConnectionStringKey" value="SecretName" /> <!-- Key from KeyVault --> </tableStorage> <serviceBus> <add key="ConnectionStringKey" value="SecretName" /> <!-- Key from KeyVault --> </serviceBus> <docDb> <add key="DatabaseName" value="" /> <add key="CollectionName" value="" /> <add key="EndPointUrl" value="https://xyz-{Env}-cosmos-sql.documents.azure.com:443" /> <add key="AuthorizationKey" value="" /> <!-- Ideally, the Key from KeyVault --> </docDb> <dataLake> <add key="ClientId" value="" /> <add key="ClientSecret" value="" /> <add key="TenantId" value="" /> <add key="AccountName" value="" /> <add key="DnsSuffix" value="" /> </dataLake> <appInsights> <add key="Url" value="https://api.applicationinsights.io/v1/apps/" /> <add key="ApiKey" value="x-api-key" /> <add key="ApiValue" value="" /> <add key="AppId" value="" /> </appInsights> <azureAd> <add key="IsB2C" value="true" /> <add key="AuthUrl" value="https://login.microsoftonline.com/{TenantName}/oauth2/v2.0/authorize?p={SignInPolicyName}&client_id={clientId}&redirect_uri={RedirectPath}{CallBackPath}&response_type=code%20id_token&scope=openid%20profile%20offline_access%20{ApiScopes}" /> <add key="TenantName" value="xxx.onmicrosoft.com" /> <add key="AzureAdB2CInstance" value="https://login.microsoftonline.com/tfp" /> <add key="SignInPolicyName" value="xxx{Env}{Company}" /> <add key="Authority" value="{AzureAdB2CInstance}/{TenantName}/{SignInPolicyName}/v2.0" /> <add key="ApiPath" value="https://{TenantName}/{Company}{Env}api" /> <add key="ApiScopes" value="{ApiPath}/read" /> <add key="RedirectPath" value="http://localhost:8704" /><!--https://{Company}portal{Env}.npgtssweb.com--> <add key="ApiUrl" value="https://xxx-{Env}-api-services.azurewebsites.net/" /> <add key="CallBackPath" value="/{Company}-signin-oidc" /> <add key="ClientId" value="clientid" /> <add key="ClientSecret" value="clientsecret" /> <add key="UserIdField" value="//*[@id='signInName']" /> <add key="PasswordField" value="//*[@id='password']" /> <add key="SubmitField" value="//*[@id='next']" /> <!--<add key="SignedOutCallbackPath" value="/{Company}-signout-callback-oidc" />--> <!--<add key="ResetPasswordPolicyName" value="xxx{Env}{Company}" />--> </azureAd> <adfpipeline> <add key="AdfTenantId" value="" /> <add key="AdfClientId" value="" /> <add key="AdfClientSecret" value="" /> <add key="AdfSubscriptionId" value="" /> <add key="AdfResourceGroupName" value="" /> <add key="DataFactoryName" value=""/> <add key="WaitTimeInMilliSeconds" value=""/> </adfpipeline> <specFlow> <stepAssemblies> <stepAssembly assembly="Ocaramba" /> <stepAssembly assembly="EShopApplicationWebSolution" /> <stepAssembly assembly="Bdd.Core" /> <stepAssembly assembly="Bdd.Core.Web" /> </stepAssemblies> <!-- https://specflow.org/2019/updating-to-specflow-3/ --> <!-- For additional details on SpecFlow configuration options see http://go.specflow.org/doc-config --> </specFlow> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <targets async="true"> <target name="logfile" xsi:type="File" fileName="${basedir}\EShopApplicationWebSolution_${date:format=ddMMMyyyy:universalTime=false:cached=True}.log" layout="${longdate}|${level}|${callsite}|${message}|${exception}" /> <target name="perf" xsi:type="File" fileName="${basedir}\EShopApplicationWebSolution.Perf_${date:format=ddMMMyyyy_hh.mm.ss.tt:universalTime=false:cached=True}.json" layout="${message}," /> <target name="console" xsi:type="ColoredConsole" layout="[${level}] ${message}|${exception}" /> <target name="debugger" xsi:type="Debugger" layout="[${level}] ${message}|${exception}" /> </targets> <rules> <logger name="Perf" minlevel="Debug" writeTo="perf" /> <logger name="*" minlevel="Debug" writeTo="debugger" /> <logger name="*" minlevel="Debug" writeTo="logfile" /> <logger name="*" minlevel="Debug" writeTo="console" /> </rules> </nlog> <FirefoxPreferences> <!--add key="PreferenceToBeOverride" value="NewValue" /--> </FirefoxPreferences> <FirefoxExtensions> <!-->add key="FirefoxPluginName.xpi" value=""/--> </FirefoxExtensions> <InternetExplorerPreferences> </InternetExplorerPreferences> <ChromePreferences> <add key="download.default_directory" value="TestData" /> <add key="download.prompt_for_download" value="false" /> </ChromePreferences> <ChromeExtensions> <!-->add key="ChromePluginName.crx" value=""/--> </ChromeExtensions> <ChromeArguments> <add key="incognito" value="true" /> <add key="no-sandbox" value="true" /> <!--<add key="headless" value="true" /> <add key="disable-gpu" value="true" /> <add key="disable-software-rasterizer" value="true" />--> </ChromeArguments> <DriverCapabilities> <add key="browserstack.user" value=""/> <add key="browserstack.key" value=""/> <add key="project" value="EShopApplicationWebSolution"/> <add key="browserstack.debug" value="true" /> <add key="browserstack.networkLogs" value="true" /> <add key="browserstack.console" value="warnings" /> <!--https://www.browserstack.com/automate/capabilities--> <add key="acceptSslCerts" value="true" /> <!--<add key="browserstack.local" value="false" />--> <!--<add key="browserstack.ie.enablePopups" value="true" />--> <!--<add key="browserstack.safari.enablePopups" value="true" />--> <!--<add key="browserstack.selenium_version" value="3.5.2" />--> <!--TestingBot related stuff--> <!--<add key="key" value="" /> <add key="secret" value="" /> <add key="server" value="" />--> </DriverCapabilities> <environments> <ChromeWindows> <!--<add key="browser_version" value="65.0" />--> <add key="browser" value="chrome" /> <add key="os" value="Windows"/> <add key="os_version" value="10"/> <add key="resolution" value="1366x768" /> <add key="name" value="" /> </ChromeWindows> <ChromeWindowsMobile> <!--<add key="browser_version" value="65.0" />--> <add key="browser" value="chrome" /> <add key="os" value="Windows"/> <add key="os_version" value="10"/> <add key="resolution" value="720x480" /> <add key="name" value="" /> </ChromeWindowsMobile> <ChromeMac> <add key="browser" value="chrome" /> <add key="os" value="OS X"/> <add key="os_version" value="High Sierra"/> <add key="name" value="" /> </ChromeMac> <ChromeAndroid> <add key="os_version" value="7.1"/> <add key="device" value="Google Pixel" /> <add key="real_mobile" value="true" /> <add key="name" value="" /> <!--<add key="deviceOrientation" value="landscape" />--> </ChromeAndroid> <SafariMac> <add key="browser" value="safari" /> <add key="os" value="OS X"/> <add key="os_version" value="High Sierra"/> </SafariMac> <SafariIPhone> <add key="device" value="iPhone 7" /> <add key="os_version" value="10.3"/> <add key="real_mobile" value="true" /> </SafariIPhone> <SafariIPad> <add key="device" value="iPad 5th" /> <add key="os_version" value="11.0"/> <add key="real_mobile" value="true" /> </SafariIPad> <EdgeWindows> <add key="browser" value="edge" /> <add key="os" value="Windows"/> <add key="os_version" value="10"/> </EdgeWindows> <IEWindows> <add key="browser" value="IE" /> <add key="browser_version" value="10.0" /> <add key="os" value="Windows"/> <add key="os_version" value="8"/> </IEWindows> <FirefoxWindows> <add key="browser" value="firefox" /> <add key="os" value="Windows"/> <add key="os_version" value="10"/> </FirefoxWindows> </environments> <!-- Docs: https://vamsitp.github.io/spexdocs/ --> <!-- Alternative to Spex.json --> <spex> <add key="Account" value="{account}" /> <add key="Project" value="{project}" /> <add key="PersonalAccessToken" value="{pat}" /> <add key="AreaPath" value="{areaPath}" /> <add key="IterationPath" value="{project}\{iteration-path}" /> <add key="DefaultAssignedTo" value="{default-user-email}" /> <add key="TestProjectPath" value=".\EShopApplicationWebSolution.csproj" /> <add key="TestAssemblyPath" value=".\bin\debug\EShopApplicationWebSolution.dll" /> <!-- Comma separated filters (e.g. Features,FeatureName1,path2/FeatureName2) --> <add key="FeatureFilters" value="" /> <!-- Comma separated filters (e.g. ScenarioName1,ScenarioName2) --> <add key="ScenarioFilters" value="" /> <!-- Comma separated tags (e.g. @attach,@input) --> <add key="AttachmentTags" value="@attach" /> <!-- Root folder for attachments --> <add key="AttachmentsPath" value="TestData" /> <!-- Comma separated fields (e.g. customField1=defaultValue1,customField2=defaultValue2) --> <add key="AdditionalFields" value="" /> <add key="BddThenAsExpectedResult" value="false" /> <add key="ScenarioOutlineExamplesInline" value="false" /> <!-- Valid values: blank, s, r, m --> <add key="QuiteMode" value="" /> </spex> <reporting> <add key="Path" value="TestOutput\Reports" /> <add key="Enabled" value="true" /> <add key="DarkTheme" value="true" /> <add key="ShowSteps" value="true" /> <add key="ShowLogs" value="true" /> </reporting> <chaosMonkey> <add key="Enabled" value="false" /> <add key="sqlDb" value="SqlConnectionString" /> <add key="blobStorage" value="BlobConnectionString" /> <add key="tableStorage" value="TableConnectionString" /> <add key="serviceBus" value="ServiceBusConnectionString" /> <add key="dataLake" value="DataLakeConnectionString" /> <add key="function" value="FunctionConnectionString" /> <add key="logicApp" value="LogicAppConnectionString" /> <add key="aks" value="AksConnectionString" /> <add key="appService" value="AppServiceConnectionString" /> </chaosMonkey> <system.web> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> </configuration>