テストスクリプトの脆弱性を見つける自動化されたシステムを構築したいと考えています。そのためには、特定のジョブの n ビルドなどの合格率を取得する必要があります。データを検索しても機能しXpaths
ません。同じものを取得できる API はありますか、またはXpaths
.
PS - 使用フレームワーク -Java with Selenium
テストスクリプトの脆弱性を見つける自動化されたシステムを構築したいと考えています。そのためには、特定のジョブの n ビルドなどの合格率を取得する必要があります。データを検索しても機能しXpaths
ません。同じものを取得できる API はありますか、またはXpaths
.
PS - 使用フレームワーク -Java with Selenium
提供された情報が少し曖昧であるため、以下の 2 つの作業スニペットを見つけてください。
ドキュメント全体を取得する
URI uri = new URI("http://host:port/job/JOB_NAME/api/xml");
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xPath.compile("//lastSuccessfulBuild/url")
.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.println("last successful: " + nodeList.item(i).getTextContent());
}
con.disconnect();
Jenkins XPath API を使用して興味深い部分だけを取得する
URI uri = new URI("http://host:port/job/JOB_NAME/api/xml"
+ "?xpath=//lastSuccessfulBuild/url");
HttpURLConnection con = (HttpURLConnection) uri.toURL().openConnection();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xPath.compile("/url")
.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.println("last successful: " + nodeList.item(i).getTextContent());
}
con.disconnect();
両方の出力例
last successful: http://host:port/job/JOB_NAME/1234/
Jenkins XML API の XPath が一般的に機能していることを示すために、PoC としてのみスニペットを参照してください。