Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

130 linhas
4.8 KiB

  1. #!/bin/bash
  2. # Full API smoke test: gateways, zones, trackerzones, trackers (list/update/delete).
  3. # Usage: ./api/smoke_test.sh or BASE_URL=http://host:port ./api/smoke_test.sh
  4. set -e
  5. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. . "${SCRIPT_DIR}/../_common.sh"
  7. echo "=========================================="
  8. echo "GATEWAY API TESTS"
  9. echo "=========================================="
  10. echo "1. Listing all Gateways"
  11. LIST=$(curl -s -X GET "$BASE_URL/reslevis/getGateways" | jq -c '.[]')
  12. GATEWAY_IDS=()
  13. IFS=$'\n'
  14. for r in $LIST; do
  15. echo "$r"
  16. GATEWAY_IDS+=($(echo "$r" | jq -r '.id'))
  17. done
  18. sleep 1
  19. if [ ${#GATEWAY_IDS[@]} -gt 1 ]; then
  20. echo -e "\n\n2. Updating Gateway ${GATEWAY_IDS[1]}"
  21. curl -s -X PUT "$BASE_URL/reslevis/updateGateway/${GATEWAY_IDS[1]}" \
  22. -H "Content-Type: application/json" \
  23. -d "{\"id\": \"${GATEWAY_IDS[1]}\", \"name\": \"GU-100-Updated\", \"mac\": \"AA:BB:CC:DD:EE:FF\", \"status\": \"online\", \"model\": \"MG3\", \"ip\": \"127.0.0.1\", \"position\": \"unknown\", \"x\": 1, \"y\": 1, \"notes\": \"some description\", \"floor\": \"second\", \"building\": \"hospital\"}"
  24. sleep 1
  25. echo -e "\n\n3. Listing Gateways after update"
  26. curl -s -X GET "$BASE_URL/reslevis/getGateways" | jq -c '.[]'
  27. sleep 1
  28. echo -e "\n\n4. Deleting Gateway ${GATEWAY_IDS[1]}"
  29. curl -s -X DELETE "$BASE_URL/reslevis/removeGateway/${GATEWAY_IDS[1]}"
  30. sleep 1
  31. echo -e "\n\n5. Verifying Delete (List again)..."
  32. curl -s -X GET "$BASE_URL/reslevis/getGateways" | jq -c '.[]'
  33. else
  34. echo "Not enough gateways to test update/delete"
  35. fi
  36. echo -e "\n\n=========================================="
  37. echo "ZONE API TESTS"
  38. echo "=========================================="
  39. echo "6. Listing all Zones"
  40. LIST=$(curl -s -X GET "$BASE_URL/reslevis/getZones" | jq -c '.[]')
  41. ZONE_IDS=()
  42. for r in $LIST; do
  43. echo "$r"
  44. ZONE_IDS+=($(echo "$r" | jq -r '.id'))
  45. done
  46. sleep 1
  47. if [ ${#ZONE_IDS[@]} -gt 0 ]; then
  48. echo -e "\n\n7. Updating Zone ${ZONE_IDS[0]}"
  49. curl -s -X PUT "$BASE_URL/reslevis/updateZone" -H "Content-Type: application/json" \
  50. -d "{\"id\": \"${ZONE_IDS[0]}\", \"name\": \"Zone-Updated\", \"groups\": [\"security\", \"logistics\"]}"
  51. sleep 1
  52. echo -e "\n\n8. Listing Zones after update"
  53. curl -s -X GET "$BASE_URL/reslevis/getZones" | jq -c '.[]'
  54. sleep 1
  55. echo -e "\n\n9. Deleting Zone ${ZONE_IDS[0]}"
  56. curl -s -X DELETE "$BASE_URL/reslevis/removeZone/${ZONE_IDS[0]}"
  57. sleep 1
  58. echo -e "\n\n10. Verifying Delete..."
  59. curl -s -X GET "$BASE_URL/reslevis/getZones" | jq -c '.[]'
  60. else
  61. echo "No zones to test update/delete"
  62. fi
  63. echo -e "\n\n=========================================="
  64. echo "TRACKERZONE API TESTS"
  65. echo "=========================================="
  66. echo "11. Listing all TrackerZones"
  67. LIST=$(curl -s -X GET "$BASE_URL/reslevis/getTrackerZones" | jq -c '.[]')
  68. TRACKERZONE_IDS=()
  69. for r in $LIST; do
  70. echo "$r"
  71. TRACKERZONE_IDS+=($(echo "$r" | jq -r '.id'))
  72. done
  73. sleep 1
  74. if [ ${#TRACKERZONE_IDS[@]} -gt 0 ]; then
  75. echo -e "\n\n12. Updating TrackerZone ${TRACKERZONE_IDS[0]}"
  76. curl -s -X PUT "$BASE_URL/reslevis/updateTrackerZone" -H "Content-Type: application/json" \
  77. -d "{\"id\": \"${TRACKERZONE_IDS[0]}\", \"name\": \"TrackerZone-Updated\"}"
  78. sleep 1
  79. echo -e "\n\n13. Listing TrackerZones after update"
  80. curl -s -X GET "$BASE_URL/reslevis/getTrackerZones" | jq -c '.[]'
  81. sleep 1
  82. echo -e "\n\n14. Deleting TrackerZone ${TRACKERZONE_IDS[0]}"
  83. curl -s -X DELETE "$BASE_URL/reslevis/removeTrackerZone/${TRACKERZONE_IDS[0]}"
  84. sleep 1
  85. echo -e "\n\n15. Verifying Delete..."
  86. curl -s -X GET "$BASE_URL/reslevis/getTrackerZones" | jq -c '.[]'
  87. else
  88. echo "No trackerzones to test update/delete"
  89. fi
  90. echo -e "\n\n=========================================="
  91. echo "TRACKER API TESTS"
  92. echo "=========================================="
  93. echo "16. Listing all Trackers"
  94. LIST=$(curl -s -X GET "$BASE_URL/reslevis/getTrackers" | jq -c '.[]')
  95. TRACKER_IDS=()
  96. for r in $LIST; do
  97. echo "$r"
  98. TRACKER_IDS+=($(echo "$r" | jq -r '.id'))
  99. done
  100. sleep 1
  101. if [ ${#TRACKER_IDS[@]} -gt 0 ]; then
  102. echo -e "\n\n17. Updating Tracker ${TRACKER_IDS[0]}"
  103. curl -s -X PUT "$BASE_URL/reslevis/updateTracker" -H "Content-Type: application/json" \
  104. -d "{\"id\": \"${TRACKER_IDS[0]}\", \"name\": \"Tracker-Updated\", \"battery\": 85, \"status\": \"inactive\"}"
  105. sleep 1
  106. echo -e "\n\n18. Listing Trackers after update"
  107. curl -s -X GET "$BASE_URL/reslevis/getTrackers" | jq -c '.[]'
  108. sleep 1
  109. echo -e "\n\n19. Deleting Tracker ${TRACKER_IDS[0]}"
  110. curl -s -X DELETE "$BASE_URL/reslevis/removeTracker/${TRACKER_IDS[0]}"
  111. sleep 1
  112. echo -e "\n\n20. Verifying Delete..."
  113. curl -s -X GET "$BASE_URL/reslevis/getTrackers" | jq -c '.[]'
  114. else
  115. echo "No trackers to test update/delete"
  116. fi
  117. echo -e "\n\n=========================================="
  118. echo "ALL TESTS COMPLETED"
  119. echo "=========================================="