Modity test and add test working
parent
16e1e41da5
commit
43de742eae
|
@ -6,7 +6,7 @@ Library RequestsLibrary
|
|||
|
||||
|
||||
*** Variables ***
|
||||
${BASE_URL} http://localhost:8005/ogdhcp/v1
|
||||
${BASE_URL} http://localhost:8006/ogdhcp/v1
|
||||
${headers} Create Dictionary Content-Type application/json
|
||||
${modified_subnet} Create Dictionary mask=255.255.192.0 address=192.168.1.0 nextServer=192.168.1.1 bootFileName=pxelinux.0
|
||||
${wrong_subnet_data_netmask} Create Dictionary mask=333.333.333.333 address=192.168.1.0 nextServer=192.168.1.1 bootFileName=pxelinux.0
|
||||
|
@ -14,7 +14,7 @@ ${wrong_subnet_data_address} Create Dictionary mask=255.255.255.0 addres
|
|||
${wrong_subnet_data_server} Create Dictionary mask=255.255.255.0 address=192.168.1.0 nextServer=555.168.1.1 bootFileName=pxelinux.0
|
||||
${invalid_net_id} 999
|
||||
${valid_net_id} 2
|
||||
${new_subnet} Create Dictionary subnetId=${valid_net_id} mask=255.255.255.0 address=192.168.1.0 nextServer=192.168.1.1 bootFileName=pxelinux.0
|
||||
${subnet_error} 0
|
||||
|
||||
*** Test Cases ***
|
||||
Get Status of the DHCP server
|
||||
|
@ -33,9 +33,9 @@ Get Status of the DHCP server
|
|||
|
||||
|
||||
Get All Subnets
|
||||
[Documentation] Este test verifica que la API retorna las subredes correctamente con el código 200.
|
||||
[Documentation] Este test verifica que la API retorna las subredes correctamente con el código 200.
|
||||
[Tags] subnets
|
||||
${response}= GET ${BASE_URL}/ogdhcp/v1/subnets
|
||||
${response}= GET ${BASE_URL}/subnets
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 200
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
|
@ -45,105 +45,107 @@ Get All Subnets
|
|||
# Validar el mensaje de éxito
|
||||
Should Be Equal ${json['success']} Subredes obtenidas correctamente
|
||||
# Verificar que 'message' es una lista
|
||||
Should Be True ${json['message']} is list
|
||||
# Should Be True ${json['message']} is list
|
||||
# Verificar que cada subred en 'message' tiene los campos esperados
|
||||
FOR ${subred} IN @{json['message']}
|
||||
Dictionary Should Contain Key ${subred} id
|
||||
Dictionary Should Contain Key ${subred} ip-address
|
||||
Dictionary Should Contain Key ${subred} hw-address
|
||||
Dictionary Should Contain Key ${subred} hostname
|
||||
Dictionary Should Contain Key ${subred} subnet
|
||||
Dictionary Should Contain Key ${subred} next-server
|
||||
Dictionary Should Contain Key ${subred} boot-file-name
|
||||
END
|
||||
|
||||
## Revisar como forzar el error
|
||||
# Get All subnets error
|
||||
# [Documentation] Este test verifica que la API retorna un error correctamente con el código 400.
|
||||
# [Tags] subnets
|
||||
# ${response}= GET ${BASE_URL}/ogdhcp/v1/subnets params=${{"invalid_param": "value"}} expected_status=400 # Modificar para provocar el error
|
||||
# # Verificar código de estado HTTP
|
||||
# Should Be Equal As Numbers ${response.status_code} 400
|
||||
# ${json}= Convert To Dictionary ${response.json()}
|
||||
|
||||
# # Verificar que la respuesta contiene la clave 'error'
|
||||
# Dictionary Should Contain Key ${json} error
|
||||
|
||||
# # Validar que el mensaje de error no está vacío
|
||||
# Should Not Be Empty ${json['error']}
|
||||
|
||||
Post a new subnet
|
||||
[Documentation] Post a new subnet
|
||||
[Tags] subnets
|
||||
${new_subnet} Create Dictionary
|
||||
... id=${valid_net_id}
|
||||
... mask=255.255.255.0
|
||||
... address=192.168.2.0
|
||||
... nextServer=192.168.2.1
|
||||
... bootFileName=pxelinux.0
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${response}= POST ${BASE_URL}/subnets json=${new_subnet} headers=${headers} expected_status=200
|
||||
${response}= POST ${BASE_URL}/subnets json=${new_subnet} headers=${headers} expected_status=200
|
||||
Status Should Be 200 ${response}
|
||||
${json}= Convert to Dictionary ${response.json()}
|
||||
Dictionary Should Contain Key ${json} success
|
||||
Dictionary Should Contain Key ${json} message
|
||||
Should Contain ${json["success"]} Subnet agregada correctamente
|
||||
Should Contain ${json["success"]} Subred agregada correctamente
|
||||
Should Be Equal As Numbers ${json["message"]["id"]} ${valid_net_id}
|
||||
Should Be Equal ${json["message"]["mask"]} ${new_subnet["mask"]}
|
||||
Should Be Equal ${json["message"]["address"]} ${new_subnet["address"]}
|
||||
Should Be Equal ${json["message"]["nextServer"]} ${new_subnet["nextServer"]}
|
||||
Should Be Equal ${json["message"]["bootFileName"]} ${new_subnet["bootFileName"]}
|
||||
|
||||
|
||||
Post a new subnet with existing id
|
||||
[Documentation] Post a new subnet with invalid data
|
||||
[Tags] subnets
|
||||
${new_subnet} Create Dictionary
|
||||
... id=2
|
||||
... mask=255.255.255.0
|
||||
... address=192.168.3.0
|
||||
... nextServer=192.168.3.1
|
||||
... bootFileName=pxelinux.0
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${response}= POST ${BASE_URL}/subnets json=${new_subnet} headers=${headers} expected_status=400
|
||||
Status Should Be 400 ${response}
|
||||
${json}= Convert to Dictionary ${response.json()}
|
||||
Dictionary Should Contain Key ${json} error
|
||||
Should Contain ${response.json()['error']} Subnet con id 2 ya existe
|
||||
|
||||
Should Contain ${response.json()["error"]} Error: La subred con el id '${valid_net_id}' ya existe.
|
||||
|
||||
Post a new subnet with existing address
|
||||
[Documentation] Post a new subnet with invalid data
|
||||
[Tags] subnets
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${new_subnet_invalid}= Create Dictionary subnetId=3 mask=255.255.255.0 address=192.168.1.0 nextServer=192.168.1.1 bootFileName=pxelinux.0
|
||||
${new_subnet_invalid} Create Dictionary
|
||||
... id=3
|
||||
... mask=255.255.255.0
|
||||
... address=192.168.1.0
|
||||
... nextServer=192.168.1.1
|
||||
... bootFileName=pxelinux.0
|
||||
|
||||
${response}= POST ${BASE_URL}/subnets json=${new_subnet_invalid} headers=${headers} expected_status=400
|
||||
Status Should Be 400 ${response}
|
||||
${json}= Convert to Dictionary ${response.json()}
|
||||
Dictionary Should Contain Key ${json} error
|
||||
Should Contain ${response.json()['error']} Error: La subred el subnet '192.168.1.0/24' ya existe en las subredes
|
||||
Should Contain ${response.json()['error']} Error: La subred con la dirección '192.168.1.0/24' ya existe
|
||||
|
||||
|
||||
Modify an existing subnet by id
|
||||
[Documentation] Modify a subnet by id
|
||||
[Tags] subnets
|
||||
|
||||
[Tags] subnets
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${modified_subnet}= Create Dictionary
|
||||
... mask=255.255.192.0
|
||||
... address=192.168.1.0
|
||||
... next-server=192.168.1.1
|
||||
... bootFileName=pxelinux.0
|
||||
# Modificar la subred con id=2
|
||||
${response}= PUT ${BASE_URL}/subnets/2 json=${modified_subnet} headers=${headers} expected_status=200
|
||||
Status Should Be 200
|
||||
|
||||
|
||||
${response}= PUT ${BASE_URL}/subnets/2 json=${modified_subnet} headers=${headers} expected_status=200
|
||||
Status Should Be 200 ${response}
|
||||
${json}= Convert to Dictionary ${response.json()}
|
||||
# Verificar que la respuesta contiene clave 'success'
|
||||
Dictionary Should Contain Key ${json} success
|
||||
|
||||
# Validar el contenido del mensaje de éxito
|
||||
Should Be Equal ${json['success']} Subred modificada correctamente
|
||||
Should Be Equal ${json['message']['id']} 2
|
||||
|
||||
|
||||
|
||||
Modify a subnet with invalid id
|
||||
[Documentation] Este test verifica que la modificación de una subred falla cuando el ID no existe.
|
||||
[Tags] subnets
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${modificar_subred}= Create Dictionary mask=255.255.192.0 address=192.168.1.0 nextServer=192.168.1.1 bootFileName=pxelinux.0
|
||||
${response}= PUT ${BASE_URL}/ogdhcp/v1/subnets/${invalid_net_id} json=${modificar_subred} headers=${headers} expected_status=400
|
||||
${response}= PUT ${BASE_URL}/ogdhcp/v1/subnets/${invalid_net_id} json=${modificar_subred} headers=${headers} expected_status=404
|
||||
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
|
||||
# Verificar que la respuesta contiene el error esperado
|
||||
Should Be Equal ${json['error']} Error: La subred con el id '999' no existe
|
||||
Should Be Equal As Numbers ${response.status_code} 404
|
||||
|
||||
|
||||
|
||||
Modify subnet with error to save configuration
|
||||
[Documentation] Este test verifica que la modificación falla cuando hay un error al guardar la configuración en Kea DHCP.
|
||||
[Tags] subnets
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${modificar_subred}= Create Dictionary subnet="192.168.1.0/24" next-server="192.168.1.1" boot-file-name="pxelinux.0"
|
||||
${response}= PUT ${BASE_URL}/ogdhcp/v1/subnets/2 json=${modificar_subred} headers=${headers} expected_status=400
|
||||
${modificar_subred}= Create Dictionary subnet="192.168.1.0/24" nextServer="192.168.1.1" bootFileName="pxelinux.0"
|
||||
${response}= PUT ${BASE_URL}/subnets/${subnet_error} json=${modificar_subred} headers=${headers} expected_status=400
|
||||
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
|
@ -153,11 +155,13 @@ Modify subnet with error to save configuration
|
|||
# Verificar que la respuesta contiene el error esperado
|
||||
Should Be Equal ${json['error']} Error al guardar la configuración en Kea DHCP: Unable to save configuration
|
||||
|
||||
Modify subnet with invalid configuration
|
||||
Modify subnet with invalid configuration address without netmask
|
||||
[Documentation] Este test verifica que la modificación falla cuando hay un error en la configuración de Kea DHCP.
|
||||
[Tags] subnets
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${modificar_subred}= Create Dictionary subnet="192.168.1.0" next-server="192.168.1.1" boot-file-name="pxelinux.0"
|
||||
${response}= PUT ${BASE_URL}/ogdhcp/v1/subnets/2 json=${modificar_subred} headers=${headers}
|
||||
${modificar_subred}= Create Dictionary address="192.168.1.0" nextServer="192.168.1.1" bootFileName="pxelinux.0"
|
||||
|
||||
${response}= PUT ${BASE_URL}/subnets/2 json=${modificar_subred} headers=${headers} expected_status=400
|
||||
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
|
@ -165,15 +169,60 @@ Modify subnet with invalid configuration
|
|||
${json}= Convert To Dictionary ${response.json()}
|
||||
|
||||
# Verificar que la respuesta contiene el error esperado
|
||||
Should Be Equal ${json['error']} Error kea configuration invalid: Invalid configuration syntax
|
||||
Should Be Equal ${json['error']} Error: La máscara de red es requerida con el parametro 'address'
|
||||
|
||||
Delete a new subnet by id
|
||||
[Documentation] Delete a subnet by id
|
||||
Modify subnet with invalid configuration netmask without addres
|
||||
[Documentation] Este test verifica que la modificación falla cuando hay un error en la configuración de Kea DHCP.
|
||||
[Tags] subnets
|
||||
${response}= DELETE ${BASE_URL}/subnets/2 headers=${headers}
|
||||
Status Should Be 200
|
||||
${json}= Set Variable ${response.json()}
|
||||
Should Be Equal ${json["status"]} success
|
||||
Should Be Equal ${json["message"]} Subred eliminada correctamente
|
||||
Should Be Equal ${json["subnetId"]} 2
|
||||
${headers}= Create Dictionary Content-Type=application/json
|
||||
${modificar_subred}= Create Dictionary mask="255.255.255.0" nextServer="192.168.1.1" bootFileName="pxelinux.0"
|
||||
|
||||
${response}= PUT ${BASE_URL}/subnets/2 json=${modificar_subred} headers=${headers} expected_status=400
|
||||
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
|
||||
# Verificar que la respuesta contiene el error esperado
|
||||
Should Be Equal ${json['error']} Error: La dirección de red es requerida con el parametro 'mask'
|
||||
|
||||
Delete subnet by id
|
||||
[Documentation] Este test verifica que la subred se elimina correctamente con el código 200.
|
||||
[Tags] subnets
|
||||
${response}= DELETE ${BASE_URL}/subnets/${valid_net_id}
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 200
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
# Verificar que la respuesta contiene la clave 'success'
|
||||
Dictionary Should Contain Key ${json} success
|
||||
# Validar el mensaje de éxito
|
||||
Should Be Equal ${json['success']} Subred eliminada correctamente
|
||||
|
||||
Delete subnet - Error: wrong subnet Id
|
||||
[Documentation] Este test verifica que la eliminación falla si la subred con el ID no existe.
|
||||
[Tags] subnets
|
||||
${response}= DELETE ${BASE_URL}/ogdhcp/v1/subnets/${invalid_net_id} expected_status=400
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
# Verificar que la respuesta contiene la clave 'error'
|
||||
Dictionary Should Contain Key ${json} error
|
||||
# Validar el mensaje de error
|
||||
Should Be Equal ${json['error']} Error: La subred con el id '999' no existe
|
||||
|
||||
Delete subnet - Error: no subnets defined
|
||||
[Documentation] Este test verifica que la eliminación falla cuando no hay subredes definidas.
|
||||
[Tags] subnets
|
||||
${response}= DELETE ${BASE_URL}/ogdhcp/v1/subnets/${valid_net_id} expected_status=400
|
||||
# Verificar código de estado HTTP
|
||||
Should Be Equal As Numbers ${response.status_code} 400
|
||||
${json}= Convert To Dictionary ${response.json()}
|
||||
# Verificar que la respuesta contiene la clave 'error'
|
||||
Dictionary Should Contain Key ${json} error
|
||||
# Validar el mensaje de error
|
||||
Should Be Equal ${json['error']} Error: No hay subredes definidas
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue