131 lines
2.4 KiB
Markdown
131 lines
2.4 KiB
Markdown
# TestArena API Reference
|
|
|
|
TestArena provides a RESTful API for programmatic job submission and status monitoring.
|
|
|
|
## Base URL
|
|
|
|
All API endpoints are prefixed with `/api`.
|
|
|
|
```
|
|
http://<your-server>/api
|
|
```
|
|
|
|
## Authentication
|
|
|
|
The API uses Basic Authentication. You must provide your username and password in the request body for job submission.
|
|
|
|
## Endpoints
|
|
|
|
### 1. Submit Job
|
|
|
|
Submit a new test job to the queue.
|
|
|
|
- **URL**: `/submit_job`
|
|
- **Method**: `POST`
|
|
- **Content-Type**: `application/json`
|
|
|
|
#### Request Body
|
|
|
|
| Field | Type | Required | Description |
|
|
| :--- | :--- | :--- | :--- |
|
|
| `username` | string | Yes | Your TestArena username |
|
|
| `password` | string | Yes | Your TestArena password |
|
|
| `branch_name` | string | Yes | Git branch name to test |
|
|
| `scenarios` | array | Yes | List of scenario names to execute |
|
|
|
|
#### Example Request
|
|
|
|
```bash
|
|
curl -X POST http://localhost:5000/api/submit_job \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"username": "admin",
|
|
"password": "your_password",
|
|
"branch_name": "feature/new-driver",
|
|
"scenarios": ["adc_init_test", "gpio_init_test"]
|
|
}'
|
|
```
|
|
|
|
#### Success Response
|
|
|
|
**Code**: `200 OK`
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"job_id": 123,
|
|
"status": "waiting",
|
|
"remote_triggered": true,
|
|
"message": "Job submitted successfully"
|
|
}
|
|
```
|
|
|
|
#### Error Response
|
|
|
|
**Code**: `401 Unauthorized`
|
|
|
|
```json
|
|
{
|
|
"error": "Invalid credentials"
|
|
}
|
|
```
|
|
|
|
**Code**: `400 Bad Request`
|
|
|
|
```json
|
|
{
|
|
"error": "Missing required fields: username, password, branch_name, scenarios"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### 2. Get Job Status
|
|
|
|
Retrieve the status and details of a specific job.
|
|
|
|
- **URL**: `/job/<job_id>`
|
|
- **Method**: `GET`
|
|
|
|
#### URL Parameters
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| :--- | :--- | :--- | :--- |
|
|
| `job_id` | integer | Yes | The ID of the job to retrieve |
|
|
|
|
#### Example Request
|
|
|
|
```bash
|
|
curl http://localhost:5000/api/job/123
|
|
```
|
|
|
|
#### Success Response
|
|
|
|
**Code**: `200 OK`
|
|
|
|
```json
|
|
{
|
|
"job_id": 123,
|
|
"status": "in_progress",
|
|
"branch_name": "feature/new-driver",
|
|
"scenarios": ["adc_init_test", "gpio_init_test"],
|
|
"remote_results": {
|
|
"adc_init_test": ["PASS", "http://.../report.html"],
|
|
"gpio_init_test": ["FAIL", "http://.../report.html"]
|
|
},
|
|
"created_at": "2023-10-27T10:00:00",
|
|
"completed_at": null,
|
|
"remote_queue_id": "123"
|
|
}
|
|
```
|
|
|
|
#### Error Response
|
|
|
|
**Code**: `404 Not Found`
|
|
|
|
```json
|
|
{
|
|
"error": "Job not found"
|
|
}
|
|
```
|