/// <summary> /// Constructor. Performs initialization. /// </summary> /// <param name="param"></param> protected BaseTest(TestLaunchParam param) { _cameraAddress = param.ServiceAddress; _cameraIp = param.CameraIp; _cameraId = param.CameraUUID; _nic = param.NIC; _username = param.UserName; _password = param.Password; _useUTCTimestamp = param.UseUTCTimestamp; _operator = param.Operator; _videoForm = param.VideoForm; _environmentSettings = param.EnvironmentSettings; _ptzNodeToken = param.PTZNodeToken; _useEmbeddedPassword = param.UseEmbeddedPassword; _password1 = param.Password1; _password2 = param.Password2; _operationDelay = param.OperationDelay; _recoveryDelay = param.RecoveryDelay; _relayOutputDelayTime = param.RelayOutputDelayTime; _rebootTimeout = param.RebootTimeout; _semaphore = new TestSemaphore(); _trafficListener = new TrafficListener(); _trafficListener.RequestSent += LogRequest; _trafficListener.ResponseReceived += LogResponse; _endpointController = new EndpointController(new EndpointAddress(_cameraAddress)); _credentialsProvider = new CredentialsProvider(); _credentialsProvider.Username = param.UserName; _credentialsProvider.Password = param.Password; }
protected BaseOnvifTest(TestLaunchParam param) : base(param) { _features = param.Features; _cameraAddress = param.ServiceAddress; _cameraIp = param.CameraIp; _cameraId = param.CameraUUID; _nic = param.NIC; _username = param.UserName; _password = param.Password; _useUTCTimestamp = param.UseUTCTimestamp; _operator = param.Operator; _videoForm = param.VideoForm; _environmentSettings = param.EnvironmentSettings; _messageTimeout = param.MessageTimeout; _operationDelay = param.OperationDelay; _recoveryDelay = param.RecoveryDelay; _rebootTimeout = param.RebootTimeout; _trafficListener = new TrafficListener(); _trafficListener.RequestSent += LogRequest; _trafficListener.ResponseReceived += LogResponse; _endpointController = new EndpointController(new EndpointAddress(_cameraAddress)); _credentialsProvider = new CredentialsProvider(); _credentialsProvider.Username = param.UserName; _credentialsProvider.Password = param.Password; _credentialsProvider.Security = param.Security; }
protected virtual void Initialize(BaseTest test) { _trafficListener = new TrafficListener(); _trafficListener.RequestSent += test.LogRequest; _trafficListener.ResponseReceived += test.LogResponse; test.AttachListenerTimeFilter(_trafficListener); }
/// <summary> /// Constructor. Performs initialization. /// </summary> /// <param name="param"></param> protected BaseTest(BaseTestParam param) { _semaphore = new TestSemaphore(); _trafficListener = new TrafficListener(); _trafficListener.RequestSent += LogRequest; _trafficListener.ResponseReceived += LogResponse; }
public void AttachListenerTimeFilter(TrafficListener Listener) { Listener.MessageProcessingTime += i => { if (null != _currentStep && 0 != i && !string.IsNullOrEmpty(_currentStep.Request) && TrafficListener.untrackedRequests.All(e => !_currentStep.Request.Contains(e))) { //if (_currentStep.ProcessingTimeSpecified) // LogStepEvent(string.Format("Processing time for step '{0}' is already specified: {1}.", _currentStep.StepName, _currentStep.ProcessingTime)); _currentStep.ProcessingTimes.Add(i); } }; }
/// <summary> /// Updates test log in "context". /// </summary> public void UpdateTestLog() { TestLog log = new TestLog(); log.TestResults = _testResults; log.Features = _td.Features; log.TestExecutionTime = _testExecutionTime; log.InitializationData = _initializationData; log.FeaturesDefinitionLog = _featureDefinitionLog; log.Timeouts = new RealTimeouts(); TrafficListener.GetAggregated(out log.Timeouts.Maximum, out log.Timeouts.Median, out log.Timeouts.Average); System.Diagnostics.Debug.WriteLine(string.Format("RunTests stopped with Max={0}, Median={1} and Mean={2}", log.Timeouts.Maximum, log.Timeouts.Median, log.Timeouts.Average)); ContextController.UpdateTestLog(log); }
public static void AddTrafficListener(TrafficListener listener) => ListenerList.Add(listener);
/// <summary> /// Method for running tests in the background. /// </summary> void RunTests() { TrafficListener.ResetStatistics(); System.Diagnostics.Debug.WriteLine("RunTests started"); //_haltEvent.Reset(); // types description for test class constructor Type[] types = new Type[] { typeof(TestLaunchParam) }; // parameters as defined in TestEngine. TestLaunchParam param = new TestLaunchParam(); param.ServiceAddress = _parameters.Address; param.CameraIp = _parameters.CameraIP; param.CameraUUID = _parameters.CameraUUID; param.NIC = _parameters.NetworkInterfaceController; param.MessageTimeout = _parameters.MessageTimeout; param.RebootTimeout = _parameters.RebootTimeout; param.UserName = _parameters.UserName; param.Password = _parameters.Password; param.UseUTCTimestamp = _parameters.UseUTCTimestamp; param.Operator = _parameters.Operator; param.VideoForm = _parameters.VideoForm; param.EnvironmentSettings = _parameters.EnvironmentSettings; param.PTZNodeToken = _parameters.PTZNodeToken; param.UseEmbeddedPassword = _parameters.UseEmbeddedPassword; param.Password1 = _parameters.Password1; param.Password2 = _parameters.Password2; param.OperationDelay = _parameters.OperationDelay; param.RecoveryDelay = _parameters.RecoveryDelay; param.SecureMethod = _parameters.SecureMethod; param.SubscriptionTimeout = _parameters.SubscriptionTimeout; param.EventTopic = _parameters.EventTopic; param.TopicNamespaces = _parameters.TopicNamespaces; param.RelayOutputDelayTimeMonostable = _parameters.RelayOutputDelayTimeMonostable; param.RecordingToken = _parameters.RecordingToken; param.SearchTimeout = _parameters.SearchTimeout; param.MetadataFilter = _parameters.MetadataFilter; param.RetentionTime = _parameters.RetentionTime; param.AdvancedPrameters = _parameters.AdvancedParameters; // parameters for constructor. args = new object[] { param }; param.DeclaredScopes.AddRange(_scopes); ExecutableTestList processes = _parameters.TestCases; bool featuresDefined = _featuresDefined; switch (_parameters.FeatureDefinition) { case FeatureDefinitionMode.Default: param.Features.AddRange(_features); break; case FeatureDefinitionMode.AssumeSupported: featuresDefined = true; param.FeatureDefinitionMode = Base.Definitions.FeatureDefinitionMode.AllSupported; break; case FeatureDefinitionMode.AssumeNotSupported: param.FeatureDefinitionMode = Base.Definitions.FeatureDefinitionMode.AllNotSupported; featuresDefined = true; break; } if (!featuresDefined) { if (!processes.Contains(FeaturesDefinitionProcess.This)) { processes.Add(FeaturesDefinitionProcess.This); } System.Diagnostics.Debug.WriteLine("SECURITY: NONE"); param.Security = Security.None; } else { if (processes.Contains(FeaturesDefinitionProcess.This)) { processes.Remove(FeaturesDefinitionProcess.This); } // if "Assume all supported", Digest also is assumed to be supported !!! if (_features.Contains(Feature.Digest) || _parameters.FeatureDefinition == Tests.Engine.FeatureDefinitionMode.AssumeSupported) { System.Diagnostics.Debug.WriteLine("SECURITY: DIGEST"); param.Security = Security.Digest; } else { System.Diagnostics.Debug.WriteLine("SECURITY: WS-USERNAME"); param.Security = Security.WS; } // // we HAVE features => Controller is notified already about profile. // so, if we just run some tests - there is no reason to colour profiles tree // or select tests in test tree. // bool defineTests = (processes.Count == 1 && processes.Contains(FeaturesDefinitionProcess.This)) && _parameters.FeatureDefinition != FeatureDefinitionMode.Define; if (defineTests) { List <Feature> features = new List <Feature>(); features.AddRange(_features); features.AddRange(_undefinedFeatures); // define test cases via features detected List <TestInfo> tests = ConformanceLogicHandler.GetTestsByFeatures(_parameters.AllTestCases, features, _parameters.Conformance); // no tests in list, not a feature definition process - add tests to list _parameters.TestCases.AddRange(tests); // notify anyway (?) // - really, notify if not notified previously... ReportInitializationCompleted(tests, defineTests); } } // if (_parameters.TestCases.Count > 0) // { // // if this is a request to run tests, not only feature definition // if (!(_parameters.TestCases.Count == 1 && _parameters.TestCases.First().ProcessType == ProcessType.FeatureDefinition )) // { // processes.AddRange(_parameters.TestCases); // } // } var bCompletedNormally = RunTestExecutionLoop(processes, types, param); // all tests are performed. _state = TestState.Idle; if (TestSuiteCompleted != null && !_shutDownInProgress) { TestSuiteCompleted(_parameters, bCompletedNormally); } System.Diagnostics.Debug.WriteLine("RunTests stopped"); /* * int Max; * int Median; * int Mean; * TrafficListener.GetAggregated(out Max, out Median, out Mean); * System.Diagnostics.Debug.WriteLine(string.Format("RunTests stopped with Max={0}, Median={1} and Mean={2}", Max, Median, Mean)); */ }