2012-03-15 9 views
3

** POST UPDATED ** Microsoft Dynamicsの環境へのシステムとの統合テストのためにコード化されたUI WebTestの、入力された文字は、時には編集フィールド

を、私たちが使用しているのVisual Studio 2010のコード化されたUIでは省略されています。私はVisual Studioの経験の浅いユーザーですが、テスト自動化の経験があります。

VS-Coded-UI-testが編集ボックスにテキストを入力しているときはいつでも、入力する必要がある文字の1つが省略されているという変更があります。 Beverly Hills 90210のようなアドレスフィールドは簡単にBeverly ills 90210になり、テストが壊れてしまいます。これは、200文字(教育された推測)で約1回発生します。

これまで経験したことがありますか?そして、どこに問題があるのでしょうか:VSのタイプレート、壊れたキーボードドライバ、ブラウザの不具合などで、テキスト入力を正しく受信できなかったのですか?

VSコード化されたUIでテストドライバのタイピング率を下げる可能性はありますか?

更新日、2012-05-24: まだ解決策が見つかりません。私は今、失敗の変化を減らすための仕事を使用しますが、それはまだ理想的ではありません。コードの周り

仕事(はい、それは汚れている):

// put this method in a base class or easy accessable component 
protected void ExecuteWithRetry(Action method, int maxRetryCount = 2) 
{ 
    try 
    { 
     method(); 
    } 
    catch (Exception) 
    { 
     if (maxRetryCount > 0) 
     { 
      ExecuteWithRetry(method, maxRetryCount - 1); 
     } 
     else 
     { 
      throw; 
     } 
    } 
} 

私はテキストフィールドが設定されているコードの一部を使用するたびに、私はこの方法によってこれを呼び出す:

UIMap.SetUserfieldsParams.EnterAddress = @"555 Sunset Boulevard"; 
UIMap.SetUserfieldsParams.EnterZIP = @"90210"; 
ExecuteWithRetry(UIMap.SetUserfields); 

更新、2012-06-18:これは、私たちが使っている偽装によって引き起こされたようです。 Webアプリケーションにログオンしたユーザーは、IEを起動したユーザー名でADサーバーから直接抽出されます。偽装によってIEを開始することで、(手動で)ログオフしてWindowsにログオンすることなく、他のユーザーとのテストを行うことができます。名前空間にProcess.Start(ProcessStartInfo startInfo)を使用して偽装を使用します。System.Diagnostics.Process

答えて

3

私が最初に推測しているのは、入力が速く、アプリケーションが次のキーを受け取る準備ができていないためです。 KeyBoard.SendKeysDelayを使用して入力されるキーの間の時間を変更することができます。マシンのデフォルトは少なくとも10ミリ秒です。

エラーが発生しても続行したことがありますか?値が入力された時点でテストを停止する例外が発生していないことに驚きました。

+0

私はPlayBackSettings.DelayBetweenオプションを発見しました。これは、UIのアクションと_inside_アクションではないと仮定しました(タイピングは10文字/秒より速いためです)が、試してみる価値があります。 Continue on onエラーはオフになっているため、設定された値が検証されると例外が発生します。来週、私がそのプロジェクトに戻ったとき、私はあなたに知らせることができます。 – AutomatedChaos

+1

あなたはDelayBetweenの上にいるので、キーボード入力に影響しないようです...キーボード入力速度を変更する正しい方法はKeyBoard.SendkeysDelayです – stoj

+0

ありがとう!ニースを見つける! – AutomatedChaos

関連する問題