日本企業にありがちな認証Proxyで困ったよ、というお話。
パフォーマンスを上げるために、jsとかcssをサービス提供元のドメインではなく、CDNなど外部にホストされているものを利用することは珍しいことではないと思う。
認証Proxyを利用しているネットワークから、外部にホストされたリソースを読み込んでいるページヘアクセスすると、Proxy認証ダイアログが表示される。これは、Gebなどで書かれたテストコードを実行する際にも起きる。
せっかくテストコードを書いたにも関わらず、ちっとも自動テストにならない。
そこでFiddlerですよ。http://www.fiddler2.com/fiddler2/
ローカルプロキシツールで、httpの通信をキャプチャしたり、レスポンスそのものを特定のものに差し替えたり、っていうことができる代物。これを使って、リクエストにProxy-Authorizationヘッダーを追加すれば、テスト実行時にプロキシ認証を回避することができる。
http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp を見ると書いてあるけど、スクリプトでヘッダーの書き換えなどを実現できる。
メニューからRules->Customize Rulesを選ぶとエディタが起動するので、OnBeforeRequestというメソッドを探す。その中に、
oSession.oRequest["Proxy-Authorization"] = "認証Token";
と記述すると、Fiddler経由での通信時にHTTP認証済みの状態となるので、ページ内から外部にホストされたリソースを読み込もうとしても認証ダイアログが出ず、テストを自動実行することができる。