2009-08-05 6 views
2

私のプロジェクトのテスターは、自動化されたテストを容易にするために、各ページ要素に固有のHTML IDが必要です。すべての要素にHTML IDがあることを自動的に検証できますか?

開発用IDが不要なので、これを覚えておくのは難しいです。私が忘れないようにするにはどうすればいいですか?

私は、CheckstyleがIntelliJの "検査"と言ってもいいかもしれないと思ったが、どちらもその機能をサポートしていないようだ。

アイデア?

+3

テスターを起動します。彼らは明らかに仕事をする能力がありません。 – NickFitz

+2

ページ要素に一意のHTML IDを持つことで、テスト可能性を高めることができます。彼らが存在することを要求することは、無能を意味するものではありません。彼らの自動化されたテストフレームワークのコンテキストと、ページ要素がフレームワークに似ているものを知らなくても... –

+0

これは、自動テストフレームワークのためのものです。 –

答えて

7

2つのアイデアが浮かび上がっています。1.何がないのかを教えさせる。それでも問題が解決しない場合は、新しいテスターを入手してください。 ;)

どのような種類のテストエンジンが各要素にIdを必要としますか?

+0

これは自動テストフレームワークのためのものです。私が理解しているように、ほとんどの自動化されたテストフレームワークは一貫した結果を得るためにユニークなIDに依存しています。 –

+0

私はいくつかのWebテストフレームワークを使用しましたが、入力フィールドにIDが必要なのは唯一の時間でした。とにかくそれを持っているはずです。 – NotMe

+1

EVERY要素ではidは必須ではなく、入力として使用される要素だけが必要です。ほとんどの入力フィールドにはすでにIDまたは名前があります。モデルにバインドするには開発者として必要です。したがって、レビューの後、ボタンやリンクのようなIDを持たないものはほんのわずかであり、検証ツールなしでは比較的簡単です。 –

4

JavaScriptで何かをしたい場合は、jQueryを使用できます。 $("*:not([id])").css('backgroundColor', 'yellow');

IDが黄色でないものは、Firebugでソースを調べ、黄色のものを探してください。

$.each($(*:not([id])), function(){ 
    $(this) 
     .css("backgroundColor", "yellow") 
     .addClass("no-id"); 
}); 
+0

これは、要素にIDがあるかどうかだけチェックします。 IDは一意ではありません。ただし、これをW3C検証と組み合わせて使用​​することもできます。 –

+0

これは、すべてのIDが検証のために一意であると仮定します。これは、テスターに​​とってさらに簡単にするために実行する必要があります。 –

1

すべての要素にIDを追加することはまったく意味がありません。しかし、彼らが主張している場合は、テストサイトにIDを追加する小さなjavascriptコードを追加して、運用サイトで省略することができます。

ビルChacha102のアイデアに

$(document).ready(function() { 
    var index = 1; 
    $.each($(*:not([id])), function(){ 
     $(this).attr("id", "id1000" + index++); //or some other unique generator 
    }); 
} 

ただ、これはテストツールの前に実行されることを確認してください!

+0

自動テストフレームワークが機能するためには、異なるビルド間でIDが一貫している必要があるため、生成IDはおそらく動作しません。 –

+0

正確です。それぞれのビルドに一貫してIDの概念を持たない人は、本当にテスト可能なコードの作り方を知らない。 –

2

1ページごとに1つの要素ごとにIDを設定することは、私にとっては悪い考えです。

  1. IDは一意である必要があります。
  2. これはあなたのページにたくさんの膨らみを追加します
  3. これらが生成されたら...私は彼らがこのテストツールのたびに同じである必要がありますか?
  4. このテストツールの名前は何ですか?
+0

私はツールがAxだと思う:http://www.odin.co.uk/product_axe.htmlすべての要素が、ボタン、ドロップダウン、リンクなどの機能的に使われているものだけではないどんなページ要素がidsを必要とし、それに応じて妥当性を検証するかを定義できるツールかもしれません。 –

2

理由を管理する物流悪夢のように思える、IDがすべてのページかもしれないがわずかに異なるデータにあなたがそれにアクセスするたびに含まれていることを仮定すると、すべての要素

  • に「必要」していることを奇妙に思えますツールがこれをサポートしていないのは、それがちょっと奇妙な要求だからです。そこに行ったことがある。

    上記のjQueryソリューションでは、求められたものが得られますが、チーム(またはチームとして)が必要とするものではない可能性があります。私は間違いなくテスターに​​戻ります(それらを起動させないでください!)、もう少し要件を理解しようとします。それは本当にすべて要素ですか?いくつかのページを一緒に見て、欠けているものを見てください。彼らはちょうどイライラしているかもしれません。

    また、テストツールではDOM要素をIDでしかアドレス指定できないとは考えにくいです。同じようにうまくいく他のオプションがあるのか​​、それをサポートするためにボランティアできるものがあるかどうかを確認してください。(確かにIDをどこにでも追加するよりも簡単になるでしょう)

    最後に、IDが唯一の方法なら、要素数よりも永久になる何かに基づいてIDを割り当てることを検討してください - innerHTMLの何らかのハッシュ、要素の親+インデックス、またはそのようなものです。

    IDを生成する必要がある場合は、もう1つ考慮すべきことは、サーバー側で行うことです。現在の言語に応じて、ブラウザのパフォーマンスが低下することはありません。

    幸運を祈る!一日の仕事として、テスト自動化に取り組んでいます誰かとして

  • +0

    経験上、問題は、関心のある要素を含むネストされたdivタグを変更し続けているチームにあります。その結果、他のすべてのテストサイクルテスターは、構造の変更を考慮してスクリプトを書き直さなければなりません。関心のあるものがユニークなIDを持つ場合、あなたのセレン(または何でも)のテストは単にそれらのIDを参照します。 –

    4

    : と相互作用している要素に固有のIDを追加する要求は、テストの自動化スイートに安定性の多くを追加する予定です。

    DOM内のすべての要素にIDを追加するのはもちろん、ばかげたオーバーヘッドになります。

    ほとんどのフレームワークでは、CSSやXPath、さらにはイメージマッチング機能を使用できます。これは、開発者とテスターの間にコミュニケーションの行が存在しない場合の大きな欠点です。しかし、これらのチーム間でコミュニケーションがある場合は、これらのチームを追加することが理にかなっています。

    開発チームとして、これらのテストから多くの価値を引き出す必要があります。彼らは、テスト環境への変更の展開に続いてほぼ即時のフィードバックをあなたに与えるべきです。テストがフレークであれば、その価値は落ちるでしょう。テストをできるだけ信頼できるものにすることは誰にとっても大変重要です。良いIDはこの点で非常に貴重です。

    IDと同じように、自動生成IDにはリスクが伴います。これらは簡単にセキュリティの誤った感覚を与えることがあり、おそらく全くないよりも悪いです。ポイントは、IDが安定しており、信頼できることです。新しいエレメントが上記のDOMに追加されると、増分的に生成されるIDが変更されます。

    テスターとして - 半分時間を費やして、要素を一意に識別するためのxpathを書くことは、悪い使用ですIDを追加すると開発者は5分かかります..... :)

    関連する問題