2012-08-09 5 views
0

Rational Functional Tester 스크립트는 실행/빌드 된 RFT의 버전을 어떻게 파악할 수 있습니까?RFT 버전 번호는 어떻게 받습니까?

나는 문서를 통해 팠, 가장 가까운 내가 아빠를 찾고하지 무엇을 여전히 가까이 있지만, 수 OS 버전 정보를 반환

com.rational.test.ft.script.ScriptUtilities.getOperatingSystemVersion() 

이었다 발견, I didn를

답변

1

O를 API 또는 Windows 레지스트리에서 아무 것도 찾을 수 없습니다.

내가 생각할 수있는 유일한 방법은 사용자 지정 메서드를 만들고이를 도우미 클래스에 포함시키는 것입니다. 버전 번호 C:\IBM\SDP\FunctionalTester\properties\version\IBM_Rational_Functional_Tester.*.*.swtag에서 버전을 찾을 수 있습니다. 설치 경로와 일치하도록 변경하십시오.

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FilenameFilter; 
import java.io.IOException; 

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 

import org.w3c.dom.Document; 
import org.w3c.dom.Node; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

private final static String RFTVersionFolder = "C:\\IBM\\SDP\\FunctionalTester\\properties\\version"; 

public static String getRFTVersionWithXML() { 
     File versionFolder = new File(RFTVersionFolder); 
     File[] versionFile = versionFolder.listFiles(new FilenameFilter() { 
       public boolean accept(File dir, String name) { 
        return (name.endsWith(".swtag")); 
       } }); 

     Document versionDocument = null; 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 

     try { 
      DocumentBuilder builder = factory.newDocumentBuilder(); 
      versionDocument = builder.parse(new FileInputStream(versionFile[0])); 
     } catch (SAXParseException spe) { 
      spe.printStackTrace(); 
     } catch (SAXException sxe) { 
      sxe.printStackTrace(); 
     } catch (ParserConfigurationException pce) { 
      pce.printStackTrace(); 
     } catch (IOException ioe) { 
      ioe.printStackTrace(); 
     } 

     Node versionNode = versionDocument.getElementsByTagName("ProductVersion").item(0); 

     return versionNode.getTextContent(); 
    } 

XML 파싱을 위해 DocumentBuilder를 사용하기 때문에 상당히 비싼 방법입니다. 대안으로서 문자열로 파일의 콘텐츠를로드하고 정규식으로 파싱 사용이 일치 패턴 :.. [0-9] \ [0-9] \ [0-9]

public static String getRFTVersionWithRegexp() { 
    File versionFolder = new File(RFTVersionFolder); 
    File[] versionFile = versionFolder.listFiles(new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return (name.endsWith(".swtag")); 
     } }); 

    byte[] buffer = null; 
    FileInputStream fin; 
    try { 
     fin = new FileInputStream(versionFile[0]); 
     buffer = new byte[(int) versionFile[0].length()]; 
     new DataInputStream(fin).readFully(buffer); 
     fin.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 
    String versionFileContent = new String(buffer); 
    String version = null; 
    Regex r = new Regex("[0-9]\\.[0-9]\\.[0-9]", Regex.MATCH_NORMAL); 
    if (r.matches(versionFileContent)) 
     version = r.getMatch(); 

    return version; 
} 
1

1) 으로 이동하십시오.>RFT 정보는 버전을 표시합니다.