public
Description: Easily add performance sanity checks using Test::Unit and a web server.
Homepage:
Clone URL: git://github.com/thoughtbot/assert_performs.git
name age message
file .gitignore Thu Oct 30 14:31:36 -0700 2008 Added a gitignore file [Joe Ferris]
file README.markdown Mon Aug 03 12:50:47 -0700 2009 converting README to markdown to get code forma... [dancroak]
file Rakefile Thu Oct 30 14:17:19 -0700 2008 Committing [Joe Ferris]
file assert_performs.gemspec Thu Oct 30 14:17:19 -0700 2008 Committing [Joe Ferris]
directory lib/ Thu Oct 30 14:17:19 -0700 2008 Committing [Joe Ferris]
directory rails/ Thu Oct 30 14:17:19 -0700 2008 Committing [Joe Ferris]
directory test/ Thu Oct 30 14:17:19 -0700 2008 Committing [Joe Ferris]
README.markdown

Assert Performs

This is a single Test::Unit assertion written to test performance of a Rails action. Meant to be run on staging before production deploys.

Usage

class PerformanceTest < Test::Unit::TestCase
  self.performance_server = "staging.example.com"
  context "a GET to users/1" do
    should "be performant" do
      assert_performs :get, user_path, :rate        => 3,
                                       :timeout     => 5
                                       :id          => 1  # extra params
    end
  end
end

assert_performs takes the following arguments:

  • an HTTP verb
  • a path
  • a threshold request rate (req/s)
  • a timeout (in seconds)

    assert_performs :get, '/', :rate => 3, :timeout => 5

Requirements

  • httperf
  • web server