使用硒获取詹金斯职位的已建状态

时间:2018-12-24 02:11:55

标签: java jenkins

我想通过使用硒webdriver检查jenkins作业的内置status()。 jenkins中有许多作业正在运行,但是其中一个作业每小时都在运行,因此我想检查特定作业在过去24小时内成功建立/失败的次数以及时间。有什么办法可以让我点击jenkins网址以获取构建状态。

我浏览了一些链接,发现一些开发人员正在使用jenkins cli来获取构建状态,但无论如何我都没有找到通过硒获取状态的方法。在这方面寻求您的指导。我想通过使用Java完成此任务。 预先感谢。

//到目前为止没有代码

没有内置状态的内置时间

123463成功于2018年12月24日晚上11:51:12

123462于2018年12月24日晚上10:51:12失败

... ....... ...............................

12345成功于2018年12月24日5:51:12 AM

12344于2018年12月24日上午4:51:12失败

12343成功于2018年12月24日上午3:51:12

12342成功于2018年12月24日上午2:51:12

12341成功于2018年12月24日上午1:51:12

1 个答案:

答案 0 :(得分:3)

Seleniumhq网站上,

  

Selenium使浏览器自动化。而已!首先,它用于自动化Web应用程序以进行测试,但是当然不限于此。无聊的基于Web的管理任务也可以(而且应该!)也可以自动化。

因此,不建议使用Selenium从Jenkins获取构建状态。如您所愿,您可以使用Java和Jenkins API来完成此操作。

通常,Jenkins作业的网址类似于 / job / 。通过将 / api 附加到上述网址,可以看到更多可用选项。

Jenkins通过远程访问API公开了许多细节,并且可以通过将json或xml附加到上述url来查看JSON / XML格式的作业元数据。

示例:

  1. / job / <职位名称> / api / json
  2. / job / <职位名称> / api / xml

”查询参数允许用户显式指定并仅检索他们要查找的信息。

以您为例, / job / / api / json?tree = allBuilds [result,number,url,timestamp] api将为您提供json格式的详细信息从中您可以计算出所有想要的数据,例如过去24小时内触发,通过和/或失败的构建数量。

上面的网址的示例响应如下。

{
  "_class": "hudson.model.FreeStyleProject",
  "allBuilds": [
    {
      "_class": "hudson.model.FreeStyleBuild",
      "number": 7,
      "result": "SUCCESS",
      "timestamp": 1545661232289,
      "url": "http://localhost:8080/job/RegressionTest/7/"
    },
    {
      "_class": "hudson.model.FreeStyleBuild",
      "number": 6,
      "result": "SUCCESS",
      "timestamp": 1545658820048,
      "url": "http://localhost:8080/job/RegressionTest/6/"
    },
    {
      "_class": "hudson.model.FreeStyleBuild",
      "number": 5,
      "result": "SUCCESS",
      "timestamp": 1545658814132,
      "url": "http://localhost:8080/job/RegressionTest/5/"
    },
    {
      "_class": "hudson.model.FreeStyleBuild",
      "number": 4,
      "result": "FAILURE",
      "timestamp": 1545658799754,
      "url": "http://localhost:8080/job/RegressionTest/4/"
    },
    {
      "_class": "hudson.model.FreeStyleBuild",
      "number": 3,
      "result": "FAILURE",
      "timestamp": 1545658784937,
      "url": "http://localhost:8080/job/RegressionTest/3/"
    }
  ]
}

您可以使用Java json库以所需的方式解析和处理数据。

使用api / job / / api / xml?tree = allBuilds [result,number,url,timestamp] 来获取xml格式的相同数据。

请注意,此处指定的所有内容均在工作级别。