2. What is Faban anyway?
● Framework and toolkit to aid test/benchmark
development and automate test run execution
● Developed by Sun - Open Source
● http://faban.sunsource.net
● Harness – benchmark process automation,
collect statistics, display results
● Driver Framework – benchmark development
framework and component model
● Analysis Tool – graph, tabulate and compare
results
6. Faban Architecture
Control
Master
Agent
Agent
Agent
Web Server Driver Driver Driver
Run Queue
Load
Log Server Agent
Agent
SUT SUT
System System
Benchmark
Control
7. Stuff You Give to Faban
● Systems
● System(s) Under Test (host:port)
● DB Server(s)
● File Server(s)
● Reverse Proxies (host:port)
● Memcache instance(s) (host:port)
● Benchmark Driver
● Configuration
8. Stuff Faban Gives You
● A harness that:
● runs your driver code
● manages all of your systems
– Including running stat tools
● gathers data (run analysis and system stats/config)
● manages your runs
● A driver API and all of the plumbing
● Configuration screens (web based)
● Auto-generated from configuration file
11. Pluggable Services/Tools
Infrastructure
My Service
My Service
Tools
ToolSets
ApacheHttpd
ApacheHttpd
WebLogic
SPECjEnt
WebLogic
SPECjEnt
Olio
Service
Olio
Faban
Faban
12. Service/Tool Control
Start
Configure
Start
Steady State ● Life-cycle control
for services/tools
Benchmark Run
● Collects/post-
Service
processes logs
Tool
and stats
● Archives
service/tool data
Stop with run
Ramp Down
Post-Process/Get ● Implementation
Post-Process
knows to invoke
Stop/Get external service or
external tool
13. Faban Driver
● Java Class (or classes) that defines a workload
● Used by Faban to Drive load
● Uses annotations to define Operations
● Operations are complete interactions, i.e.:
● GET html page
● Load static resources and images called out in page
● Optionally redirect based on HTTP return code
● Validate success of operation
● Operation Mix defines how and when
operations are executed