Fio

Run fio on the DUT and assert against parsed metrics. The fio binary must be installed on the DUT. The FirmwareCI base image does not include it.

AttributeTypeRequiredDefaultDescription
cmdconstYesfioCommand Name
namestringYesName to uniquely identify the teststep. This name will show up in reports, logs and the WebUI
transportTransportObjectYesAdditional transport options
optionsOptionsObjectNoAdditional command options (default timeout 2m)
parametersFioOptionsYesOptions passed into the fio cmd

Fio Options

AttributeTypeRequiredDefaultDescription
args[]stringNorandread 4k 1G 30s jobRaw arguments passed to fio. If omitted, runs a default randread workload against /tmp/contest-fio-<nano>.dat. --output-format=json auto-added.
expectFioExpectNoPer-metric assertions. See Expect Comparator Syntax.

Fio Expect Options

Assertions run against the first job in fio’s JSON output.

AttributeTypeRequiredDescription
ReadBWstringNoRead bandwidth in KiB/s
ReadIOPSstringNoRead IOPS
ReadLatMeanstringNoMean read latency in nanoseconds
WriteBWstringNoWrite bandwidth in KiB/s
WriteIOPSstringNoWrite IOPS
WriteLatMeanstringNoMean write latency in nanoseconds

Fio Example

cmd: fio
name: Random read bandwidth
transport: *transport
parameters:
  args:
    - --name=randread
    - --filename=/tmp/fio.dat
    - --rw=randread
    - --bs=4k
    - --size=512M
    - --runtime=20
    - --time_based
  expect:
    ReadIOPS: ">5000"
    ReadLatMean: "<200000"