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

Bulk update run steps in HP ALM using ALM API

我的目的是批量更新测试 运行 步骤。我已经创建了测试集文件夹 -> 测试集实例 -> 测试 运行。我可以通过 posting json 更新测试 运行 url

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

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

这个很好用

现在根据API

Post, Put To create or update more than one entity of the same entity type, pass the data in the request body. Pass an XML string compliant with the Entities Collection Schema or a JSON string of the same format returned by a GET operation on the collection.

To create entities, use an HTTP POST call. To update entities, use an HTTP PUT call.

Pass one of these content-type headers: content-type="application/xml;type=collection" content-type="application/json;type=collection"

Use the content-type header that matches the data you are sending

现在我尝试了很多 posting json 的组合来进行批量更新,但每次我都遇到

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

json我试过post到url

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"
                    }
                ]
            }
        ]

    }
  ]

}

到目前为止 none 似乎是可行的。如果有人对任何 ALM API 资源进行过任何批量操作,请指出我在 posting 请求中出错的地方。仅供参考,这是一个 PUT 请求。提前谢谢你

@Macintosh_89:操作应该可以(单数)。你的情况遗漏的是 run-steps (在 url 中):

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

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

REST API (POST-PUT-GET-DELETE) 的 run-steps 修改应该可以用于高于 QC 11.50 的版本,因此请查看您的 QC REST 库。

关于您是否可以针对多个 run-steps 发送批量查询的问题,我也在寻找解决方案,但到目前为止,我使用的是报告所有 [=37= 】 一个一个。

所以请先尝试只发送一个 run-steps 口述,然后再将下一步发送给 QC。如果您能够在一次拍摄中向 QC 发送多个请求,请告诉我。

否则上面建议的方法在我的情况下工作稳定并且不会耗费大量时间。

希望这能澄清您的疑问!再见,祝你有美好的一天。

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

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

在我使用的 11.52 等以前的版本中,仍然可以对多个实体发送批量操作,但请记住在 headers 中添加您提到的内容类型。

Post, Put To create or update more than one entity of the same entity type, pass the data in the request body. Pass an XML string compliant with the Entities Collection Schema or a JSON string of the same format returned by a GET operation on the collection.

To create entities, use an HTTP POST call. To update entities, use an HTTP PUT call.

Pass one of these content-type headers: content-type="application/xml;type=collection" content-type="application/json?type=collection"

Use the content-type header that matches the data you are sending.

最后但同样重要的是 run-steps 我想这个操作是不允许的。由于 run-steps 可能被视为一个实体的子实体。如果我找到了 11.52 的批量方式,那么我会告诉你 ;)

祝你有美好的一天,希望我对你有所帮助!再见