module AbCrunch::PageTester
Public Class Methods
test(page)
click to toggle source
# File lib/abcrunch/page_tester.rb, line 3 def self.test(page) AbCrunch::Logger.log :test, "Testing #{page[:name]}" AbCrunch::Logger.log :info, "#{AbCrunch::Page.get_display_url(page)}" if page[:max_avg_response_time] page.merge!({:max_latency => page[:max_avg_response_time]}) end qps_result = AbCrunch::StrategyBestConcurrency.run(page) passed = true errors = [] if page[:max_avg_response_time] if qps_result.avg_response_time > page[:max_avg_response_time] passed = false errors << "#{page[:name]}: Avg response time of #{qps_result.avg_response_time} must be <= #{page[:max_avg_response_time]}" end end if page[:min_queries_per_second] if qps_result.queries_per_second < page[:min_queries_per_second] passed = false errors << "#{page[:name]}: QPS of #{qps_result.queries_per_second} must be >= #{page[:min_queries_per_second]}" end end if qps_result.failed_requests > 0 passed = false errors << "#{page[:name]}: Load test invalidated: #{qps_result.failed_requests} requests failed" end if passed AbCrunch::Logger.log :success, "PASSED" else errors.each { |error| AbCrunch::Logger.log :failure, error } AbCrunch::Logger.log :failure, "#{page[:name]} FAILED" end [passed, qps_result, errors] end