Rational Functional Tester 스크립트는 실행/빌드 된 RFT의 버전을 어떻게 파악할 수 있습니까?RFT 버전 번호는 어떻게 받습니까?
나는 문서를 통해 팠, 가장 가까운 내가 아빠를 찾고하지 무엇을 여전히 가까이 있지만, 수 OS 버전 정보를 반환
com.rational.test.ft.script.ScriptUtilities.getOperatingSystemVersion()
이었다 발견, I didn를
Rational Functional Tester 스크립트는 실행/빌드 된 RFT의 버전을 어떻게 파악할 수 있습니까?RFT 버전 번호는 어떻게 받습니까?
나는 문서를 통해 팠, 가장 가까운 내가 아빠를 찾고하지 무엇을 여전히 가까이 있지만, 수 OS 버전 정보를 반환
com.rational.test.ft.script.ScriptUtilities.getOperatingSystemVersion()
이었다 발견, I didn를
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) 으로 이동하십시오.>RFT 정보는 버전을 표시합니다.