Este projeto integra meu portfólio de Quality Assurance (QA) e demonstra o uso do Postman para testes de API na OpenWeather v3.0 (endpoint One Call).
A suíte valida clima atual, previsão horária, previsão diária e alertas meteorológicos, além de casos negativos (coordenadas inválidas).
- Validação de status code, formato JSON e SLA simples
- Checagens de estrutura e tipos nos blocos
current
,hourly
,daily
ealerts
- Verificação de coerência entre
lat/lon
do ambiente e do payload (tolerância) - Casos negativos: 400 (coordenadas inválidas) e reconhecimento de 429 (rate limit)
- Organização em pastas temáticas: Clima Atual, Previsão Horária, Previsão Diária, Alertas Meteorológicos e Negativos
- Baixe os arquivos em
postman/
deste repositório:- Environment:
OpenWeather v3.0 (Publico).postman_environment.json
- Collection:
QA Portfolio – OpenWeather v3.0.postman_collection.json
- Environment:
- Importe a Collection e o Environment no Postman.
- No Environment, configure:
apiKey
→ sua API key da OpenWeatherbase_url
→https://api.openweathermap.org
lat
,lon
→ por padrão-23.55
,-46.63
(São Paulo) — pode ajustarunits
→metric
(opções:metric
,imperial
,standard
)lang
→pt_br
- (opcional para negativo)
invalidLat=999
,invalidLon=999
- Execute as requisições nas pastas:
- Clima Atual (One Call – visão consolidada)
- Previsão Horária (
hourly[]
) - Previsão Diária (
daily[]
) - Alertas Meteorológicos (
alerts[]
– pode não existir para a região) - Negativos (coordenadas inválidas)
flowchart LR
A["GET /data/3.0/onecall?lat={lat}&lon={lon} - Clima Atual"]:::get --> B["GET /data/3.0/onecall - Previsão Horária (hourly[])"]:::get
B --> C["GET /data/3.0/onecall - Previsão Diária (daily[])"]:::get
C --> D["GET /data/3.0/onecall - Alertas Meteorológicos (alerts[])"]:::get
A -.-> E["GET /data/3.0/onecall?lat=999&lon=999 - Negativo 400"]:::neg
A -.-> F["Reconhecer 429 (rate limit) quando ocorrer"]:::neg
classDef get fill:#3b82f6,stroke:#1e3a8a,stroke-width:2px,color:white;
classDef neg fill:#ef4444,stroke:#7f1d1d,stroke-width:2px,color:white;
- Clima Atual:
lat/lon
~ ambiente (tolerância);current.temp
é numérico;current.weather[0].description
existe. - Previsão Horária:
hourly[0]
contém chavesdt
,temp
,feels_like
,pressure
,humidity
,wind_speed
,pop
eweather[0].description
. - Previsão Diária:
daily[0]
possuidt
,temp.min
,temp.max
,humidity
,pressure
,clouds
eweather[0].description
. - Alertas: quando
alerts
existe, validaevent
,description
,start
,end
. Se não existir, apenas loga.
- A variável da chave de API no Environment é
apiKey
. - Os testes tratam
alerts
como opcional (pode não haver fenômenos ativos). - Para
lat/lon
, utiliza-se tolerância numérica para evitar falsos negativos. - Estrutura pensada para evoluir com Geocoding e Air Pollution (futuro).