2012-09-16 10 views
10

私はdjangoでのテストについて読んでいます。推奨されたことの1つは、機能テストのためにdjango-webtestを使用することでした。私は、Pythonを使用してセレンで機能テストを行う方法を教える上品な記事hereを見つけました。しかし、人々はまた、イアンビッキングのWebTestの拡張子djagno-webtestを使ってdjangoのフォームをテストすることを推奨しています。 Webテストによるテストとセレゴのテストはどのようにdjangoフォームのコンテキストで異なるのですか?ビューの機能テスト・ポイントからそうdjango-webtestとseleniumの違い

がどのようにジャンゴ・WebTestを、セレンが並んで行くのですか?

私たちは両方を持っている必要がありますか?

答えて

9

セレンについて知っておくべき重要なことは、主にサーバーに依存しないテストフレームワークであることです。期待どおりに動作する限り、フロントエンドを作成するために使用されるフレームワークやサーバー側の実装は重要ではありません。また、となりますが、おそらくとなるはずですが、Seleniumで手動でテストを書きますが、多くのテストでは、動きのある人のマクロが記録され、自動的にコードに変換されます。

一方、django-webtestはDjangoのWebサイトで動作するように作られています。これは、WebTestのDjango固有の拡張機能です。これはDjangoのみではなく、WSGIのみ(したがってPythonのみ)です。そのため、アプリケーションは、サーバー上でどのように動作するかをより高いレベルで意識してアプリケーションと対話できます。これにより、ランニングテストが高速化され、詳細で詳細なテストを簡単に作成することもできます。また、Seleniumと異なり、テストは自動的に記録されたマクロとして書き込まれることはありません。

それ以外の場合、2つのツールは同じ目的を持ち、同じ種類のものをテストすることを意図しています。つまり、両方を使うのではなく、1つを選ぶことをお勧めします。

21

セレンは実際のブラウザを実行し、WebTestはWSGIにフックします。 これは、次のような違いになり:

  • それを実行するためには何もありませんので、あなたは、WebTestのでJSのコードをテストすることはできません。それはWSGIにフックするので
  • WebTestのは、それが
  • WebTestのはチェックしません
  • parallizeする少し簡単ですので、これはまた
  • WebTestのは、実際のポートでサーバを実行する必要はありません小さなメモリフットプリントを意味し、はるかに高速です特定のブラウザのバージョンのバグ(咳...インターネットエクスプローラ...咳...)

ボトムラインのような実際のブラウザで発生するさまざまな問題、: あなたは、物事のためのセレンを使用しなければならない場合を除き、WebTestのを使用することを好むことWebTestでテストすることはできません。

関連する問題