HP ALM API : Attaching file to run step through ALM REST API not working

312 views Asked by At

We have fetched Run Steps details using ALM REST API. (for reference ALM API Documentation

Same question is being asked in ALM community, Community Microfocus ALM

https://some.almserver.com/qcbin/rest/domains/DOMAIN/projects/PROJECT/runs/<run-id>/run-steps

and passed Run Step id to below API and tried to attach file using POST and PUT.

https://some.almserver.com/qcbin/rest/domains/DOMAIN/projects/PROJECT/runs/<run-id>/run-steps/<run-step-ID>/attachments

we are getting 404 response. Bad request.

URL =  "https://some.almserver.com/qcbin/rest/domains/DOMAIN/projects/PROJECT/runs/<run-id>/run-steps/<step-id>/attachments"

METHOD = "PUT"

HEADERS = {

    'cache-control': "no-cache",

    "Slug": "some.html",

    'Content-Type': "application/octet-stream"

}

 

def attach_to_run_step():

    f = open("/path/to/some.html", "rb")

    response = requests.put(URL, headers=HEADERS, cookies=cookies, data=f.read())

    print(response.content)

Expected : 200 response Actual : 404 status code

1

There are 1 answers

2
Sergi On BEST ANSWER

I think you need to use the following URL for your POST request: https://some.almserver.com/qcbin/rest/domains/DOMAIN/projects/PROJECT/run-steps/<run-step-id>/attachments (remove /runs/<run-id>)

Update:

Here is an example, generated from Postman:

import requests

url = "http://xxx.xxx.xxx.xxx:8080/qcbin/rest/domains/DEFAULT/projects/demo/run-steps/1263/attachments"

payload="<file contents here>"
headers = {
  'Content-Type': 'application/octet-stream',
  'Slug': '1.jpg',
  'Cookie': 'JSESSIONID=<session>; ALM_USER=2e69...; LWSSO_COOKIE_KEY=PTKYM...; QCSession=MTQwM...; XSRF-TOKEN=3dfa4...'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

P.S. We are developing commercial platform for integrating various test frameworks with ALM, which is called Agiletestware Bumblebee, so you might want to have a look at it.