0

Coded UI Test を使用して、システムの UI 自動テスト ケースを作成したいと考えています。そして、テスト ケースには次のような長いライフ サイクルがあります。

  1. 登録農場 [ RMH-22 ]
  2. この農園に2戸登録 [ H-1 , H-2 ]
  3. システムの検索ボタンをクリックして [RMH-22] を検索し、データベースに保存されていることを確認します。

このテスト ケースを再生すると、システムが記録中にこのファーム [RMH-22] をデータベースに保存したため、正しく動作しません。

システムがファームの一意のコードを保存することを考慮して。

テスト ケースを再生する前にデータベース レコードを手動で削除せずに、このようなテスト ケースを自動化するソリューションはありますか?

4

2 に答える 2

2

問題は、私が理解しているように、農場と家屋の固定名を使用してテストが記録されるため、それらの名前がデータベースに入力されることです。テストを再度実行すると、同じ名前が使用されますが、それらは既にデータベースに存在します。

1 つの方法は、テストの実行ごとに異なる名前を使用することです。テスト実行の日時を含む農場名と家屋名を作成することをお勧めします。FarmYYYYMMDDHHMMSS、 、H1YYYYMMDDHHMMSSなどの名前を作成しますH2YYYYMMDDHHMMSS。必要に応じて、日付と時刻を圧縮して短い名前にするのは簡単です。コードで名前を生成し、値をクラスのフィールドに書き込みます...Params。これは、データ駆動型のコード化された UI テストで行われるのと同じです。

別の方法として、シリアル番号 (または文字) を追加することを提案する人もいますが、それは、どの番号が既に使用されているかを追跡することを意味します。したがって、私はそのアプローチを避けます。

名前の圧縮に関する更新。

プロジェクトとテストの必要性が短命である場合、その年の一部またはすべてが省略される可能性があります。2020 年以降はテストが必要ないことを保証できる場合は、10 年の年 (現在は「3」) を保持してください。年間通算日を使用する代わりYYMMに、1 から 366 の範囲の 3 桁の数字を使用できます。日付を開始日からの日数としてエンコードできます。数値は正確に正確である必要はありません。計算が簡単で、重複しない適切な値が得られるだけです。たとえば、秒を使用する(year - 2013) * 366 + day_of_year代わりHHMMSSに、 0 から 60*60*24 の範囲、つまり 0 から 86400 を使用できます。名前に 10 進数を使用する代わりに、基数 36 を使用できます ( http://en.wikipediaを参照) .org/wiki/Base_36) エンコーディング。これらを総合すると、名前の日時部分に必要な文字数が半分以下になるはずです。

于 2013-09-20T18:54:48.013 に答える