Adds a new attachment for the automation in QAComplete.
Use the operation to attach a new file to run to the test’s automation.
To replace the attachment (to redefine all the field values), use the …/tests/{TestId}/automations/{Agent}/attachment (PUT)
operation. To update individual fields of an attachment, use the …/tests/{TestId}/automations/{Agent}/attachment (PATCH)
operation.
Authentication
Basic authentication using a user’s login and password. See Authentication for details.
Security Rights
The authenticating user must belong to a security group that has the Update privilege for Test Library.
Request Format
To create a test, send a POST request to the following URL:
URL parameters
ProjectId : integer, required
The ID of the project.
TestId : integer, required
The ID of the needed test.
Agent : string, required
The URL-encoded or the short name of the automation agent (test runner).
Currently, REST API supports the following agents:
Agent | URL-encoded Name | Short Name |
---|---|---|
TestComplete/TestExecute | TestComplete%2FTestExecute |
testcomplete |
JUnit (Selenium) | JUnit%20%28Selenium%29 |
junit |
NUnit (Selenium) | NUnit%20%28Selenium%29 |
nunit |
TestNG (Selenium) | TestNG%20%28Selenium%29 |
testng |
ReadyAPI / SoapUI OS | ReadyAPI+%2F+SoapUI+OS |
readyapi |
The agent names are case-insensitive.
Link : string
The URL or UNC path to the attachment.
Comment : string
Comment to the attachment. Can include HTML markup.
Body parameters
In the request body, pass the attachment data wrapped as multipart/form-data. Some tools and development libraries let you specify just the file name and construct the request body automatically.
A sample request:
POST http://yourserver.com/rest-api/service/api/v2/projects/11873/tests/2696/automations/nunit/attachment?Link=http%3A%2F%2Fexample.com%2samples%2Forders.zip HTTP/1.1
Host: yourserver.com
Connection: keep-alive
Content-Type: application/json
Accept: application/json
Authorization: Basic am9obkBleGFtcGxlLmNvbTpwQHNzd29yZA==
Content-Length: 996
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="ProjectId"
11873
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Tests"
tests
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="TestId"
2696
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Automations"
automations
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Agent"
nunit
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Attachments"
attachment
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Comments"
New Comment
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="Title"
Data
------WebKitFormBoundaryobxsXCltsQZ5UBfL
Content-Disposition: form-data; name="File"; filename="file.zip"
Content-Type: application/octet-stream
...the data file contents..
------WebKitFormBoundaryobxsXCltsQZ5UBfL--
A sample request made by using cURL:
curl -u [email protected]:p@ssword -F [email protected] -H "Accept: application/json" http://yourserver.com/rest-api/service/api/v2/projects/11953/tests/2693/readyapi/attachment
Response Format
If successful, the operation responds with HTTP status code 200 and returns a JSON object with information about the added attachment.
A sample response:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 256
{
"file_name": "file.zip",
"link": "http%3A%2F%2Fexample.com%2samples%2Forders.zip",
"file_format_code": "PKZip File",
"date_created": "2016-07-14T12:10:34.3070000",
"date_updated": "2016-07-14T12:10:34.3070000",
"update_user_id: 24561,
"user_name": "Smith, John "
}
The name of the attached file.
The URL or UNC path to a folder where the test files reside.
The file format code.
The date and time when the attachment was created.
The date and time the attachment was last updated.
The ID of the user who updated the attachment last time.
The name of the user who updated the attachment last time.
Error responses
If the operation fails, it returns the appropriate status code and (optionally) the error description in the response body.
If the project with the specified ProjectId does not exist or the authenticating user does not have rights to access the project, the operation returns the Access is denied
error.