- PR -

Web自動テスト(IFRAMEのエラートラップ)

投稿者投稿内容
たむら
会議室デビュー日: 2006/07/31
投稿数: 6
投稿日時: 2006-08-02 16:42
おせわになります、たむらです。

>sawatさん
>全部Javascriptでやろうとするのではなくて
確かに、私自身、ここまでスクリプトだけでやるかぁ?
とツールの作成方針にちょっと不安を感じてます。

実は一番最初にWebテストツールの方針を考えていた時には
WindowsEXEに ブラウザコントロールを張り付けて
それを制御するように考えていました。
挫折した理由
・ブラウザコントロールからHTMLドキュメントを操作するのが
 非常に面倒だったり
・IEで動かした時と動作が違ったり(window.openで開いた
 子windowにクッキーが引継がれないなど)
・テストケースファイルを用意する方法が悩ましかったり。

#ただ、示して頂いたサンプルを参考に
通信部分をトラップして動かせるようになり
なんとか動く形のものが作れてきました。
ひとまず、この方針(DHTML Only)で進めてみます。


>WEBRickのようなプロキシを使った方がよいのではないかと思います。
確かにwindow.onerrorへのコード追加など思いっきり
プロキシー処理ですね。
##昔、遊びで作ったC#版プロキシサーバーを流用しようかしら

ありがとうございました。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-08-05 10:20
遅くなりました。

自分の、
>単純にデバッグ用のスクリプトと実稼動用のスクリプトを別に用意すれば出来ませんか?
とは、実はたむらさんの書かれている、
「共通JScriptライブラリを、テスト用と本番用で分けて使う。」
という事を提案しているつもりだったのですが・・・
今読んで見ると、全然そういう意図に見えませんね^^;

たむらさんの提示されている serenium project、sawatさんのコードと、提示されている WEBrick、どちらも参考になります。
(確かに、わざわざライブラリを差し換えなくても、テスト時にはテストコードを挿入するプロキシを通して・・・
とやってしまう手もあるんですね。どういうコードを挿入するのかが問題ですが^^;)
ありがとうございました。

memo:
直接は関係無いけど、JsUnitというのが見つかったので貼っておきます。
http://www.jsunit.net/
後、script.aculo.usの方でも、独自にunittest.jsというのを使っているみたいです。

(ちょっと暇が無いので、覚書程度で失礼します^^;)
たむら
会議室デビュー日: 2006/07/31
投稿数: 6
投稿日時: 2006-08-18 11:17
冬寂さん ありがとうございます。

JavaScript向けのテストツール探せば色々ありますね

結局、通信処理部分をトラップして作ったツールが
なんとか仕上がり、後は改善として使い心地、その他便利機能の追加など
ゴリゴリやってます。

ただ、今日試して気が付いたんですが、次のような記述でもOKみたいです。
テスト対象となっているフレーム内で、読み込みと同時に発生したエラーも
トラップ出来てます。
フレーム内のスクリプトの解析前にonreadystatechangeイベントが発生する
のでこちらの方が楽?

<script type="text/javascript">
function TestFnc(){
alert('エラーだよ');
return true;
}

var strScript = "window.onerror = top.TestFnc;";
</script>
<iframe onreadystatechange="this.contentWindow.execScript(strScript);">
</iframe>


[ メッセージ編集済み 編集者: たむら 編集日時 2006-08-18 11:23 ]

スキルアップ/キャリアアップ(JOB@IT)