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; }
/** * 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); }
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(); }
//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); } }
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(); } } } }
/*** * 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); }
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); } }
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); } }
/** * 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); }
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); } }
/// <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 }
//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); }
/** * 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); } } }
/// <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); }
//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); } }
//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); } }
//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; } }
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; } } }
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 }
public void CreateFolder(TestSetFolder folder,string name) { try { SysTreeNode node = folder.AddNode(name) as SysTreeNode; node.Post(); } catch(Exception e) { } }
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); } }
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 }
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; // } } } }
private bool FolderIsExist(TestSetFolder folder,string name) { try { SysTreeNode node= folder.FindChildNode(name) as SysTreeNode; return node == null ? false : true; } catch { return false; } }