如何自动从Klocwork获取总错误数

时间:2016-09-30 12:11:51

标签: klocwork

我有一个在Klocwork中运行的项目,在构建完成后,将生成Klocwork结果。每次我需要去Klocwork门户网站获取结果并查找新问题或总问题。相反,我需要一个API或脚本来在构建成功时自动从Klocwork结果中获取问题总数。

有没有办法实现这个目标?一种方法是将门户页面源视为html并获得我需要的结果。但是,我认为可能有更好的解决方案。

有人可以帮助我实现这个目标吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我回答了similar question over here。下面是一个更新的答案,其中包含最新版本Klocwork 11的文档链接。

Klocwork有一个WebAPI,您可以使用它从您喜欢的脚本语言中查询此类信息,或者使用curl。您的Klocwork服务器上还提供了API文档:http:// klocwork_server_host port / review / api,例如http://localhost:8080/review/api

查询:

curl --data "action=search&user=my_account&project=my_project&query=build:build_1 status:Analyze state:New,Existing&ltoken=xxxx" http://localhost:8080/review/api

将返回在构建中找到的所有打开(状态现有),未引用(状态分析)问题的列表命名为项目 my_project build_1

有关可在查询字符串中使用搜索操作的关键字列表,请参阅Searching in Klocwork Review

如果您只想获得缺陷数量的摘要而不是获取整个列表,则可以使用报告操作:

curl --data "action=report&user=my_account&project=my_project&build:build_1&x=Category&y=Component&filterQuery=status:Analyze state:New,Existing&ltoken=xxxx" http://localhost:8080/review/api

通过检查器类别(分类法)和组件返回缺陷数量的摘要。样本输出如下:

{"rows":[{"id":1,"name":"C and C++"},{"id":3,"name":"MISRA C"},{"id":4,"name":"MISRA C++"}],"columns":[{"id":5,"name":"System Model"}],"data":[[122],[354],[890]],"warnings":[]}

您可以修改x轴和y轴参数以产生问题的不同细分,例如通过严重性和状态:

curl --data "action=report&user=my_account&project=my_project&build:build_3&x=Severity&y=State&filterQuery=state:New,Existing,Fixed&ltoken=xxxx" http://localhost:8080/review/api

输出:

{"rows":[{"id":1,"name":"Critical"},{"id":2,"name":"Error"},{"id":3,"name":"Warning"},{"id":4,"name":"Review"}],"columns":[{"id":-1,"name":"Existing"},{"id":-1,"name":"Fixed"},{"id":-1,"name":"New"}],"data":[[10,5,2],[20,6,1],[45,11,3],[1112,78,23]],"warnings":[]}

WebAPI cookbook documentation有一个使用python与报告操作以及处理和格式化响应的示例。