【问题标题】:Bulk update run steps in HP ALM using ALM API使用 ALM API 在 HP ALM 中批量更新运行步骤
【发布时间】:2017-05-25 09:58:10
【问题描述】:

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

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

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

这很好用

现在根据 API

Post, Put 创建或更新同一实体的多个实体 类型,传递请求正文中的数据。传递符合 XML 字符串 使用实体集合架构或相同的 JSON 字符串 集合上的 GET 操作返回的格式。

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

传递以下内容类型标头之一: 内容类型=“应用程序/xml;类型=集合” content-type="application/json;type=collection"

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

现在我尝试了许多组合发布 json 以进行批量更新,每次我得到一个错误

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

我试图发布到 url 的 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 请求。提前谢谢你

【问题讨论】:

    标签: json rest alm hp-quality-center hp-alm


    【解决方案1】:

    @Macintosh_89:该操作应该是可能的(单独)。您的案例中缺少的是运行步骤(在 url 中):

    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 循环来逐一报告所有运行步骤。

    因此,请先尝试仅发送一个运行步骤字典,然后再将后续步骤发送给 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 等以前的版本中,仍然可以在多个实体上发送批量操作,但请记住在标题中添加您提到的内容类型。

    Post, Put 创建或更新同一实体的多个实体 类型,传递请求正文中的数据。传递符合 XML 字符串 使用实体集合架构或相同的 JSON 字符串 集合上的 GET 操作返回的格式。

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

    传递以下内容类型标头之一: 内容类型=“应用程序/xml;类型=集合” content-type="application/json?type=collection"

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

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

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

    【讨论】:

    • @Macro smdm,感谢您的回答,我发现该操作是不可能的,因为您正确地指出它被视为一个实体的子实体。我想要一个选项,可以进行批量更新,而不是一个一个地发布。
    • @Macintosh_89:我也想做同样的事情,因为即使是从运行步骤中返回的 xml 看起来也像来自实体的正常文件,所以放置起来并不那么复杂/post 与子实体上的批量相同,但如上所述,到目前为止这是不可能的;)也许在即将发布的 QC 版本中是可能的。我已经逐步实施以发送每个运行步骤(但当然这不是一个很好的解决方案泛滥请求)。祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多