예제 #1
0
        private void treeViewALM_AfterSelect(object sender, TreeViewEventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            if (e.Node.Tag != null)
            {
                if (e.Node.Tag.ToString().ToLower() == "testset")
                {
                    TestSetTreeManager testSetTreeMgr = (TestSetTreeManager)conn.TestSetTreeManager;

                    var           path = BuildPath(e.Node);
                    TestSetFolder rootTestSetFolder = (TestSetFolder)testSetTreeMgr.get_NodeByPath(path);
                    List          testSetList       = rootTestSetFolder.FindTestSets(e.Node.Text, false, string.Empty);
                    IEnumerator   enumerator        = testSetList.GetEnumerator();
                    if (enumerator.MoveNext())
                    {
                        TestSet       testSet       = (TestSet)enumerator.Current;
                        TSTestFactory tsTestFactory = (TSTestFactory)testSet.TSTestFactory;
                        ListClass     testList      = (ListClass)tsTestFactory.NewList(string.Empty);

                        IEnumerator testListEnum = testList.GetEnumerator();
                        if (dtALMTestDetails == null)
                        {
                            dtALMTestDetails = BuildDataTable();
                        }
                        else
                        {
                            dtALMTestDetails.Clear();
                        }
                        List TSSetFields = tsTestFactory.Fields;
                        while (testListEnum.MoveNext())
                        {
                            DataRow drTestDetails = dtALMTestDetails.NewRow();
                            object  item          = testListEnum.Current;
                            TSTest  atest         = (TSTest)testListEnum.Current;

                            drTestDetails["TestName"]      = atest.TestName;
                            drTestDetails["Status"]        = atest.Status;
                            drTestDetails["FailureReason"] = atest["TC_USER_01"];
                            drTestDetails["JenkinsLog"]    = atest["TC_USER_09"];

                            dtALMTestDetails.Rows.Add(drTestDetails);
                        }
                    }

                    dgvALM.DataSource = dtALMTestDetails;
                }
                else
                {
                    dtALMTestDetails.Clear();
                    dgvALM.DataSource = dtALMTestDetails;
                }
            }
            else
            {
                dtALMTestDetails.Clear();
                dgvALM.DataSource = dtALMTestDetails;
            }
            Cursor.Current = Cursors.Default;
        }
예제 #2
0
        /**
         * find the test sets that will be updated in QC
         *
         * @param string tsPath
         * @param string tsName
         * @return List of TestSet
         */
        public List retrieveTestSets(string tsPath, string tsName)
        {
            log.Debug("...in retriveTestSet() " + tsPath + " " + tsName);

            TestSetFolder tsFolder = retrieveFolder(tsPath);

            if (tsFolder == null)
            {
                throw new QCException("no TestSetFolder at " + tsPath);
            }

            List tsList = tsFolder.FindTestSets(tsName, false, null);

            if (tsList == null)
            {
                throw new QCException("no TestSets matching " + tsName);
            }

            if (tsList.Count < 1)
            {
                throw new QCException("no TestSets found matching " + tsName);
            }

            return(tsList);
        }
예제 #3
0
        private void showTestLabTree()
        {
            TestSetTreeManager testSetTreeMgr    = (TestSetTreeManager)conn.TestSetTreeManager;
            TestSetFolder      rootTestSetFolder = (TestSetFolder)testSetTreeMgr.get_NodeByPath(txtQCFolderPath.Text);
            TreeNode           rootThreadNode    = new TreeNode();

            rootThreadNode.Tag  = "rootfolder";
            rootThreadNode.Text = rootThreadNode.ToolTipText = rootTestSetFolder.Name;
            treeViewALM.Nodes.Add(rootThreadNode);
            progressBar1.Maximum = rootTestSetFolder.Count;
            progressBar1.PerformStep();

            for (int i = 1; i <= rootTestSetFolder.Count; i++)
            {
                TreeNode    parentThreadNode = new TreeNode();
                SysTreeNode tNode            = (SysTreeNode)rootTestSetFolder.get_Child(i);
                parentThreadNode.Name = parentThreadNode.Text = rootTestSetFolder.get_Child(i).Name;
                parentThreadNode.Tag  = "testsetfolder";
                rootThreadNode.Nodes.Add(parentThreadNode);

                AddChildNodes(tNode, parentThreadNode);

                AddTestSetToNodes(parentThreadNode, tNode);

                progressBar1.PerformStep();
            }


            treeViewALM.ShowNodeToolTips = true;
            treeViewALM.TopNode.Expand();
        }
예제 #4
0
 //Given the special catalog for record the test sets and running logs
 public bool CreateTestSets(string FolderName)
 {
     try
     {
         //TDConnectionClass TDConnHandle = qc.getTDConn();
         // string rootPath = "Root\\AUTORUN\\";
         tsFolderName = FolderName;
         List <string> TestSetNames = GetAllTestSetNames(configFile.CaseFilter.TestSetName);
         if (TestSetNames != null)
         {
             TestSetFolder tsFold = CreateTestSetFolder(FolderName);
             if (tsFold != null && createTFSucess)
             {
                 TestSetFolder CreateTS = CreateTestSetNames(TestSetNames, tsFold);
             }
             if (createTSSucess)
             {
                 AutoLog.Info("[bool CreateTestSets]AutoIntSys: Create Test sets success");
                 //Console.Out.WriteLine("==========[bool CreateTestSets]AutoIntSys: Create Test sets success");
                 return(true);
             }
         }
         return(false);
     }
     catch (Exception e)
     {
         AutoLog.Info("AutoIntSys: Exception with " + e.Message);
         AutoLog.Info("AutoIntSys: Create Test Sets Error!");
         //Debug.Print("AutoIntSys:" + e);
         //Debug.Print("AutoIntSys:Create Test Sets Error!");
         //Console.Out.WriteLine("Create Test Sets Error!");
         return(false);
     }
 }
예제 #5
0
        private void UploadALM(string strSelectedScriptName, string strStatus, string strFailureReason, string strJenkinsLog)
        {
            string strSelectedTestSetName = treeViewALM.SelectedNode.Name;

            string             strSelectedTestSetFullPath = BuildPath(treeViewALM.SelectedNode);;
            TestSetTreeManager testSetTreeMgr             = (TestSetTreeManager)conn.TestSetTreeManager;
            TestSetFolder      rootTestSetFolder          = (TestSetFolder)testSetTreeMgr.get_NodeByPath(strSelectedTestSetFullPath);
            List        testSetList = rootTestSetFolder.FindTestSets(strSelectedTestSetName, false, string.Empty);
            IEnumerator enumerator  = testSetList.GetEnumerator();;

            if (enumerator.MoveNext())
            {
                TestSet       testSet       = (TestSet)enumerator.Current;
                TSTestFactory tsTestFactory = (TSTestFactory)testSet.TSTestFactory;
                ListClass     testList      = (ListClass)tsTestFactory.NewList(string.Empty);

                IEnumerator testListEnum = testList.GetEnumerator();
                while (testListEnum.MoveNext())
                {
                    object item  = testListEnum.Current;
                    TSTest atest = (TSTest)testListEnum.Current;
                    if (atest.TestName.ToLower() == strSelectedScriptName.ToLower())
                    {
                        atest.Status        = strStatus;
                        atest["TC_USER_01"] = strFailureReason;
                        atest["TC_USER_09"] = strJenkinsLog;
                        atest.Post();
                    }
                }
            }
        }
예제 #6
0
        /***
         * get one or more tests that matches a specific test case name
         *
         * @param string tsFolderName
         * @param string tsTestName
         * @return List of TsTest
         */
        public List retrieveTests(string tsFolderName, string tsTestName)
        {
            TestSetFolder tsFolder = retrieveFolder(tsFolderName);

            log.Debug("tsFolder.Path: " + tsFolder.Path);

            List tsTestList = tsFolder.FindTestInstances(tsTestName, false, null);

            return(tsTestList);
        }
예제 #7
0
        public TestSet GetTestSet(String path, String testSetName)
        {
            TestSetFactory     testSetFactory     = connection.TestSetFactory;
            TestSetTreeManager testSetTreeManager = connection.TestSetTreeManager;

            TestSetFolder testSetFolder = (TestSetFolder)testSetTreeManager.NodeByPath[path];
            List          testSetList   = testSetFolder.FindTestSets(testSetName);
            TestSet       testSet       = testSetList[0];

            return(testSet);
        }
 /// <summary>
 /// The GetFolderPath.
 /// </summary>
 /// <returns>The <see cref="string"/>.</returns>
 public string GetFolderPath()
 {
     if (this.TestSet != null)
     {
         TestSetFolder folder = this.TestSet.TestSetFolder as TestSetFolder;
         return(folder.Path);
     }
     else
     {
         Console.WriteLine("Test set is null");
         return(null);
     }
 }
예제 #9
0
        private void AddTestSetToNodes(TreeNode childNode, SysTreeNode tNode1)
        {
            TestSetFolder tsF             = ((TestSetFolder)tNode1);
            ListClass     testSetList     = (ListClass)((TestSetFactory)tsF.TestSetFactory).NewList(string.Empty);
            IEnumerator   testSetListEnum = testSetList.GetEnumerator();

            while (testSetListEnum.MoveNext())
            {
                TestSet  atestset = (TestSet)testSetListEnum.Current;
                TreeNode tN       = new TreeNode();

                tN.Name = tN.Text = tN.ToolTipText = atestset.Name;
                tN.Tag  = "testset";

                childNode.Nodes.Add(tN);
            }
        }
예제 #10
0
        /**
         * get a folder in QC
         *
         * @param string tsPath
         * @return TestSetFolder
         */
        public TestSetFolder retrieveFolder(string tsPath)
        {
            TestSetFactory     tsFactory = (TestSetFactory)tdConn.TestSetFactory;
            TestSetTreeManager tsTreeMgr = (TestSetTreeManager)tdConn.TestSetTreeManager;

            TestSetFolder tsFolder = null;

            try
            {
                tsFolder = (TestSetFolder)tsTreeMgr.get_NodeByPath(tsPath);
            }
            catch (Exception e)
            {
                log.Warn("couldn't get TestSetFolder with path " + tsPath);
                log.Warn(e.Message);
            }

            return(tsFolder);
        }
예제 #11
0
 private static bool CheckFolderIsExist(TestSetFolder TSFolder, string FolderName)
 {
     try
     {
         SysTreeNode nodeExist = TSFolder.FindChildNode(FolderName) as SysTreeNode;
         if (nodeExist != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch
     {
         return(false);
     }
 }
예제 #12
0
        /// <summary>
        /// The FindListOfTestSetsByPath.
        /// </summary>
        /// <param name="testLabPath">The testLabPath<see cref="string"/>.</param>
        /// <returns>The <see cref="List{ALMTestSetInstance}"/>.</returns>
        private List <TestSetInstance> FindListOfTestSetsByPath(string testLabPath)
        {
            List <TestSetInstance> res  = new List <TestSetInstance>();                             // create a new list of ALMTestSetInstances
            TestSetTreeManager     tree = this.connection.TestSetTreeManager as TestSetTreeManager; // gets tree set mananger form QC Connection

            try
            {
                TestSetFolder tsFolder = tree.NodeByPath[testLabPath] as TestSetFolder; // gets test set folder from the testLabPath
                List          tsList   = tsFolder.FindTestSets(string.Empty);           // gets list of test sets in the folder
                foreach (TestSet test in tsList)
                {
                    res.Add(new TestSetInstance(test, this.Username));
                }
            }
            catch (Exception)
            {
            }

            return(res); // return list of ALMTestCaseInstance
        }
예제 #13
0
        //get test lab explorer(tree view)
        public static List <string> GetTestLabExplorer(string PathNode)
        {
            TestSetTreeManager treeM    = (TestSetTreeManager)mTDConn.TestSetTreeManager;
            TestSetFolder      tsFolder = treeM.get_NodeByPath(PathNode);

            if (tsFolder == null && PathNode.ToUpper() == "ROOT")
            {
                tsFolder = treeM.Root;
            }

            List          FoldersList     = tsFolder.NewList();
            List <string> testlabPathList = new List <string>();

            foreach (TestSetFolder folder in FoldersList)
            {
                testlabPathList.Add(folder.Name);
            }

            return(testlabPathList);
        }
예제 #14
0
        /**
         * set status for tests in a test set and update in QC
         *
         * @param TestSet testSet
         * @param Dictionary<string, string> testResults - testCaseName, testResult (e.g. "EHR_REF_PAT_0001", "Passed")
         */
        public void recordTestSetResults(TestSet testSet, Dictionary <string, string> testResults)
        {
            TestSetFolder tsFolder = (TestSetFolder)testSet.TestSetFolder;

            log.Debug("tsFolder.Path: " + tsFolder.Path);

            string testSetInfo = "testSet.ID: " + testSet.ID.ToString() + DELIM +
                                 "testSet.Name: " + testSet.Name + DELIM +
                                 "testSet.Status: " + testSet.Status + DELIM +
                                 "";

            log.Debug("testSetInfo: " + testSetInfo);

            TSTestFactory tsTestFactory = (TSTestFactory)testSet.TSTestFactory;
            List          tsTestList    = tsTestFactory.NewList("");

            foreach (TSTest tsTest in tsTestList)
            {
                testCount++;

                string testInfo = DELIM + DELIM + DELIM +
                                  "TestId: " + tsTest.TestId + DELIM +
                                  "TestName: " + tsTest.TestName + DELIM +
                                  "";

                Run lastRun = (Run)tsTest.LastRun;
                if (lastRun != null)
                {
                    testInfo += lastRun.Name + DELIM + lastRun.Status;
                }

                log.Debug("TestInfo: " + testInfo);

                // look for a test in the results from this test set
                if (testResults.ContainsKey(tsTest.TestName))
                {
                    string status = testResults[tsTest.TestName];
                    recordTestResult(tsTest, status);
                }
            }
        }
예제 #15
0
        /// <summary>
        /// The GetAllTestSetByPath.
        /// </summary>
        /// <param name="path">The path<see cref="string"/>.</param>
        /// <returns>The <see cref="TestSetInstance"/>.</returns>
        public List <string> GetAllTestSetByPath(string path)
        {
            List <string> res = new List <string>();

            TestSetTreeManager tree = this.connection.TestSetTreeManager as TestSetTreeManager;

            try
            {
                TestSetFolder tsFolder = tree.NodeByPath[path] as TestSetFolder;
                List          tsList   = tsFolder.FindTestSets(string.Empty);
                foreach (TestSet test in tsList)
                {
                    res.Add($"{test.ID}");
                }
            }
            catch (Exception)
            {
            }

            return(res);
        }
예제 #16
0
        //Given the test target machine name for calling RunTestSets
        public bool RunTestSets(string testMachine, string configPath)
        {
            try
            {
                TestSetTreeManager TestSetTreeMana   = tdConn.TestSetTreeManager as TestSetTreeManager;
                TestSetFolder      TestSetFolderPath = TestSetTreeMana.get_NodeByPath("Root\\AUTORUN\\" + tsFolderName) as TestSetFolder;
                TestSetFactory     TestSetFact       = TestSetFolderPath.TestSetFactory as TestSetFactory;
                TDFilter           TestSetFilter     = TestSetFact.Filter as TDFilter;
                List TestSetList = TestSetFilter.NewList() as List;
                foreach (TestSet ts in TestSetList)
                {
                    // need give the testmachine name and notice the whether use QTP,
                    // These value from command input

                    if (testMachine != null && testMachine != "")
                    {
                        AutoLog.Info("[bool RunTestSets]Begin to run test set: " + ts.Name);
                        //Console.Out.WriteLine("==========[bool RunTestSets]Begin to run test set: " + ts.Name);
                        RunCurrentSet(ts, testMachine, configFile.RunParameter.UsingQTP, configPath);
                        AutoLog.Info("[bool RunTestSets]End to run test set: " + ts.Name);
                        //Console.Out.WriteLine("==========[bool RunTestSets]End run test set: " + ts.Name);
                    }
                    else
                    {
                        RunCurrentSet(ts, configFile.RunParameter.TestMachine, configFile.RunParameter.UsingQTP, configPath);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                AutoLog.Info("AutoIntSys: Run test sets exception" + e.Message);
                //Console.Out.WriteLine("AutoIntSys: Run test sets exception" + e.Message);
                //Debug.Print("AutoIntSys:" + e);
                //Debug.Print("AutoIntSys:Run Test Sets Error!");
                return(false);
            }
        }
예제 #17
0
        //Add the special folder under the ROOT\AUTORUN
        //If the folder has already exist, then return the folder handle
        private TestSetFolder CreateTestSetFolder(string FolderName)
        {
            string rootPath = "Root\\AUTORUN\\";

            try
            {
                TestSetTreeManager TestSetTreeMana   = tdConn.TestSetTreeManager as TestSetTreeManager;
                TestSetFolder      TestSetFolderPath = TestSetTreeMana.get_NodeByPath(rootPath) as TestSetFolder;
                //Add a new folder under the rootPath

                if (CheckFolderIsExist(TestSetFolderPath, FolderName))
                {
                    AutoLog.Info("AutoIntSys: Test folder has already in QC!");
                    //Debug.Print("AutoIntSys: Test folder has already in QC!");
                    SysTreeNode   getTestSetFolder = TestSetFolderPath.FindChildNode(FolderName) as SysTreeNode;
                    TestSetFolder TSExistFolder    = TestSetTreeMana.get_NodeById(getTestSetFolder.NodeID) as TestSetFolder;

                    createTFSucess = false;
                    return(TSExistFolder);
                }

                SysTreeNode CurTestSetFolder = TestSetFolderPath.AddNode(FolderName) as SysTreeNode;
                CurTestSetFolder.Post();

                //The new test set will be added under the newly test folder
                TestSetFolder TSFolder = TestSetTreeMana.get_NodeById(CurTestSetFolder.NodeID) as TestSetFolder;
                createTFSucess = true;
                return(TSFolder);
            }
            catch (Exception e)
            {
                AutoLog.Info("AutoIntSys: Exception with " + e.Message);
                AutoLog.Info("AutoIntSys: Create Test Sets Error!");
                //Debug.Print("AutoIntSys:Create Test Sets Error!");
                //Debug.Print("AutoIntSys:" + e.Message);
                return(null);
            }
        }
예제 #18
0
        //get test set explorer(tree view)
        public static IEnumerable <Object> GetTestSetExplorer(string PathNode)
        {
            TestSetTreeManager treeM    = (TestSetTreeManager)mTDConn.TestSetTreeManager;
            TestSetFolder      tsFolder = treeM.get_NodeByPath(PathNode);

            if (tsFolder == null && PathNode.ToUpper() == "ROOT")
            {
                tsFolder = treeM.Root;
            }

            TestSetFactory TSetFact = mTDConn.TestSetFactory;
            TDFilter       tsFilter = TSetFact.Filter;

            try
            {
                tsFilter["CY_FOLDER_ID"] = "" + tsFolder.NodeID + "";
            }
            catch (Exception e)
            {
                tsFilter["CY_FOLDER_ID"] = "\"" + tsFolder.Path.ToString() + "\"";
                Reporter.ToLog(eLogLevel.ERROR, $"Method - {MethodBase.GetCurrentMethod().Name}, Error - {e.Message}", e);
            }

            List TestsetList = TSetFact.NewList(tsFilter.Text);
            List <ALMTestSetSummary> testlabPathList = new List <ALMTestSetSummary>();

            foreach (TestSet testset in TestsetList)
            {
                ALMTestSetSummary QCTestSetTreeItem = new ALMTestSetSummary();
                QCTestSetTreeItem.TestSetID   = testset.ID;
                QCTestSetTreeItem.TestSetName = testset.Name;
                testlabPathList.Add(QCTestSetTreeItem);
            }

            return(testlabPathList);
        }
 private static bool CheckFolderIsExist(TestSetFolder TSFolder, string FolderName)
 {
     try
       {
     SysTreeNode nodeExist = TSFolder.FindChildNode(FolderName) as SysTreeNode;
     if (nodeExist != null)
       return true;
     else
       return false;
       }
       catch
       {
     return false;
       }
 }
예제 #20
0
        public void UploadResults(TestCase currentTestCase)
        {
            string testFolder  = Convert.ToString(ExecutionSession.dictCommonData["QCFolder"]);
            string testSetName = currentTestCase.Category;

            TestSetFactory     tsFactory = (TestSetFactory)qcConnect.TestSetFactory;
            TestSetTreeManager tsTreeMgr = (TestSetTreeManager)qcConnect.TestSetTreeManager;
            TestSetFolder      tsFolder  = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
            List    tsList  = tsFolder.FindTestSets(testSetName, false, null);
            TestSet testSet = tsList[1];

            tsFolder = (TestSetFolder)testSet.TestSetFolder;
            TSTestFactory tsTestFactory = (TSTestFactory)testSet.TSTestFactory;
            List          tsTestList    = tsTestFactory.NewList("");

            //  And finally, update each test case status:
            foreach (TSTest tsTest in tsTestList)
            {
                if (currentTestCase.TestCaseName == tsTest.Name.Remove(0, 3))
                {
                    RunFactory runFactory = (RunFactory)tsTest.RunFactory;
                    List       allfields  = runFactory.Fields;

                    String browserValue = tsTest["TC_USER_TEMPLATE_10"];

                    Run lastRun = (Run)tsTest.LastRun;

                    string     runName       = runFactory.UniqueRunName;
                    RunFactory objRunFactory = tsTest.RunFactory;
                    Run        theRun        = objRunFactory.AddItem(runName);
                    theRun.Name = runName;
                    theRun.CopyDesignSteps();
                    StepFactory Step     = theRun.StepFactory;
                    List        stepList = (List)Step.NewList("");
                    if (currentTestCase.OverAllResult == OverAllResult.PASS)
                    {
                        theRun.Status = "Passed";
                    }
                    else
                    {
                        theRun.Status = "Failed";
                    }
                    theRun.Post();

                    //Delete current attachment from QC test set test case
                    AttachmentFactory objAttachmentFactory = tsTest.Attachments;

                    var objCurrentAttachments = objAttachmentFactory.NewList("");

                    for (int objC = 1; objC <= objCurrentAttachments.Count; objC++)
                    {
                        try
                        {
                            objAttachmentFactory.RemoveItem(tsTest.Attachments.NewList("").Item(1).ID);
                        }
                        catch { }
                    }

                    IAttachment objAttachment = objAttachmentFactory.AddItem(DBNull.Value);
                    objAttachment.FileName = currentTestCase.QCHTMLReportPath;
                    objAttachment.Type     = 1;
                    objAttachment.Post();

                    string[] filePaths = System.IO.Directory.GetFiles(currentTestCase.QCScreenShotPath);
                    foreach (string file in filePaths)
                    {
                        objAttachment          = objAttachmentFactory.AddItem(DBNull.Value);
                        objAttachment.FileName = file;
                        objAttachment.Type     = 1;
                        objAttachment.Post();
                    }
                    break;
                }
            }
        }
예제 #21
0
        private TestSetFolder CreateTestSetNames(List <string> TestSetNames, TestSetFolder TSFolder)
        {
            List <ItemValue> tcList = new List <ItemValue>();

            #region Generate TestSet Name
            //Get all match test cases and store it to a List
            try
            {
                ICommand com        = tdConn.Command as ICommand;
                string[] columnName = { "TS_TEST_ID", configFile.CaseFilter.TestSetName };

                string sqlCommand = GenerateSQLText(columnName);
                com.CommandText = sqlCommand;

                IRecordset recList = com.Execute() as IRecordset;

                recList.First();
                for (int num = 0; num < recList.RecordCount; num++)
                {
                    ItemValue tc = new ItemValue();
                    tc.Test_ID = recList["TS_TEST_ID"].ToString();
                    if (recList[configFile.CaseFilter.TestSetName] != null)
                    {
                        tc.Test_Custom = recList[configFile.CaseFilter.TestSetName].ToString();
                    }
                    tcList.Insert(0, tc);
                    recList.Next();
                }
            }
            catch (Exception e)
            {
                AutoLog.Info("AutoIntSys: Exception with " + e.Message);
                AutoLog.Info("AutoIntSys: Fail to get Specified Field Value from TEST Table!");
                //Debug.Print("AutoIntSys:Fail to get Specified Field Value from TEST Table!");
                //Debug.Print("AutoIntSys:" + e);
                return(null);
            }
            #endregion

            #region Generate TestSet
            try
            {
                TestSetFactory TSFact   = TSFolder.TestSetFactory as TestSetFactory;
                TestFactory    TestFact = tdConn.TestFactory as TestFactory;
                foreach (string TSName in TestSetNames)
                {
                    TestSet       TestSetName;
                    TSTestFactory TSTestFact;

                    TestSetName = TSFact.AddItem(TSName) as TestSet;
                    TestSetName.Post();
                    TSTestFact = TestSetName.TSTestFactory as TSTestFactory;

                    foreach (ItemValue t in tcList)
                    {
                        if (t.Test_Custom == TSName)
                        {
                            TSTestFact.AddItem(t.Test_ID);
                        }
                    }
                }

                createTSSucess = true;
                return(TSFolder);
            }
            catch (Exception e)
            {
                AutoLog.Info("AutoIntSys: Exception with " + e.Message);
                AutoLog.Info("AutoIntSys: Create Test Sets Error!");
                //Debug.Print("AutoIntSys:Create Test Sets Error!");
                //Debug.Print("AutoIntSys:" + e.Message);
                return(null);
            }
            #endregion
        }
예제 #22
0
        public void CreateFolder(TestSetFolder folder,string name)
        {
            try
            {
                SysTreeNode node = folder.AddNode(name) as SysTreeNode;
                node.Post();
            }
            catch(Exception e)
            {

            }
        }
예제 #23
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            try
            {
                TDConnection tdConn = new TDConnection();
                tdConn.InitConnectionEx(qcUrl.Text);
                tdConn.ConnectProjectEx(qcDomain.Text, qcProject.Text, qcLogin.Text, qcPassword.Password);

                //MessageBox.Show((string)qcUrl.Text);
                //MessageBox.Show((string)qcDomain.Text);
                //MessageBox.Show((string)qcProject.Text);
                //MessageBox.Show((string)qcLogin.Text);
                //MessageBox.Show((string)qcPassword.Password);
                //MessageBox.Show((string)qcDomain.Text);
                //MessageBox.Show((string)testFolder.Text);
                //MessageBox.Show((string)testSet.Text);
                //RunFactory runFactory = (RunFactory)test.RunFactory;//

                //string testFolder = "^" + @"Root\MULTUM\Monthly Testing\SDK v4\";
                //string testSet = "BNF SDKv4 Server and Update";

                TestSetFactory     tsFactory = (TestSetFactory)tdConn.TestSetFactory;
                TestSetTreeManager tsTreeMgr = (TestSetTreeManager)tdConn.TestSetTreeManager;
                TestSetFolder      tsFolder  = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder.Text);


                TDAPIOLELib.List tsList = (TDAPIOLELib.List)tsFolder.FindTestSets((string)testSet.Text, false, null);
                //TDAPIOLELib.List tsTestList = tsFactory.NewList("");

                //List tsList = tsFolder.FindTestSets(testSet, false, "status=No Run");
                //Feature\Multum\Black Box\Monthly Testing\SDK v4

                foreach (TestSet testset in tsList)
                {
                    Console.WriteLine("Test Set Folder Path: {0}", testFolder);
                    Console.WriteLine("Test Set:  {0}", testset.Name);

                    TestSetFolder tsfolder = (TestSetFolder)testset.TestSetFolder;
                    //string testFolder = "^" + @"Root\MULTUM\Monthly Testing\SDK v4\";
                    TSTestFactory    tsTestFactory = (TSTestFactory)testset.TSTestFactory;
                    TDAPIOLELib.List tsTestList    = tsTestFactory.NewList("");
                    //}

                    foreach (TSTest tsTest in tsTestList)//no such interface supported
                    {
                        Console.WriteLine("Test Set:  {0}", tsTest.Name);
                        //Console.ReadLine();

                        string status = (string)tsTest.Status;
                        Console.WriteLine("STATUS {0}", status);
                        //Console.WriteLine("PARAMS {0}",tsTest.Params);

                        Console.WriteLine("PARAMS {0}", tsTest.History);


                        TDAPIOLELib.Run lastRun = (TDAPIOLELib.Run)tsTest.LastRun;

                        // don't update test if it may have been modified by someone else
                        if (lastRun == null)
                        {
                            RunFactory runFactory = (RunFactory)tsTest.RunFactory;

                            TDAPIOLELib.List runs = runFactory.NewList("");
                            Console.WriteLine("test runs:  {0}", runs.Count);
                            String          date = DateTime.Now.ToString("MM-dd_hh-mm-ss");
                            TDAPIOLELib.Run run  = (TDAPIOLELib.Run)runFactory.AddItem("Run_" + date); //Run_5-23_14-49-52

                            var oRunInstance = (RunFactory)tsTest.RunFactory;
                            //var oRun = (Run)oRunInstance.AddItem("Performance Test");

                            //run.Status = "Passed";
                            //run.Post();
                            //run.Refresh();


                            var oTest            = (Test)tsTest.Test;
                            var tsDesignStepList = oTest.DesignStepFactory.NewList("");
                            var oStepFactory     = (StepFactory)run.StepFactory;
                            foreach (DesignStep oDesignStep in tsDesignStepList)
                            {
                                var oStep = (Step)oStepFactory.AddItem(oDesignStep.StepName);

                                //oStep.Status = "Passed";
                                //oStep.Post();
                            }
                        }
                    }
                }

                tdConn.DisconnectProject();
                tdConn.Disconnect();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                MessageBox.Show(ex.StackTrace);
            }
        }
예제 #24
0
        public int Copy(
            string DestinationPath,
            string TestSetName,
            int TemplateTestSetId)
        {
            int returnValue = 0;

            try
            {
                if (!Connect(ServerUrl, Username, Password, Domain, Project))
                {
                    Disconnect();
                    return(0);
                }

                if (!CanPerformAction("ac_copy_cycle"))
                {
                    rr.AddErrorLine("Error: user has no permission to copy a test set");
                    Disconnect();
                    return(0);
                }

                ISupportCopyPaste4 iscp;
                string             clipboard;
                TestSetFactory     testSetFact;

                TestSetTreeManager treeMan = tdc.TestSetTreeManager;
                TestSetFolder      folder  = null;

                folder = treeMan.NodeByPath[DestinationPath];

                testSetFact = tdc.TestSetFactory;
                iscp        = (ISupportCopyPaste4)testSetFact;

                clipboard = iscp.CopyToClipBoard(TemplateTestSetId.ToString(), 0, "");

                try
                {
                    iscp.PasteFromClipBoard(clipboard, folder.NodeID.ToString(), 0, 1);
                }
                catch (COMException ce)
                {
                    rr.AddErrorLine(HandleException(ce));
                    //An exception happens when the name is already taken. The TS will copy successfully.
                }

                TDFilter       filter;
                TestSetFactory tsFact = folder.TestSetFactory;
                filter = tsFact.Filter;

                string tsName = tsFact[TemplateTestSetId].Name;
                tsName = tsName.Trim(' ');
                string filterString = "\"" + "*" + tsName + "*" + "\"";
                filter["CY_CYCLE"] = filterString;
                filter.OrderDirection["CY_CYCLE_ID"] = (short)TDAPI_FILTERORDER.TDOLE_DESCENDING;

                List testSetList = filter.NewList();

                //Because of an ALM API bug, the OrderDirection doesn't always work, so we have to iterate manually to find the newly created TS
                int     newestId = 0;
                TestSet newCopy;
                foreach (TestSet newTestSet in testSetList)
                {
                    if (newTestSet.ID > newestId)
                    {
                        newestId = newTestSet.ID;
                    }
                }

                newCopy = tsFact[newestId];

                newCopy.Name = TestSetName;

                try { newCopy.Post(); }
                catch (COMException ce)
                {
                    rr.AddErrorLine(HandleException(ce));
                }

                returnValue = newCopy.ID;
                //Console.Out.WriteLine(returnValue);
            } catch (COMException ce)
            {
                rr.AddErrorLine(HandleException(ce));
            }
            finally
            {
                Disconnect();
            }

            return(returnValue);
        }
        private TestSetFolder CreateTestSetNames(List<string> TestSetNames, TestSetFolder TSFolder)
        {
            List<ItemValue> tcList = new List<ItemValue>();
              #region Generate TestSet Name
              //Get all match test cases and store it to a List
              try
              {
            ICommand com = tdConn.Command as ICommand;
            string[] columnName = { "TS_TEST_ID", configFile.CaseFilter.TestSetName };

            string sqlCommand = GenerateSQLText(columnName);
            com.CommandText = sqlCommand;

            IRecordset recList = com.Execute() as IRecordset;

            recList.First();
            for (int num = 0; num < recList.RecordCount; num++)
            {
              ItemValue tc = new ItemValue();
              tc.Test_ID = recList["TS_TEST_ID"].ToString();
              if (recList[configFile.CaseFilter.TestSetName] != null)
            tc.Test_Custom = recList[configFile.CaseFilter.TestSetName].ToString();
              tcList.Insert(0, tc);
              recList.Next();
            }
              }
              catch (Exception e)
              {
            AutoLog.Info("AutoIntSys: Exception with " + e.Message);
            AutoLog.Info("AutoIntSys: Fail to get Specified Field Value from TEST Table!");
            //Debug.Print("AutoIntSys:Fail to get Specified Field Value from TEST Table!");
            //Debug.Print("AutoIntSys:" + e);
            return null;
              }
              #endregion

              #region Generate TestSet
              try
              {
            TestSetFactory TSFact = TSFolder.TestSetFactory as TestSetFactory;
            TestFactory TestFact = tdConn.TestFactory as TestFactory;
            foreach (string TSName in TestSetNames)
            {
              TestSet TestSetName;
              TSTestFactory TSTestFact;

              TestSetName = TSFact.AddItem(TSName) as TestSet;
              TestSetName.Post();
              TSTestFact = TestSetName.TSTestFactory as TSTestFactory;

              foreach (ItemValue t in tcList)
              {
            if (t.Test_Custom == TSName)
              TSTestFact.AddItem(t.Test_ID);
              }
            }

            createTSSucess = true;
            return TSFolder;
              }
              catch (Exception e)
              {
            AutoLog.Info("AutoIntSys: Exception with " + e.Message);
            AutoLog.Info("AutoIntSys: Create Test Sets Error!");
            //Debug.Print("AutoIntSys:Create Test Sets Error!");
            //Debug.Print("AutoIntSys:" + e.Message);
            return null;
              }
              #endregion
        }
예제 #26
0
        public void UploadResults(TB2.TestCase currentTestCase)
        {
            string testFolder  = @"Root\WCS 7up Core - 5022\zz Automation\PracticeExecution\Temp_Prashant\QA72_7_31";
            string testSetName = currentTestCase.Category;

            TestSetFactory     tsFactory = (TestSetFactory)qcConnect.TestSetFactory;
            TestSetTreeManager tsTreeMgr = (TestSetTreeManager)qcConnect.TestSetTreeManager;
            TestSetFolder      tsFolder  = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
            List    tsList  = tsFolder.FindTestSets(testSetName, false, null);
            TestSet testSet = tsList[1];

            //foreach (TestSet testSet in tsList)
            //{
            tsFolder = (TestSetFolder)testSet.TestSetFolder;
            TSTestFactory tsTestFactory = (TSTestFactory)testSet.TSTestFactory;
            List          tsTestList    = tsTestFactory.NewList("");

            //  And finally, update each test case status:
            foreach (TSTest tsTest in tsTestList)
            {
                //System.Console.Out.WriteLine("Test Case ID: " + tsTest.ID + ", Test Case Name: " + tsTest.Name + "\n");
                if (currentTestCase.TestCaseName == tsTest.Name.Remove(0, 3))
                {
                    RunFactory runFactory = (RunFactory)tsTest.RunFactory;
                    List       allfields  = runFactory.Fields;

                    String browserValue = tsTest["TC_USER_TEMPLATE_10"];

                    // Console.WriteLine("Browser value : " + browserValue);

                    Run lastRun = (Run)tsTest.LastRun;

                    string     runName       = runFactory.UniqueRunName;
                    RunFactory objRunFactory = tsTest.RunFactory;
                    Run        theRun        = objRunFactory.AddItem(runName);
                    theRun.Name = runName;

                    //Get the count of test steps and compare it with the number of steps that were actually executed
                    //and define the Execution status accordinagly
                    theRun.CopyDesignSteps();
                    StepFactory Step     = theRun.StepFactory;
                    List        stepList = (List)Step.NewList("");
                    if (currentTestCase.OverAllResult == OverAllResult.PASS)
                    {
                        theRun.Status = "Passed";
                    }
                    else
                    {
                        theRun.Status = "Failed";
                    }
                    theRun.Post();

                    //Delete current attachment from QC test set test case
                    AttachmentFactory objAttachmentFactory = tsTest.Attachments;

objSkipExec:

                    var objCurrentAttachments = objAttachmentFactory.NewList("");


                    for (int objC = 1; objC <= objCurrentAttachments.Count; objC++)
                    {
                        try
                        {
                            objAttachmentFactory.RemoveItem(tsTest.Attachments.NewList("").Item(1).ID);
                        }
                        catch { }
                    }

                    if (objAttachmentFactory.NewList("").Count > 0)
                    {
                        goto objSkipExec;
                    }

                    IAttachment objAttachment = objAttachmentFactory.AddItem(DBNull.Value);
                    objAttachment.FileName = currentTestCase.HTMLReportPath;
                    objAttachment.Type     = 1;
                    objAttachment.Post();

                    string[] filePaths = System.IO.Directory.GetFiles(currentTestCase.ScreenShotPath);
                    foreach (string file in filePaths)
                    {
                        objAttachment          = objAttachmentFactory.AddItem(DBNull.Value);
                        objAttachment.FileName = file;
                        objAttachment.Type     = 1;
                        objAttachment.Post();
                    }
                    break;
                    // }
                }
            }
        }
예제 #27
0
 private bool FolderIsExist(TestSetFolder folder,string name)
 {
     try
     {
         SysTreeNode node= folder.FindChildNode(name) as SysTreeNode;
         return node == null ? false : true;
     }
     catch
     {
         return false;
     }
 }