3

現在、specflow、selenium、流暢な自動化、xunit の組み合わせを使用して、クロムの Web サイトのデプロイされたインスタンスでブラウザー アプリケーションをテストしています。これは開発者のマシンではうまく機能しますが、ビルド サーバー エージェントが遅いという明確な理由以外に、ビルド サーバー エージェントでは頻繁に失敗します。

私は phantom.js のドキュメントを隅々まで読んでいましたが、phantom.jsを使用してアプリケーションを完全にテストできるかどうかを理解するのに苦労しています。

私のアプリケーションには多くの JavaScript ロジックがあり、requirejs を使用してすべてのモジュールをロードしています。ファントムのヘッドレス ブラウザ機能を使用してすべての機能をテストできるかどうか疑問に思っています。すべての JavaScript ファイルをダウンロードしてから、フォームを含むモーダルを起動するなど、dom でアクションを実行できるようにしますか? UI の多くは、ノックアウト テンプレートを使用して構築されています。

いくつか検索しましたが、決定的なものはありませんでした。これについて誰かアドバイスはありますか?現時点では、クロス ブラウザ テストについてはあまり気にしていません。そのための手動 QA があります。これは、すべてのユーザー ストーリーの UI 自動化によって失敗する機能のハッピー パス早期警告システムのためのものです。


このすべての終わりに、私は本当に役立ついくつかの変更を加えました

  • セレンドライバーにアクセスして確認するjQuery.active
  • cssセレクターがセレクターに対して複数のアイテムを返す場合にスローする新しいexpectOne / assertOneの作成
4

2 に答える 2

7

PhantomJs は、画面にレンダリングしない完全なブラウザー実装です (ただし、スクリーンショットでキャプチャできるバッファーがあります)。手動テストで優先ブラウザーがカバーされ、ハード エラーを知る必要がある場合は、試してみてください。

FluentAutomation.SeleniumWebDriver は、現在のバージョンですぐに使える PhantomJs をサポートします。「ブラウザ」として PhantomJs を選択するだけで動作します。FluentAutomation.PhantomJs プロバイダーは廃止され、なくなります。

FluentAutomation.SeleniumWebDriver.Bootstrap(FluentAutomation.SeleniumWebDriver.Browser.PhantomJs);
于 2013-11-27T17:14:57.990 に答える
3

はい。

テストにはCasperJSの方が役立つ場合があります。組み込みのテスター モジュールは非常に使いやすいです。Casper は、SlimerJS (Gecko/Firefox のテスト用) を使用して開くこともでき、追加のコードは必要ありません。

Phantom または Casper のいずれかで page.evaluate() を使用してクライアント側の JavaScript を実行できるため、問題はないはずです。

于 2013-11-28T08:32:41.457 に答える