批量更新使用ALM API在HP ALM中运行步骤

时间:2017-05-25 09:58:10

标签: json rest alm qc hp-alm

我的目的是批量更新测试运行步骤。我创建了测试集文件夹 - >测试集实例 - >测试运行。我可以通过发布json来更新测试运行 与网址

  https://qcurl/qcbin/rest/domains/DOMAIN_NAME/projects/PROJECT_NAME/runs/run_id

{"Fields":[{"Name":"status","values":[{"value":"Passed"}]}]}

这很好用

现在根据API

  

发布,放置创建或更新同一实体的多个实体   输入,传递请求正文中的数据。传递XML字符串兼容   使用实体集合架构或相同的JSON字符串   由集合上的GET操作返回的格式。

     

要创建实体,请使用HTTP POST调用。要更新实体,请使用   HTTP PUT调用。

     

传递其中一个内容类型标头:   内容类型="应用/ XML;类型=集合"   内容类型="应用/ JSON;类型=集合"

     

使用与您要发送的数据匹配的内容类型标题

现在我尝试了许多发布json进行批量更新的组合,每当我收到错误

{
 "Id": "qccore.method-not-allowed",
 "Title": "Method not allowed",
 "ExceptionProperties": null,
 "StackTrace": null
}

json我试图发布到网址

http://ALM_URI/runs/<run_id>/run-steps


 {
"entities": [{
        "Fields": [
            {
                "Name": "id",
                "values": [{
                        "value": "1219"
                    }
                ]
            }, {
                "Name": "status",
                "values": [{
                        "value": "Failed"
                    }
                ]
            }
        ]
    }, {
        "Fields": [
            {
                "Name": "id",
                "values": [{
                        "value": "1220"
                    }
                ]
            }, {
                "Name": "status",
                "values": [{
                        "value": "Passed"
                    }
                ]
            }
        ]
    }

]

}

还有这个

{
"data": [
    {
        "Fields": [
            {
                "Name": "id",
                "values": [
                    {
                        "value": "1215"
                    }
                ]
            },
            {
                "Name": "status",
                "values": [
                    {
                        "value": "N/A"
                    }
                ]
            }
        ]

    },
    {
        "Fields": [
            {
                "Name": "id",
                "values": [
                    {
                        "value": "1216"
                    }
                ]
            },
            {
                "Name": "status",
                "values": [
                    {
                        "value": "N/A"
                    }
                ]
            }
        ]

    }
  ]

}

到目前为止,他们似乎都没有工作。如果有人对任何ALM API资源进行了任何批量操作,请指出发布请求时出错的地方。仅供参考,这是 PUT 请求。提前谢谢

1 个答案:

答案 0 :(得分:0)

@ Macintosh_89:应该可以进行操作(单独)。在你的情况下错过的是运行步骤(在网址中):

POST/PUT/GET/DELETE    https://qcurl/qcbin/rest/domains/DOMAIN_NAME/projects/PROJECT_NAME/runs/run_id/run-steps

如果您想获取一些现有的运行步骤,那么您甚至可以在上一行的末尾给出运行步骤ID。

REST API的运行步骤修改(POST-PUT-GET-DELETE)应该可以用于高于QC 11.50的版本,所以请查看你的QC REST库。

如果您可以针对多个运行步骤发送批量查询,那么我也在寻找解决方案,但到目前为止,我正在使用一个逐个报告所有运行步骤的for循环。

因此,请先尝试发送一个运行步骤dict,然后将后续步骤发送到QC。如果您能够在一次拍摄中向QC发送多个请求,请告知我们。

否则,上面建议的方法在我的情况下运行稳定,并没有那么大的耗时。

希望这能澄清您的疑问! Ciao,祝你有个愉快的一天。

我看了一下,对于HP ALM 12.53,可以一次更新多个实例。看看下面的链接:

http://alm-help.saas.hpe.com/en/12.53/api_refs/REST/Update_Multiple_Instances.htm

在我使用的早期版本11.52中,仍然可以在多个实体上发送批量操作,但请记住在标题中添加内容类型,如上所述。

  

发布,放置创建或更新同一实体的多个实体   输入,传递请求正文中的数据。传递XML字符串兼容   使用实体集合架构或相同的JSON字符串   由集合上的GET操作返回的格式。

     

要创建实体,请使用HTTP POST调用。要更新实体,请使用   HTTP PUT调用。

     

传递其中一个内容类型标头:   内容类型=&#34;应用/ XML;类型=集合&#34;   内容类型=&#34;应用/ JSON类型=集合&#34;

     

使用与您要发送的数据匹配的内容类型标题。

最后但并非最不重要的是运行步骤我猜这个操作是不允许的。由于运行步骤可能被视为一个实体的子实体。如果我找到11.52的批量方式,那么我会告诉你;)

祝你有个美好的一天,希望我帮助你一点!侨

相关问题