Files
onvif-go/TEST_QUICKSTART.md
T
ProtoTess 3bf078ed3f Add camera test framework and initial tests for Bosch FLEXIDOME indoor 5100i IR
- Introduced a new directory `testdata/captures/` containing captured XML archives and README documentation for the camera test framework.
- Added a mock server implementation to replay captured SOAP responses for testing.
- Created automated tests for Bosch FLEXIDOME indoor 5100i IR using captured responses, validating device information, system date and time, capabilities, and profiles.
- Implemented enhanced device features tests, covering hostname, DNS, NTP, network interfaces, scopes, and user management.
- Added support for enhanced media and imaging features, including video and audio sources, and imaging options.
- Updated types to include new configurations and options for network, imaging, and device capabilities.
2025-11-11 02:10:04 +00:00

3.2 KiB

Quick Test Reference

Running Camera Tests

# Set credentials
export ONVIF_TEST_ENDPOINT="http://192.168.1.201/onvif/device_service"
export ONVIF_TEST_USERNAME="service"
export ONVIF_TEST_PASSWORD="Service.1234"

# Run all Bosch FLEXIDOME tests
./run-camera-tests.sh

# Run specific test
./run-camera-tests.sh TestBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation

Option 2: Direct go test commands

# Run all camera tests
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR

# Run specific test
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR_GetStreamURI

# Run with race detection
go test -v -race -run TestBoschFLEXIDOMEIndoor5100iIR

# Run benchmarks
go test -v -bench=BenchmarkBoschFLEXIDOMEIndoor5100iIR -benchmem

Option 3: One-liner with credentials

ONVIF_TEST_ENDPOINT="http://192.168.1.201/onvif/device_service" \
ONVIF_TEST_USERNAME="service" \
ONVIF_TEST_PASSWORD="Service.1234" \
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR

Test List

Device Tests

  • TestBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation - Device info retrieval
  • TestBoschFLEXIDOMEIndoor5100iIR_GetSystemDateAndTime - System time
  • TestBoschFLEXIDOMEIndoor5100iIR_GetCapabilities - Capability discovery

Media Tests

  • TestBoschFLEXIDOMEIndoor5100iIR_GetProfiles - Media profiles (4 expected)
  • TestBoschFLEXIDOMEIndoor5100iIR_GetStreamURI - RTSP stream URIs
  • TestBoschFLEXIDOMEIndoor5100iIR_GetSnapshotURI - Snapshot URLs
  • TestBoschFLEXIDOMEIndoor5100iIR_GetVideoEncoderConfiguration - Encoder settings

Imaging Tests

  • TestBoschFLEXIDOMEIndoor5100iIR_GetImagingSettings - Camera imaging parameters

Integration Tests

  • TestBoschFLEXIDOMEIndoor5100iIR_Initialize - Service discovery
  • TestBoschFLEXIDOMEIndoor5100iIR_FullWorkflow - Complete operation sequence

Performance Tests

  • BenchmarkBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation - Device info benchmark
  • BenchmarkBoschFLEXIDOMEIndoor5100iIR_GetStreamURI - Stream URI benchmark

Expected Test Results

All tests should PASS with the following outputs:

✓ Manufacturer: Bosch
✓ Model: FLEXIDOME indoor 5100i IR
✓ 4 Profiles found (1920x1080, 1536x864, 1280x720, 512x288)
✓ All profiles have RTSP stream URIs
✓ Snapshot URI available
✓ Video encoding: H264 @ 30fps, 5200kbps
✓ Default imaging: Brightness 128.0, Saturation 128.0, Contrast 128.0

Troubleshooting

Tests are skipped

Solution: Set environment variables with camera credentials

Connection timeout

Solutions:

  • Verify camera IP address
  • Check network connectivity
  • Ensure firewall allows connection

Authentication failed

Solutions:

  • Verify username and password
  • Check user permissions on camera

Unexpected values

Note: Camera settings may differ based on:

  • Firmware version
  • Manual configuration changes
  • Update test expectations if needed

Coverage Report

Generate test coverage:

go test -coverprofile=coverage.out -run TestBoschFLEXIDOMEIndoor5100iIR
go tool cover -html=coverage.out

Adding New Camera Tests

  1. Copy bosch_flexidome_test.go to <vendor>_<model>_test.go
  2. Update test function names
  3. Update expected values
  4. Run tests to verify
  5. Document in CAMERA_TESTS.md