0

rspec と capybara を使用して、Ruby で一連の自動回帰テストを構築しています。テストのアイデアを得るために、Web サイトにログインし、すべてのフィールドを含む新しいデータ項目を追加して保存し、新しい行を検証し、行を更新し、フィールドを変更し、それを更新/検証することを想像してください。

例えば:

describe "auto regression test #1", :type => :feature, js: true do
  it  "should add and update my data" do
    # login
    # go to page
    # press new button
    # fill in fields
    # etc.
  end
end

これは単純化されたバージョンであり、「それ」内で多くのことが行われている可能性があります。最初は、単一のテストを複数のケースに分けるべきだと考えていましたが、ログインしてページに戻る必要があります (これは、自動テストで無駄にする必要のない余分な時間だと思います-同意します?)。

それにもかかわらず、Browserstack Automate のログ タブに表示されるように、自分が行っていることをログに記録したいと思います。現在そこにあるのは、セレン操作またはスクリーンショットに関連しています。カスタムログを作成したいと思います。その理由は、私のテストが失敗したとき、現在、失敗したテストとともにスタック トレース - 行番号 (これは素晴らしいことです) を取得しているためです。私のテストには多くの機能が含まれているため (rspec に何度も何度もログインさせたくないため)、テストが失敗し、誰かが Browserstack を調べて失敗した場所を確認している場合、ロジックが失敗した場所を特定するのは困難です。カスタム ロギング。ブラウザスタックでテキストを表示できるように、カスタム ログを設定するにはどうすればよいですか? (または、これはすべて間違っているので、再ログインの問題があっても、テストを細かく分割する必要がありますか)?

4

3 に答える 3

1

私があなたにできるアドバイスは次のとおりです。

1:. 各テストは、単一のユース ケース シナリオである必要があります。失敗した場合、理由がわかります

2:. ユース ケース シナリオを実現するために多くの手順を実行する必要がある場合は、要素をページ ( https://code.google.com/p/selenium/wiki/PageObjects ) を表すクラスに抽象化し、さらに先に進む必要があります。複数のページ アクションを抽象化するフローを追加します。そのため、検証前のステップの 1 つで失敗した場合、失敗した要素/ページがわかり、何が問題なのかがわかります。

3:. BrowserStack のログとスクリーンショットを使用しても、テストで何が問題だったのかを理解するのにまだ問題がある場合、問題はログの不足ではなく、テストの記述方法にあります

于 2015-06-05T11:20:37.527 に答える
0

Selenium テストから次の JavaScript を実行して、BrowserStack の Automate ダッシュボードで生成されたログに独自のカスタム メッセージを作成してみることができます。

(たとえば、Ruby の場合)

driver.execute_script("\" <Write your custom log here> \";")

于 2015-07-02T09:29:13.477 に答える