如何使用 Rest API 在测试用例工作项中添加测试步骤

How to add test steps in a test case work item using Rest API

Image of Test Case 我创建了一个自定义工作项,我已成功调用 api 来创建工作项,但我不知道如何为该工作项创建测试步骤。

 let body = [
      {
        "op": "add",
        "path": "/fields/System.Title",
        "from": null,
        "value": "Sample1"
      },
      {
        "op": "add",
        "path": "/fields/Microsoft.VSTS.TCM.Steps",
        "value":"<Steps id=\"0\">     <step id=\"2\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 1</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 1</parameterizedString><description/></step>     <step id=\"3\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 2</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 2</parameterizedString><description/></step></Steps>"
      },
    ]
    fetch(`https://dev.azure.com/${organizationName}/${projectId}/_apis/wit/workitems/$CUSTOM TASK 1?api-version=7.1-preview.3`, {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json-patch+json',
        'Authorization': 'Basic ' + btoa("" + ":" + token)
      },
      body: JSON.stringify(body)
    })

我试过上面的代码,但它只是创建了一个工作项,但测试步骤在工作项中不可见 这是我得到的回应:

fields:
Microsoft.VSTS.TCM.Steps: "<steps id=\"0\">     <step id=\"1\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 1</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 1</parameterizedString><description/></step>     <step id=\"2\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 2</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 2</parameterizedString><description/></step></steps>"
System.AreaPath: "Azure devops test  demo"
System.ChangedBy: {displayName: 'sid vaidya', url: 'https://spsprodsin2.vssps.visualstudio.com/A120553…s/Identities/7131ed99-7bde-6f31-8161-653548dbc4fe', _links: {…}, id: '7131ed99-7bde-6f31-8161-653548dbc4fe', uniqueName: 'sidvaidya34@gmail.com', …}
System.ChangedDate: "2022-03-09T05:07:10.04Z"
System.CommentCount: 0
System.CreatedBy: {displayName: 'sid vaidya', url: 'https://spsprodsin2.vssps.visualstudio.com/A120553…s/Identities/7131ed99-7bde-6f31-8161-653548dbc4fe', _links: {…}, id: '7131ed99-7bde-6f31-8161-653548dbc4fe', uniqueName: 'sidvaidya34@gmail.com', …}
System.CreatedDate: "2022-03-09T05:07:10.04Z"
System.IterationPath: "Azure devops test  demo"
System.Reason: "Moved to state To do"
System.State: "To do"
System.TeamProject: "Azure devops test  demo"
System.Title: "Steps"
System.WorkItemType: "Custom Task 1"

您的 XML 有点不正常,这就是导致问题的原因。我发现有两个小问题在更正后允许工作项正确解释步骤:

  1. <Steps /> 应该是小写 <steps />
  2. 您的步骤 ID 从 2 开始,而不是 1

试试这个 XML:

<steps id=\"0\"> <step id=\"1\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 1</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 1</parameterizedString><description/></step> <step id=\"2\" type=\"ValidateStep\"><parameterizedString isformatted=\"true\">Input step 2</parameterizedString><parameterizedString isformatted=\"true\">Expectation step 2</parameterizedString><description/></step></steps>

这是由您的自定义工作项中的“Microsoft.VSTS.TCM.Steps”字段引起的。 根据您提供的屏幕截图,它是一个文本(mulit-line)类型的字段。

文本 (mulit-line) 字段无法解析您的 XML。如果您需要类似的内容,您可以尝试使用HTML:

<table><tr><th>Steps</th><th>Action</th><th>Expected Results</th></tr><tr><td>1</td><td>Input step 1</td><td>Expectation step 1</td></tr></table>