Ir al contenido principal

Pruebas de la API

Esta guía proporciona enfoques y ejemplos de pruebas específicas para la API de tickets de problema de Equinix, basándose en los principios generales de Pruebas de API.

Descripción general de la API de tickets de problema

La API de tickets de problemas permite a los clientes interactuar de forma programática con el servicio de asistencia de Equinix, creando tickets de asistencia para problemas que afecten al servicio en varias categorías:

  • Problemas de Cross Connects
  • Problemas de conectividad de red
  • Incidentes relacionados con la energía
  • Preocupaciones medioambientales
  • Fallos de hardware
  • Incidentes de seguridad
  • Soporte de Managed Solutions

Tipos de problemas

La API de tickets de problema admite varias categorías de problemas, cada una con códigos de problema específicos:

Problem CategoryDescriptionExample Codes
Cross ConnectPhysical cable connection issuescc01, cc02, cc03
NetworkNetwork connectivity problemsnet01, net02
EnvironmentHVAC, cooling, environmental issuesenv01, env02, env03, env04
HardwareEquipment and hardware failureshdw01
PowerPower-related incidentspwr01, pwr02
SecuritySecurity access and badge issuessec01, sec02
Managed ServicesManaged service support requestsms01-ms13
SmartViewSmartView monitoring issuessv01-sv05

Flujo de trabajo de prueba de tickets de problema

Antes de probar la API Trouble Ticket, asegúrese de que dispone de:

  • Una cuenta de desarrollador de Equinix con permisos de ticket de problema
  • Credenciales de API válidas (ID de cliente y secreto de cliente)
  • Acceso a ubicaciones y jaulas IBX adecuadas
  • Comprensión de API Authentication

Creación de un pedido de ticket de problema

import requests
import json
from datetime import datetime, timedelta

# Setup authentication
auth_url = "https://api.equinix.com/oauth2/v1/token"
auth_payload = {
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}

auth_response = requests.post(auth_url, data=auth_payload)
token = auth_response.json()["access_token"]

# Test creating a trouble ticket order
base_url = "https://api.equinix.com"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}

# Example: Create a network connectivity trouble ticket
request_payload = {
"customerReferenceNumber": "TT-TEST-001",
"ibxLocation": {
"ibx": "CH1",
"cages": [
{
"cage": "CH1:05:000750",
"accountNumber": "12345",
"cabinets": [
"CH1:05:000750:01"
]
}
]
},
"serviceDetails": {
"incidentDateTime": (datetime.utcnow() - timedelta(hours=1)).isoformat() + "Z",
"problemCode": "net01", # Network connectivity issue
"additionalDetails": "TEST: Network connectivity issue - API testing"
},
"contacts": [
{
"contactType": "ORDERING",
"userName": "test_ordering_user"
},
{
"contactType": "NOTIFICATION",
"userName": "test_notification_user"
},
{
"contactType": "TECHNICAL",
"userName": "test_technical_user",
"workPhone": "555-0123",
"workPhonePrefToCall": "ANYTIME"
}
]
}

create_response = requests.post(
f"{base_url}/v1/orders/troubleticket",
headers=headers,
data=json.dumps(request_payload)
)

# Verify response
assert create_response.status_code == 201, f"Failed to create trouble ticket: {create_response.text}"
order_number = create_response.json()["OrderNumber"]

print(f"Successfully created trouble ticket order: {order_number}")

Ubicación de las pruebas y validación del tipo de problema

# Test retrieving available locations
locations_response = requests.get(
f"{base_url}/v1/orders/troubleticket/locations",
headers=headers
)

assert locations_response.status_code == 200, f"Failed to retrieve locations: {locations_response.text}"
locations = locations_response.json()["locations"]

print(f"Available locations: {len(locations)}")

# Test retrieving problem types
types_response = requests.get(
f"{base_url}/v1/orders/troubleticket/types",
headers=headers
)

assert types_response.status_code == 200, f"Failed to retrieve problem types: {types_response.text}"
problem_types = types_response.json()["troubleTicketTypes"]

print(f"Available problem types: {len(problem_types)}")

Pruebas de escenarios de error

Pruebe siempre la gestión de errores de su implementación de API:

import requests
import json
from datetime import datetime, timedelta

# Setup authentication
auth_url = "https://api.equinix.com/oauth2/v1/token"
auth_payload = {
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}

auth_response = requests.post(auth_url, data=auth_payload)
token = auth_response.json()["access_token"]

# Prepare request
base_url = "https://api.equinix.com"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}

# Test with invalid problem code
invalid_payload = {
"customerReferenceNumber": "TT-ERROR-TEST-001",
"ibxLocation": {
"ibx": "CH1",
"cages": [{"cage": "CH1:05:000750", "accountNumber": "12345"}]
},
"serviceDetails": {
"incidentDateTime": (datetime.utcnow() - timedelta(hours=1)).isoformat() + "Z",
"problemCode": "INVALID_CODE", # Invalid problem code
"additionalDetails": "TEST: Invalid problem code test"
},
"contacts": [
{"contactType": "ORDERING", "userName": "test_user"},
{"contactType": "NOTIFICATION", "userName": "test_user"}
]
}

error_response = requests.post(
f"{base_url}/v1/orders/troubleticket",
headers=headers,
data=json.dumps(invalid_payload)
)

# Verify error response
assert error_response.status_code == 400, f"Expected error but got: {error_response.status_code}"
error_data = error_response.json()
assert "errors" in error_data, "Error response format not as expected"

print("Successfully validated error handling for invalid problem code")
print(json.dumps(error_data, indent=2))

Prácticas recomendadas para la comprobación de API en caso de problemas

**Nota importante:**La API de tickets de problema de Equinix es un sistema de producción que crea tickets de soporte reales. Siga siempre estas prácticas recomendadas de prueba para asegurarse de no crear trabajo operativo no intencionado.

  1. Establezca una cuenta dedicada a las pruebas: Si es posible, solicite una cuenta independiente para pruebas
  2. Utilice solicitudes de prueba claramente marcadas: Anteponga siempre a las descripciones el prefijo "TEST:" para ayudar al personal de apoyo a identificar las solicitudes de prueba.
  3. Utilice horas de incidentes válidas: Asegúrese de que la fecha/hora del incidente tiene el formato adecuado y no está en el futuro
  4. Validar el acceso a ubicaciones: Utilice el punto final de ubicaciones para verificar las ubicaciones IBX accesibles antes de crear tickets
  5. Pruebe con códigos de problema válidos: Valide siempre los códigos de problema utilizando el punto final de tipos
  6. Incluya la información de contacto completa: Asegúrese de que se proporcionan todos los contactos necesarios (PEDIDOS, NOTIFICACIÓN)
  7. Limpie los recursos de prueba: Colabore con el servicio de asistencia para cerrar los tickets de prueba inmediatamente después de su creación
  8. Pruebe la gestión de errores: Verifique la correcta gestión de errores y los códigos de respuesta

Consideraciones sobre automatización

Al construir la automatización en torno a la API de tickets de problema:

  • Implemente una gestión de errores adecuada y reintentos para los fallos de la API
  • Construya la validación para campos obligatorios y formatos de datos
  • Incluya un registro de auditoría de todas las actividades de creación de tickets
  • Asegúrese de que los tiempos de incidencia se capturan y formatean con precisión
  • Valide la información sobre la ubicación y el código del problema antes de enviarla
  • Considere la posibilidad de implementar flujos de trabajo de aprobación para la creación de tickets de producción
  • Incluya información de contacto completa para una resolución más rápida

Recursos adicionales

¿Fue útil esta página?