Measurement Resources¶
Use this page when your test needs to measure physical behavior such as current, voltage, temperature, pressure, timing, or values exposed by a lab controller.
BenchCI Measurement v1 adds a simple model:
bench.yaml -> defines where a measurement comes from
suite.yaml -> measures it, records it as a metric, and optionally asserts thresholds
This moves a run from “the UART log looked correct” toward “the hardware behavior was measured and recorded as evidence.”
Supported Measurement v1 backends¶
Current Measurement v1 resource drivers include:
mock_measurementfor examples, demos, and testshttp_measurementfor lab controllers, HTTP-enabled instruments, or custom measurement gateways
Future backends can add direct SCPI power supplies, USB multimeters, oscilloscopes, logic analyzers, or company-specific lab tools without changing suite syntax.
Mock measurement¶
resources:
sleep_current:
kind: measurement
driver:
type: mock_measurement
quantity: current
value: 0.042
unit: A
HTTP measurement¶
Use http_measurement when a lab controller exposes a measured value over HTTP.
resources:
supply_current:
kind: measurement
driver:
type: http_measurement
quantity: current
url: "http://192.168.1.60/measurements/supply_current"
value_field: value
unit_field: unit
unit: A
timeout_ms: 2000
A typical response could be:
{
"value": 0.042,
"unit": "A"
}
Measure step¶
Use measure to read a measurement resource, store the value, and optionally check a threshold.
- measure:
resource: supply_current
record_as: sleep_current_a
unit: A
expect_less_than: 0.150
The recorded metric can appear in results.json, evidence.json, evidence.html, CLI output, and dashboard run detail where supported.
Assert metric step¶
Use assert_metric when you want to check a metric captured earlier in the same run.
- assert_metric:
name: sleep_current_a
expect_less_than_or_equal: 0.100
Supported assertion styles include:
expect_less_than: 0.150
expect_less_than_or_equal: 0.150
expect_greater_than: 3.0
expect_greater_than_or_equal: 3.0
expect_equal: 3.3
tolerance: 0.05
Use tolerance with expect_equal when exact equality is unrealistic.
Example: boot then verify sleep current¶
version: "1"
suite:
name: low_power_smoke
tests:
- name: boot_and_sleep_current
steps:
- power_cycle:
resource: dut_power
outlet: main
off_ms: 1000
on_settle_ms: 2000
- expect_uart:
node: dut
transport: console
contains: "READY"
within_ms: 5000
- send_uart:
node: dut
transport: console
data: "SLEEP\n"
- measure:
resource: sleep_current
record_as: sleep_current_a
unit: A
expect_less_than: 0.150
- assert_metric:
name: sleep_current_a
expect_less_than_or_equal: 0.150
Evidence value¶
Measurements are especially useful for QA and release review because the evidence can show not only pass/fail but also the measured value.
Example:
sleep_current_a = 0.042 A
limit = 0.150 A
result = passed
That is more useful than a generic “low power test passed” message.