2016-09-30 1 views
0

У меня есть проект, работающий в Klocwork, и после того, как сборка будет завершена, будут созданы результаты Klocwork. Каждый раз, когда мне нужно идти на портал Klocwork, чтобы получить результаты и искать новые проблемы или общие проблемы. Вместо этого мне нужен API или скрипт, чтобы автоматически получить общее количество проблем из результатов Klocwork, когда сборка будет успешной.Как получить общее количество ошибок от Klocwork автоматически

Есть ли способ достичь этого? Один из способов - просмотреть источник страницы портала как html и получить нужный мне результат. Однако я думаю, что может быть лучшее решение.

Может кто-нибудь помочь мне в достижении этого?

Заранее спасибо.

ответ

0

Я ответил similar question over here. Ниже приведен обновленный ответ со ссылками на документацию для самой последней версии, Klocwork 11.

Klocwork имеет WebAPI, который вы можете использовать для запроса этого типа информации с вашего любимого языка сценариев или, например, с помощью curl. Документация API также предоставляется на вашем сервере Klocwork по адресу http: // klocwork_server_host: порт/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 

возвращает список всех открытых (состояние New и Существующие), не привел (статус Анализ) проблем, найденных в сборке с именем build_1 проекта my_project.

Список ключевых слов, которые можно использовать в строке запроса с помощью действия поиска, см. 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":[]} 

Вы можете изменить параметры оси х и у для производства различной разбивки вопросов, например, по степени тяжести и вместо государства:

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 с действием отчета и обработки и форматирования ответа.