Beaker Project
automated Testing at red hat
Tomas Klohna
Product Owner
What is beaker solving?
What is beaker solving?
Unified testing platform for quality engineers
Support for alternative architectures
hardware filtering
Full-stack testing (metadata > user level)
Result & log collection
complex multi-system test scenarios
Common testing harness - restraint
Inventory management
Inventory management
machine details




Inventory management
Machine history


Inventory management
Access control

Inventory management
hardware pool filtering






Scheduling
Scheduling
JobS & RECIPES

Job
Recipe set
Recipe set
Recipe
Recipe
Recipe
Recipe
TASKS
TASKS
TASKS
TASKS
Scheduling
Job Content
-
XML
<job>
<whiteboard>Example Job</whiteboard>
<recipeSet priority="Normal">
<recipe>
<distroRequires/>
<hostRequires/>
<task name="Task example"/>
</recipe>
</recipeSet>
</job>
-
General info
-
Linux distribution
-
Host Filter
-
Tasks
<whiteboard>Example Job</whiteboard>
<partitions>
<partition type="part" name="var/tmp" fs="xfs" size="25" />
</partitions>
<recipeSet priority="Normal"></recipeSet>
<packages>
<package name="emacs"/>
<package name="vim-enhanced"/>
</packages>
<distroRequires>
<distro_arch op="=" value="ppc64"/>
<distro_variant op="=" value="Server"/>
<distro_name op="=" value="RHEL-8"/>
<distro_method op="=" value="nfs"/>
</distroRequires>
<hostRequires>
<and>
<system_type op="=" value="Machine"/>
<device op="=" type="network" description="Extreme Gigabit Ethernet" />
</and>
</hostRequires>
<task name="/distribution/check-install" role="STANDALONE"/>
<task name="Boot test" role="STANDALONE">
<fetch url="https://remotegit.repo"/>
</task>
<task name="Kernel Header Sanity Test" role="STANDALONE">
<fetch url="https://remotegit.repo"/>
<params>
<param name="KILLTIMEOVERRIDE" value="600"/>
</params>
</task>
Provisioning
Provisioning
Process
Beaker Server
Lab Controller
Machine A
Machine Pool
1. GEnerate PXE ConFIG
2. Power ON
3. Fetch PXE Config
4. initial Boot
5. installation complete
6. reboot
TESTING
TESTING
testing harness - restraint
tasks
task environment
Result reporting
multi-host support
virtual guests
watchdogs
RESULT & LOG COLLECTION
RESULT & LOG COLLECTION




1
3
4

2
How can you contribute
How can you contribute
Project Locations
Contact
Beaker
github.com/beaker-project
beaker-project.org
& restraint
Public
Private
beaker-devel@lists.fedorahosted.org
developers@beaker-project.org
discussions?
tklohna@redhat.com
questions?
THANK YOU!
Beaker Project: Automated Testing at Red Hat
By Tomas Klohna