HTTP Server Headers via Cucumber
One of my little side projects is moving an old, configured in little steps over a long period of time, website from apache 1.3 to a much more sensible apache 2.2 server. I’ve been thinking about how to get the most out of the testing I need to do for the move and so today I decided to do some yak shaving and write some simple regression tests, play with Cucumber Nagios, rspec matchers and write a little ruby.
It’s not exactly polished but after half an hour (mostly spent wrangling with has_key / have_key) I ended up with the following simplified example for testing HTTP headers:
Feature: http://www.unixdaemon.net/ response headers Scenario: Server header should be production quality When I fetch http://www.unixdaemon.net/ Then the "Server" header should be "Apache" Scenario: Response header should contain an Etag When I fetch http://www.unixdaemon.net/ Then the response should contain the "Etag" header Scenario: The Content-Type header should contain text/html When I fetch http://www.unixdaemon.net/ Then the "Content-Type" header should contain "text/html" Scenario: The Content-Type header should not contain text/xml When I fetch http://www.unixdaemon.net/ Then the "Content-Type" header should not contain "text/xml"
You can also find the cucumber-nagios steps for testing HTTP headers online. It’s only a first step towards the full web server move safety net but it’s useful one that’ll stay in my toolkit.