Пример #1
0
        public virtual void AddData(TestInstanceData testInstance)
        {
            Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance);
            string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.InstanceTableName, columnToValue);

            ExecuteWriteCommand(cmd);
        }
Пример #2
0
        public void ReadInstance()
        {
            _dataMaintainer.DesigntimeInitialize();
            TestInstanceData testInstanceData1 = _dataMaintainer.GetTestInstance(_testInstanceData1.RuntimeHash);

            Assert.IsTrue(AreEqauls(_testInstanceData1, testInstanceData1));

            TestInstanceData testInstanceData2 = _dataMaintainer.GetTestInstance(_testInstanceData2.RuntimeHash);

            Assert.IsTrue(AreEqauls(_testInstanceData2, testInstanceData2));
        }
Пример #3
0
        public virtual IList <TestInstanceData> GetTestInstances(string filterString)
        {
            string cmd = SqlCommandFactory.CreateQueryCmd(filterString, DataBaseItemNames.InstanceTableName);

            using (DbDataReader dataReader = ExecuteReadCommand(cmd))
            {
                List <TestInstanceData> testInstanceDatas = new List <TestInstanceData>(50);
                while (dataReader.Read())
                {
                    TestInstanceData instanceData = new TestInstanceData();
                    DataModelMapper.ReadToObject(dataReader, instanceData);
                    testInstanceDatas.Add(instanceData);
                }
                return(testInstanceDatas);
            }
        }
Пример #4
0
        public virtual void UpdateData(TestInstanceData testInstance)
        {
            // 获取原数据,转换为键值对类型
            TestInstanceData            lastInstanceData   = InternalGetTestInstanceData(testInstance.RuntimeHash);
            Dictionary <string, string> lastInstanceValues = DataModelMapper.GetColumnValueMapping(lastInstanceData);

            Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance);
            // 比较并创建更新命令
            string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{testInstance.RuntimeHash}'";
            string cmd    = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.InstanceTableName, lastInstanceValues,
                                                              columnToValue, filter);

            if (string.IsNullOrWhiteSpace(cmd))
            {
                return;
            }
            ExecuteWriteCommand(cmd);
        }
Пример #5
0
        private static TestInstanceData CreateTestInstance(int id)
        {
            TestInstanceData testInstance = new TestInstanceData()
            {
                Name                   = $"TestInstance{id}",
                Description            = $"InstanceDescription{id}",
                TestProjectName        = $"TestProject{id}",
                TestProjectDescription = $"TestProject Description{id}",
                RuntimeHash            = $"RuntimeHash{id}",
                StartGenTime           = DateTime.Now - new TimeSpan(1, 1, 1, 1),
                EndGenTime             = DateTime.Now - new TimeSpan(0, 1, 1, 1),
                StartTime              = DateTime.Now - new TimeSpan(0, 0, 1, 1),
                EndTime                = DateTime.Now - new TimeSpan(0, 0, 0, 1),
                ElapsedTime            = 10000
            };

            return(testInstance);
        }
Пример #6
0
        private void SetTestInstanceEndTime(DateTime endTime)
        {
            TestInstanceData testInstanceData = _stateManageContext.TestInstance;

            testInstanceData.EndTime = endTime;
            if (testInstanceData.StartTime == DateTime.MaxValue)
            {
                testInstanceData.StartTime = endTime;
            }
            if (testInstanceData.EndGenTime == DateTime.MaxValue)
            {
                testInstanceData.EndGenTime = endTime;
            }
            if (testInstanceData.StartGenTime == DateTime.MaxValue)
            {
                testInstanceData.StartGenTime = endTime;
            }
            testInstanceData.ElapsedTime = (testInstanceData.EndTime - testInstanceData.StartGenTime).TotalMilliseconds;
        }
Пример #7
0
        public void UpdateInstance()
        {
            _dataMaintainer.RuntimeInitialize();

            _testInstanceData1.EndTime = DateTime.Now;
            _dataMaintainer.UpdateData(_testInstanceData1);

            _testInstanceData2.EndTime = DateTime.Now;
            _dataMaintainer.UpdateData(_testInstanceData2);

            _dataMaintainer.DesigntimeInitialize();

            TestInstanceData testInstanceData1 = _dataMaintainer.GetTestInstance(_testInstanceData1.RuntimeHash);

            Assert.IsTrue(AreEqauls(_testInstanceData1, testInstanceData1));

            TestInstanceData testInstanceData2 = _dataMaintainer.GetTestInstance(_testInstanceData2.RuntimeHash);

            Assert.IsTrue(AreEqauls(_testInstanceData2, testInstanceData2));
        }
Пример #8
0
        //父类继承
        //public void PrintReport(string filePath, string runtimeHash, int sessionId)
        //{

        //}

        /*
         * 已下输出方法结构类似,采用嵌套循环:
         * 在PrintTestInstance里调用PrintSessionResults;
         * 在PrintSessionResults里调用PrintSequenceResults和PrintPerformance;
         */
        private void PrintTestInstance(StreamWriter sw, string runtimeHash)
        {
            TestInstanceData testInstance = _dataMaintainer.GetTestInstance(runtimeHash);

            if (testInstance != null)
            {
                WriteRecord(sw, 0, "TestInstanceName", testInstance.Name);
                WriteRecord(sw, 0, "TestInstanceDescription", testInstance.Description);
                WriteRecord(sw, 0, "TestProjectName", testInstance.TestProjectName);
                WriteRecord(sw, 0, "TestProjectDescription", testInstance.TestProjectDescription);
                WriteRecord(sw, 0, "StartGenTime", testInstance.StartGenTime.ToString(DateFormat));
                WriteRecord(sw, 0, "EndGenTime", testInstance.EndGenTime.ToString(DateFormat));
                WriteRecord(sw, 0, "StartTime", testInstance.StartTime.ToString(DateFormat));
                WriteRecord(sw, 0, "EndTime", testInstance.EndTime.ToString(DateFormat));
                WriteRecord(sw, 0, "ElapsedTime", (testInstance.ElapsedTime / 1000).ToString(DoubleFormat));
                sw.WriteLine();
            }
            //输出报告每个session
            PrintSessionResults(sw, runtimeHash);
        }
Пример #9
0
        protected TestInstanceData InternalGetTestInstanceData(string runtimeHash)
        {
            string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}'";
            string cmd    = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.InstanceTableName);

            using (DbDataReader dataReader = ExecuteReadCommand(cmd))
            {
                TestInstanceData instanceData;
                if (dataReader.Read())
                {
                    instanceData = new TestInstanceData();
                    DataModelMapper.ReadToObject(dataReader, instanceData);
                }
                else
                {
                    instanceData = null;
                }
                return(instanceData);
            }
        }
Пример #10
0
 public void WriteData(TestInstanceData testInstance)
 {
     // TODO
 }
Пример #11
0
        public ResultManagerTest()
        {
            #region 创建并初始化假的TestFlowRunner, 将创建的DataMaintainer赋予它
            Type runnerType = typeof(TestflowRunner);
            //默认options
            TestflowRunnerOptions option = new TestflowRunnerOptions();
            //创建假的TestFlowRunner
            FakeTestflowRunner fakeTestflowRunner = new FakeTestflowRunner(option);
            Type intType = typeof(int);
            //用反射将获取private fieldInfo,然后赋值fake
            FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic);
            fieldInfo.SetValue(null, fakeTestflowRunner);
            _dataMaintainer = new DataMaintainer.DataMaintainer();
            fakeTestflowRunner.SetDataMaintainer(_dataMaintainer);

            fakeTestflowRunner.Initialize();
            #endregion

            _resultManager = new ResultManager.ResultManager();

            #region 用此类里的方法创建测试用数据
            _testInstanceData1     = CreateTestInstance(1);
            _sessionResultData11   = CreateSessionResult(1, 1);
            _sequenceResultData111 = CreateSequenceResult(1, 1, 1);
            _sequenceResultData112 = CreateSequenceResult(1, 1, 2);
            _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1);
            _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2);
            _sessionResultData12   = CreateSessionResult(1, 2);
            _sequenceResultData121 = CreateSequenceResult(1, 2, 1);
            _sequenceResultData122 = CreateSequenceResult(1, 2, 2);
            _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3);
            _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4);
            _performanceStatus111  = CreatePerformanceData(1, 1, 1);
            _performanceStatus112  = CreatePerformanceData(1, 1, 2);
            _performanceStatus121  = CreatePerformanceData(1, 2, 3);
            _performanceStatus122  = CreatePerformanceData(1, 2, 4);

            _testInstanceData2     = CreateTestInstance(2);
            _sessionResultData21   = CreateSessionResult(2, 1);
            _sequenceResultData211 = CreateSequenceResult(2, 1, 1);
            _sequenceResultData212 = CreateSequenceResult(2, 1, 2);
            _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1);
            _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2);
            _sessionResultData22   = CreateSessionResult(2, 2);
            _sequenceResultData221 = CreateSequenceResult(2, 2, 1);
            _sequenceResultData222 = CreateSequenceResult(2, 2, 2);
            _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3);
            _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4);
            _performanceStatus211  = CreatePerformanceData(2, 1, 1);
            _performanceStatus212  = CreatePerformanceData(2, 1, 2);
            _performanceStatus221  = CreatePerformanceData(2, 2, 3);
            _performanceStatus222  = CreatePerformanceData(2, 2, 4);
            #endregion

            #region 初始化_dataMaintainer
            // 只有DesigntimeInitialize可以删掉记录
            _dataMaintainer.DesigntimeInitialize();
            // 删除记录
            _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'");
            _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'");

            // 只有RuntimeInitialize可以新增记录
            _dataMaintainer.RuntimeInitialize();
            #endregion

            #region 添加数据到数据库
            _dataMaintainer.AddData(_testInstanceData1);
            _dataMaintainer.AddData(_sessionResultData11);
            _dataMaintainer.AddData(_sequenceResultData111);
            _dataMaintainer.AddData(_sequenceResultData112);
            _dataMaintainer.AddData(_sessionResultData12);
            _dataMaintainer.AddData(_sequenceResultData121);
            _dataMaintainer.AddData(_sequenceResultData122);
            _dataMaintainer.AddData(_runtimeStatusData1211);
            _dataMaintainer.AddData(_runtimeStatusData1212);
            _dataMaintainer.AddData(_runtimeStatusData1111);
            _dataMaintainer.AddData(_runtimeStatusData1112);
            _dataMaintainer.AddData(_performanceStatus111);
            _dataMaintainer.AddData(_performanceStatus112);
            _dataMaintainer.AddData(_performanceStatus121);
            _dataMaintainer.AddData(_performanceStatus122);

            _dataMaintainer.AddData(_testInstanceData2);
            _dataMaintainer.AddData(_sessionResultData21);
            _dataMaintainer.AddData(_sequenceResultData211);
            _dataMaintainer.AddData(_sequenceResultData212);
            _dataMaintainer.AddData(_sessionResultData22);
            _dataMaintainer.AddData(_sequenceResultData221);
            _dataMaintainer.AddData(_sequenceResultData222);
            _dataMaintainer.AddData(_runtimeStatusData2211);
            _dataMaintainer.AddData(_runtimeStatusData2212);
            _dataMaintainer.AddData(_runtimeStatusData2111);
            _dataMaintainer.AddData(_runtimeStatusData2112);
            _dataMaintainer.AddData(_performanceStatus211);
            _dataMaintainer.AddData(_performanceStatus212);
            _dataMaintainer.AddData(_performanceStatus221);
            _dataMaintainer.AddData(_performanceStatus222);
            #endregion
        }
Пример #12
0
 public void UpdateData(TestInstanceData testInstance)
 {
     _databaseProxy.UpdateData(testInstance);
 }
Пример #13
0
 public void AddData(TestInstanceData testInstance)
 {
     _databaseProxy.AddData(testInstance);
 }
Пример #14
0
 public void UpdateData(TestInstanceData testInstance)
 {
     _dataMaintainer.UpdateData(testInstance);
 }
Пример #15
0
 public void WriteData(TestInstanceData testInstance)
 {
     _dataMaintainer.AddData(testInstance);
 }
Пример #16
0
 public void UpdateData(TestInstanceData testInstance)
 {
     // TODO
 }
Пример #17
0
 public override void UpdateData(TestInstanceData testInstance)
 {
     throw new System.InvalidOperationException();
 }
Пример #18
0
        public DataMaintainTest()
        {
            Type runnerType = typeof(TestflowRunner);
            TestflowRunnerOptions option             = new TestflowRunnerOptions();
            FakeTestflowRunner    fakeTestflowRunner = new FakeTestflowRunner(option);
            Type      intType   = typeof(int);
            FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic);

            fieldInfo.SetValue(null, fakeTestflowRunner);
            fakeTestflowRunner.SetLogService(null);

            _dataMaintainer = new DataMaintainer.DataMaintainer();
            ModuleConfigData moduleConfigData = new ModuleConfigData();

            moduleConfigData.InitExtendProperties();
            _dataMaintainer.ApplyConfig(moduleConfigData);

            _testInstanceData1     = CreateTestInstance(1);
            _sessionResultData11   = CreateSessionResult(1, 1);
            _sequenceResultData111 = CreateSequenceResult(1, 1, 1);
            _sequenceResultData112 = CreateSequenceResult(1, 1, 2);
            _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1);
            _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2);
            _sessionResultData12   = CreateSessionResult(1, 2);
            _sequenceResultData121 = CreateSequenceResult(1, 2, 1);
            _sequenceResultData122 = CreateSequenceResult(1, 2, 2);
            _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3);
            _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4);
            _performanceStatus111  = CreatePerformanceData(1, 1, 1);
            _performanceStatus112  = CreatePerformanceData(1, 1, 2);
            _performanceStatus121  = CreatePerformanceData(1, 2, 3);
            _performanceStatus122  = CreatePerformanceData(1, 2, 4);

            _testInstanceData2     = CreateTestInstance(2);
            _sessionResultData21   = CreateSessionResult(2, 1);
            _sequenceResultData211 = CreateSequenceResult(2, 1, 1);
            _sequenceResultData212 = CreateSequenceResult(2, 1, 2);
            _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1);
            _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2);
            _sessionResultData22   = CreateSessionResult(2, 2);
            _sequenceResultData221 = CreateSequenceResult(2, 2, 1);
            _sequenceResultData222 = CreateSequenceResult(2, 2, 2);
            _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3);
            _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4);
            _performanceStatus211  = CreatePerformanceData(2, 1, 1);
            _performanceStatus212  = CreatePerformanceData(2, 1, 2);
            _performanceStatus221  = CreatePerformanceData(2, 2, 3);
            _performanceStatus222  = CreatePerformanceData(2, 2, 4);

            // 只有DesigntimeInitialize可以删掉记录
            _dataMaintainer.DesigntimeInitialize();
            // 删除记录
            _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'");
            _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'");

            // 只有RuntimeInitialize可以新增记录
            _dataMaintainer.RuntimeInitialize();

            _dataMaintainer.AddData(_testInstanceData1);
            _dataMaintainer.AddData(_sessionResultData11);
            _dataMaintainer.AddData(_sequenceResultData111);
            _dataMaintainer.AddData(_sequenceResultData112);
            _dataMaintainer.AddData(_sessionResultData12);
            _dataMaintainer.AddData(_sequenceResultData121);
            _dataMaintainer.AddData(_sequenceResultData122);
            _dataMaintainer.AddData(_runtimeStatusData1211);
            _dataMaintainer.AddData(_runtimeStatusData1212);
            _dataMaintainer.AddData(_runtimeStatusData1111);
            _dataMaintainer.AddData(_runtimeStatusData1112);
            _dataMaintainer.AddData(_performanceStatus111);
            _dataMaintainer.AddData(_performanceStatus112);
            _dataMaintainer.AddData(_performanceStatus121);
            _dataMaintainer.AddData(_performanceStatus122);

            _dataMaintainer.AddData(_testInstanceData2);
            _dataMaintainer.AddData(_sessionResultData21);
            _dataMaintainer.AddData(_sequenceResultData211);
            _dataMaintainer.AddData(_sequenceResultData212);
            _dataMaintainer.AddData(_sessionResultData22);
            _dataMaintainer.AddData(_sequenceResultData221);
            _dataMaintainer.AddData(_sequenceResultData222);
            _dataMaintainer.AddData(_runtimeStatusData2211);
            _dataMaintainer.AddData(_runtimeStatusData2212);
            _dataMaintainer.AddData(_runtimeStatusData2111);
            _dataMaintainer.AddData(_runtimeStatusData2112);
            _dataMaintainer.AddData(_performanceStatus211);
            _dataMaintainer.AddData(_performanceStatus212);
            _dataMaintainer.AddData(_performanceStatus221);
            _dataMaintainer.AddData(_performanceStatus222);
        }