Пример #1
0
        public HighSecurityModeDisabled(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                configModifier.ForceTransactionTraces();
                configModifier.SetLogLevel("debug");
                configModifier.SetHighSecurityMode(false);
                configModifier.SetEnableRequestParameters(true);
                configModifier.SetTransactionTracerRecordSql("raw");
                configModifier.SetCustomHostName("custom-host-name");

                //CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                //CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true");
                //CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw");
                //CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "highSecurity" }, "enabled", "false");
                //CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "service" }, "licenseKey", Configuration.License);
            },
                exerciseApplication: () =>
            {
                _fixture.GetWithData(QueryStringParameterValue);
                _fixture.ThrowException();
            }
            );
            _fixture.Initialize();
        }
Пример #2
0
        public AspNetCoreHSMEnabledWithCustomAttributesTests(HSMAspNetCoreWebApiCustomAttributesFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions(
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level",
                                                                       "debug");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "highSecurity" },
                                                                       "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.Get();
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            }

                );
            _fixture.Initialize();
        }
        public PostgresAsyncLegacyAspPipelineTests(PostgresBasicMvcFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var webConfigPath = Path.Combine(fixture.DestinationApplicationDirectoryPath, "web.config");
                new WebConfigModifier(webConfigPath).ForceLegacyAspPipeline();

                var newRelicConfigFilePath = fixture.DestinationNewRelicConfigFilePath;
                var configModifier         = new NewRelicConfigModifier(newRelicConfigFilePath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(newRelicConfigFilePath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\NewRelic.Providers.Wrapper.Sql.Instrumentation.xml";
                CommonUtils.SetAttributeOnTracerFactoryInNewRelicInstrumentation(
                    instrumentationFilePath,
                    "", "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetPostgresAsync();
            }
            );
            _fixture.Initialize();
        }
        public MsSqlTestsBase(RemoteServiceFixtures.IMsSqlClientFixture fixture, ITestOutputHelper output, string expectedTransactionName)
        {
            _fixture                 = fixture;
            _fixture.TestLogger      = output;
            _expectedTransactionName = expectedTransactionName;

            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainEnabled", "true");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\NewRelic.Providers.Wrapper.Sql.Instrumentation.xml";
                CommonUtils.SetAttributeOnTracerFactoryInNewRelicInstrumentation(instrumentationFilePath, "", "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetMsSql();
            }
            );
            _fixture.Initialize();
        }
Пример #5
0
        public BasicAspWebService(RemoteServiceFixtures.BasicAspWebService fixture, ITestOutputHelper output)
            : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions(
                setupConfiguration: () =>
            {
                var newRelicConfig = _fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(newRelicConfig);
                configModifier.ForceTransactionTraces();

                //The purpose of this custom instrumentation file is to ignore noisy transactions.
                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\CustomInstrumentation.xml";
                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "System.Web.Extensions", "System.Web.Handlers.ScriptResourceHandler", "ProcessRequest", "NewRelic.Agent.Core.Tracer.Factories.IgnoreTransactionTracerFactory");
                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "System.Web", "System.Web.Handlers.AssemblyResourceLoader", "GetAssemblyInfo", "NewRelic.Agent.Core.Tracer.Factories.IgnoreTransactionTracerFactory");
                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "System.Web.Extensions", "System.Web.Script.Services.RestClientProxyHandler", "ProcessRequest", "NewRelic.Agent.Core.Tracer.Factories.IgnoreTransactionTracerFactory");
            },
                exerciseApplication: () =>
            {
                _fixture.InvokeAsyncCall();
                _fixture.AgentLog.WaitForLogLine(AgentLogBase.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            });
            _fixture.Initialize();
        }
Пример #6
0
        public CouchbaseAsyncGetTests(RemoteServiceFixtures.CouchbaseBasicMvcFixture fixture, ITestOutputHelper output)  : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.Couchbase_GetAsync();
                _fixture.Couchbase_GetAndTouchAsync();
                _fixture.Couchbase_GetDocumentAsync();
                _fixture.Couchbase_GetFromReplicaAsync();
                _fixture.Couchbase_GetWithLockAsync();
            }
            );

            _fixture.Initialize();
        }
        public StackExchangeRedisStrongNameTests(RemoteServiceFixtures.BasicMvcApplication fixture, ITestOutputHelper output)  : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\NewRelic.Providers.Wrapper.Sql.Instrumentation.xml";
                CommonUtils.SetAttributeOnTracerFactoryInNewRelicInstrumentation(
                    instrumentationFilePath, "NewRelic.Agent.Core.Tracer.Factories.Sql.DataReaderTracerFactory", "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetStackExchangeRedisStrongName();
                _fixture.GetStackExchangeRedisAsyncStrongName();
            }
            );

            _fixture.Initialize();
        }
        public CouchbaseUpsertTests(RemoteServiceFixtures.CouchbaseBasicMvcFixture fixture, ITestOutputHelper output)  : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.Couchbase_Upsert();
                _fixture.Couchbase_UpsertCASWithExpiration();
                _fixture.Couchbase_UpsertReplicatePersist();
                _fixture.Couchbase_UpsertReplicatePersistWithExpiration();
                _fixture.Couchbase_UpsertCASReplicatePersistWithExpiration();
                _fixture.Couchbase_UpsertMultiple();
                _fixture.Couchbase_UpsertMultipleParallelOptions();
                _fixture.Couchbase_UpsertMultipleParallelOptionsWithRangeSize();
                _fixture.Couchbase_UpsertDocument();
            }
            );

            _fixture.Initialize();
        }
        // The base test class runs tests for Owin 2; the derived classes test Owin 3 and 4
        protected OwinMiddlewareExceptionTestsBase(TFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.InvokeBadMiddleware();

                _fixture.AgentLog.WaitForLogLine(AgentLogFile.AnalyticsEventDataLogLineRegex, TimeSpan.FromMinutes(2));
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            }
            );
            _fixture.Initialize();
        }
        public CustomInstrumentationAsync(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\CustomInstrumentationAsync.xml";

                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "BasicMvcApplication", "BasicMvcApplication.Controllers.CustomInstrumentationAsyncController", "CustomMethodDefaultWrapperAsync", "NewRelic.Providers.Wrapper.CustomInstrumentationAsync.DefaultWrapperAsync", "MyCustomMetricName", 7);
                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "BasicMvcApplication", "BasicMvcApplication.Controllers.CustomInstrumentationAsyncController", "CustomSegmentTransactionSegmentWrapper", "NewRelic.Providers.Wrapper.CustomInstrumentationAsync.CustomSegmentWrapperAsync");
                CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "BasicMvcApplication", "BasicMvcApplication.Controllers.CustomInstrumentationAsyncController", "CustomSegmentAlternateParameterNamingTheSegment", "NewRelic.Providers.Wrapper.CustomInstrumentationAsync.CustomSegmentWrapperAsync");
            },
                exerciseApplication: () =>
            {
                _fixture.GetCustomInstrumentationAsync();
            }
            );
            _fixture.Initialize();
        }
        // The base test class runs tests for Owin 2; the derived classes test Owin 3 and 4
        public OwinWebApiTests(RemoteServiceFixtures.OwinWebApiFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetData();
                _fixture.Get();
                _fixture.Get404();
                _fixture.GetId();
                _fixture.Post();

                _fixture.AgentLog.WaitForLogLine(AgentLogFile.AnalyticsEventDataLogLineRegex, TimeSpan.FromMinutes(2));
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            }
            );
            _fixture.Initialize();
        }
Пример #12
0
        public InfiniteTracingTestsBase(TFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture = fixture;
            _fixture.SetTimeout(System.TimeSpan.FromMinutes(2));
            _fixture.TestLogger = output;

            _fixture.AddCommand($"InfiniteTracingTester StartAgent");
            _fixture.AddCommand($"InfiniteTracingTester Make8TSpan");
            _fixture.AddCommand($"InfiniteTracingTester Wait");


            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath);

                configModifier.ForceTransactionTraces()
                .EnableDistributedTrace()
                .EnableInfinteTracing(_fixture.TestConfiguration.TraceObserverUrl)
                .SetLogLevel("finest");
            }
            );

            _fixture.Initialize();
        }
        public RestSharpInstrumentationDistributedTracing(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions(
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.SetOrDeleteDistributedTraceEnabled(true);
                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.GetRestSharpSyncClient(method: "GET", generic: false);
                _fixture.GetRestSharpSyncClient(method: "PUT", generic: false);
                _fixture.GetRestSharpSyncClient(method: "POST", generic: false);
                _fixture.GetRestSharpSyncClient(method: "DELETE", generic: false);
                _fixture.GetRestSharpClientTaskCancelled();

                //Adding some time for metrics to be fully generated.
                Thread.Sleep(3000);
            }
                );
            _fixture.Initialize();
        }
        public DTSupportabilityMetricTests(RemoteServiceFixtures.DTBasicMVCApplicationFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;

            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.SetOrDeleteDistributedTraceEnabled(true);
                configModifier.ForceTransactionTraces();
                configModifier.SetOrDeleteSpanEventsEnabled(true);
            },
                exerciseApplication: () =>
            {
                _fixture.GenerateMajorVersionMetric();
                _fixture.GenerateIgnoredNullMetric();
                _fixture.GenerateParsePayloadMetric();
                _fixture.GenerateAcceptSuccessMetric();
                _fixture.GenerateUntrustedAccountMetric();
                _fixture.GenerateCreateSuccessMetric();
            }
            );

            _fixture.Initialize();
        }
Пример #15
0
        public CouchbaseMiscTests(RemoteServiceFixtures.CouchbaseBasicMvcFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.Couchbase_Unlock();
                _fixture.Couchbase_Prepend();
                _fixture.Couchbase_Append();
                _fixture.Couchbase_Observe();
                _fixture.Couchbase_Touch();
                _fixture.Couchbase_Increment();
                _fixture.Couchbase_Decrement();
                _fixture.Couchbase_Exists();
                _fixture.Couchbase_Invoke();
            }
            );

            _fixture.Initialize();
        }
Пример #16
0
        public NetStandardLibraryInstrumentation(TFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                var instrumentationXmlFilePath = Path.Combine(fixture.DestinationNewRelicExtensionsDirectoryPath, "TestCustomInstrumetnation.xml");

                CommonUtils.AddCustomInstrumentation(
                    instrumentationFilePath: instrumentationXmlFilePath,
                    assemblyName: "NetStandardTestLibrary",
                    typeName: "NetStandardTestLibrary.NetStandardTestLibUtil",
                    methodName: "Test",
                    wrapperName: "NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory");

                _fixture.RemoteApplication.NewRelicConfig.SetLogLevel("finest");
                _fixture.RemoteApplication.NewRelicConfig.ForceTransactionTraces();
                _fixture.RemoteApplication.NewRelicConfig.SetOrDeleteDistributedTraceEnabled(true);
                _fixture.RemoteApplication.NewRelicConfig.SetCATEnabled(false);

                _fixture.AddCommand("AssemblyHelper LoadAssemblyFromFile NetStandardTestLibrary.dll");
                _fixture.AddCommand($"NetStandardTestLibUtil Test {COUNT_ITERATIONS}");
            }
            );
            _fixture.Initialize();
        }
Пример #17
0
        public PostgresStoredProcedureAsyncCoreTests(PostgresBasicMvcCoreFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
                configModifier.SetLogLevel("finest");

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainEnabled", "true");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "datastoreTracer", "queryParameters" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.PostgresParameterizedStoredProcedureAsync(_procedureName);
                _fixture.AgentLog.WaitForLogLine(AgentLogBase.TransactionTransformCompletedLogLineRegex);
            }
            );
            _fixture.Initialize();
        }
        public ConnectResponseHandlingTests(MvcWithCollectorFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.AddActions
            (
                setupConfiguration: () =>
            {
                var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath);
                configModifier.EnableSpanEvents(true);
                configModifier.ForceTransactionTraces();
                configModifier.SetLogLevel("finest");
            },
                exerciseApplication: () =>
            {
                _fixture.Get();
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.AgentConnectedLogLineRegex, TimeSpan.FromMinutes(1));
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.HarvestFinishedLogLineRegex, TimeSpan.FromMinutes(1));
                _collectedRequests = _fixture.GetCollectedRequests();
                _requestHeaderMapValidationData = _fixture.GetRequestHeaderMapValidationData();
            }
            );

            _fixture.Initialize();
        }
Пример #19
0
 public HighSecurityModeEnabled(RemoteServiceFixtures.HSMBasicMvcApplicationTestFixture fixture, ITestOutputHelper output)
 {
     _fixture            = fixture;
     _fixture.TestLogger = output;
     _fixture.Actions
     (
         setupConfiguration: () =>
     {
         var configPath     = fixture.DestinationNewRelicConfigFilePath;
         var configModifier = new NewRelicConfigModifier(configPath);
         configModifier.ForceTransactionTraces();
         configModifier.SetLogLevel("debug");
         configModifier.SetHighSecurityMode(true);
         configModifier.SetEnableRequestParameters(true);
         configModifier.SetTransactionTracerRecordSql("raw");
         configModifier.SetCustomHostName("custom-host-name");
     },
         exerciseApplication: () =>
     {
         _fixture.GetWithData(QueryStringParameterValue);
         _fixture.ThrowException();
     }
     );
     _fixture.Initialize();
 }
        public AspNetCoreLocalHSMEnabledAndServerSideHSMDisabledTests(RemoteServiceFixtures.AspNetCoreMvcBasicRequestsFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "service" }, "ssl", "false");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "highSecurity" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetWithData(QueryStringParameterValue);
                _fixture.ThrowException();
            }
            );
            _fixture.Initialize();
        }
        public RabbitMqLegacyReceiveTests(RemoteServiceFixtures.RabbitMqLegacyReceiverFixture fixture, ITestOutputHelper output)
        {
            _fixture                      = fixture;
            _fixture.TestLogger           = output;
            _fixture.CommandLineArguments = $"--queue={_fixture.QueueName}";

            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = _fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.SetLogLevel("all");
                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.CreateQueueAndSendMessage();
                _fixture.AgentLog.WaitForLogLine(AgentLogBase.TransactionTransformCompletedLogLineRegex, TimeSpan.FromSeconds(30));
            }
            );

            _fixture.Initialize();
        }
        public CustomAttributesIgnored(RemoteServiceFixtures.CustomAttributesWebApi fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions(setupConfiguration: () =>
            {
                var configPath     = _fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                CommonUtils.AddXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "attributes" }, "exclude", "*");
                CommonUtils.AddXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "attributes" }, "include", "name");
                CommonUtils.AddXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "attributes" }, "include", "foo");
                CommonUtils.AddXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "attributes" }, "include", "hey");
            },

                             exerciseApplication: () =>
            {
                _fixture.Get();

                //This transaction trace will appear as error trace instead of transaction trace.
                _fixture.Get404();
                _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            }

                             );
            _fixture.Initialize();
        }
Пример #23
0
        public PostgresTests(PostgresBasicMvcFixture fixture, ITestOutputHelper output)  : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\NewRelic.Providers.Wrapper.Sql.Instrumentation.xml";
                CommonUtils.SetAttributeOnTracerFactoryInNewRelicInstrumentation(
                    instrumentationFilePath,
                    "NewRelic.Agent.Core.Tracer.Factories.Sql.DataReaderTracerFactory", "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetPostgres();
            }
            );
            _fixture.Initialize();
        }
        // The base test class runs tests for Owin 2; the derived classes test Owin 3 and 4
        protected OwinWebApiStatusCodeRollupTestsBase(TFixture fixture, ITestOutputHelper output) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                foreach (var bogusPath in bogusPaths)
                {
                    _fixture.GetBogusPath(bogusPath);
                }

                _fixture.AgentLog.WaitForLogLine(AgentLogFile.MetricDataLogLineRegex, TimeSpan.FromMinutes(2));
            }
            );
            _fixture.Initialize();
        }
        public MsSqlQueryParameterCaptureTestsBase(RemoteServiceFixtures.IMsSqlClientFixture fixture, ITestOutputHelper output, string expectedTransactionName, bool paramsWithAtSigns)
        {
            _fixture                 = fixture;
            _fixture.TestLogger      = output;
            _expectedTransactionName = expectedTransactionName;
            _paramsWithAtSigns       = paramsWithAtSigns;


            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
                configModifier.SetLogLevel("finest");           //This has to stay at finest to ensure parameter check security


                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainEnabled", "true");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "datastoreTracer", "queryParameters" }, "enabled", "true");

                var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\NewRelic.Providers.Wrapper.Sql.Instrumentation.xml";
                CommonUtils.SetAttributeOnTracerFactoryInNewRelicInstrumentation(instrumentationFilePath, "", "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetMsSql_WithParameterizedQuery(_paramsWithAtSigns);
            }
            );
            _fixture.Initialize();
        }
        public CatDisabledHeaderPresent(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output)
            : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration" }, "crossApplicationTracingEnabled", "false");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "crossApplicationTracer" }, "enabled", "false");
            },
                exerciseApplication: () =>
            {
                _fixture.GetIgnored();
                _responseHeaders = _fixture.GetWithCatHeader();
            }
            );
            _fixture.Initialize();
        }
Пример #27
0
        public ChangeLogDirectoryTests(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                var testLoggingDirectory = Path.Combine("C:\\", "IntegrationTestWorkingDirectory", _fixture.UniqueFolderName,
                                                        "TestLoggingDirectory");

                Directory.CreateDirectory(testLoggingDirectory);

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "info");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "directory", testLoggingDirectory);
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "fileName", "dotNetAgent.log");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "auditLog", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.Get();
            }
            );
            _fixture.Initialize();
        }
Пример #28
0
        public ChangeLogFilenameTestsBase(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output, ConfigSettingTestCase testCase) : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;
            _testCase           = testCase;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "info");
                if (_testCase == ConfigSettingTestCase.ConfigFile || _testCase == ConfigSettingTestCase.Both)
                {
                    CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "fileName", CustomLogFileNameFromConfig);
                }
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "auditLog", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.Get();
            }
            );
            if (_testCase == ConfigSettingTestCase.EnvVar || _testCase == ConfigSettingTestCase.Both)
            {
                _fixture.SetAdditionalEnvironmentVariable("NEW_RELIC_LOG", CustomLogFileNameFromEnvVar);
            }
            _fixture.Initialize();
        }
Пример #29
0
        public MsSqlStoredProcedureUsingOleDbDriverTestsBase(OleDbBasicMvcFixture fixture, ITestOutputHelper output, bool paramsWithAtSigns) : base(fixture)
        {
            _paramsWithAtSigns = paramsWithAtSigns;

            _fixture            = fixture;
            _fixture.TestLogger = output;
            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);

                configModifier.ForceTransactionTraces();
                configModifier.SetLogLevel("finest");

                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainEnabled", "true");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "explainThreshold", "1");
                CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "datastoreTracer", "queryParameters" }, "enabled", "true");
            },
                exerciseApplication: () =>
            {
                _fixture.GetMsSqlParameterizedStoredProcedureUsingOleDbDriver(_paramsWithAtSigns);
                _fixture.AgentLog.WaitForLogLine(AgentLogBase.TransactionTransformCompletedLogLineRegex);
            }
            );
            _fixture.Initialize();
        }
Пример #30
0
        public AspNetCoreMvcFrameworkTests(RemoteServiceFixtures.AspNetCoreMvcFrameworkFixture fixture, ITestOutputHelper output)
            : base(fixture)
        {
            _fixture            = fixture;
            _fixture.TestLogger = output;

            _fixture.UseLocalConfig = true;

            _fixture.Actions
            (
                setupConfiguration: () =>
            {
                var configPath     = fixture.DestinationNewRelicConfigFilePath;
                var configModifier = new NewRelicConfigModifier(configPath);
                configModifier.ForceTransactionTraces();
            },
                exerciseApplication: () =>
            {
                _fixture.GetCORSPreflight();
                _fixture.Get();
                //We need to wait for a harvest cycle otherwise we do not always have enough time for the transaction
                //to complete and have all of its data included in the forced harvest during shutdown.
                _fixture.AgentLog.WaitForLogLine(AgentLogBase.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2));
            }
            );
            _fixture.Initialize();
        }