2017-08-23 10 views
0

デスクトップのWPFアプリケーションに対して自動テストを実行すると、ローカルマシンとRDP経由でアクセスするAzure VM Windows Server 2012R2で正常に動作します。テストエージェントの画面解像度を向上

ただし、VMがビルドマシンとして使用され、TFSまたはVSTSのテストエージェントによって制御されると、画面解像度が1024x768の画面解像度に設定されているため、すべてのテストが失敗します。アプリケーションは、このディスプレイ設定まで実行するように構成されていません。テストエージェントを導入する際に画面設定を変更する方法はありますか?

Change VSTS agent session screen resolution when running protractor tests

+0

のコード我々はここで

  • を設定したい解像度されている薬剤でありますインタラクティブモードで動作しますか? –

  • +0

    はいそれはありがとうございます –

    +0

    そのマシンにログオンし、WPFアプリケーションを正しく開くかどうかを確認します。 –

    答えて

    0

    が画面解像度を設定するRDPを使用するので、これはAzureのVMの制限です。詳細については、このリンクを参照してください:Why is not possible increase or change display resolution in Azure VM

    RDPセッションは、Microsoft Virtual マシンバスビデオデバイスではなく、RDPディスプレイドライバを使用します。

    RemoteFX機能では、通常のRDPよりも広い範囲のグラフィックスを使用できますが、RemoteFXはAzure VMでは使用できません。

    +0

    これを修正する方法はありますか?私たちは、低解像度設定で自動テストを実行したくありません。 –

    +0

    @GSTeam私が知る限りこれを変更する方法はありません。 RDPを接続したままにするか、ローカルマシンにテストエージェントを展開してください。 –

    +0

    セッションを継続的に維持する方法はありますか?ありがとう –

    0

    私は同じ問題を抱えています。 RDPセッション(Azure VMの場合でも)の解像度を指定する方法があるので、UserVoice ideaを作成して、この機能を使用しました(「機能テストの実行」タスクでUIテストを実行するときの解像度を指定してください)。

    その間、回避策を使用しています。私たちのビルドVMは、(このセッションは4800x2700で実行されている別のブラウザのサイズをカバーするために)必要な解像度でRDPセッションを開き、アカウントを持つテストマシンにUIテストを実行します。アクティブなセッションがある場合、UIテストはそのセッションに接続し、現在表示されている解像度を使用します。 AzureビルドVMからAzureテストVMへの一定のRDPセッションがありますが、動作します:)

    2

    Visual Studio + Azureソリューションで同じ問題が発生しました。テストを実行できるようにするには、VM上で1027 x 768よりも高い解像度が必要です。しかし、Azureでオンになっているマシンの代金を払っているので、各実行後にそれらをオフにしてコストを抑えたいあなたが少しスケールアップしたいときに特に役立ちます)。

    したがって、特定の(指定された)解決策でVMを起動させる簡単なオプションがないというのは本当の痛みです。私があなたに見せたいものよりも単純なものがあれば、私に知らせてください。しかし、私は見つけられませんでした。だから、私はネッシーが言ったアイディアに投票しました。回避策として私たちがしたことは次のとおりです。

    アイデアは、私たちがガイドラインとしてthis postを使用本質的には可能な解決策のために

    です。これから使用した最も重要なことは、Windows資格証明パートとTERMSRVでした。

    私たちのセットアップ

    • Visual Studioのビルドサーバ
    • 四AzureのVMの、1台のマシンがセレングリッド・ハブで、他の3つのノードです

    当社のソリューション

    まず、ビルドサーバーにresouのすべてのマシンを起動させますrceグループ(これまでのところ良い)。次に、ビルドサーバー上で実行されるPowershellスクリプトを作成してノードにチェックを付け、RDPサービスが利用可能になるのを待ちます。これは、このサービスがアクティブであることがわかる前に最大10分かかる可能性があるため、必要でした。最後に、セレン・グリッド・ハブVM上のPowershellを起動して、特定の解像度ですべてのノードにRDP接続を行います。

    • は、資格情報があることを確認すること
    • ハブに作成し、各ノードからのエクスポート/インポート証明書:必ずすべてが自動的に必要な手動入力せずに行くようにする、もう少し詳細に

      資格証明マネージャに保存されている>のWindows Credentails(私たちは人生のほんの少し簡単にするために、すべてのマシン上のユーザを作成した)

    • RDPサービスが
        アクティブであるかどうかをチェックするためのスクリプトを作成します私たちは、これらすべての引数はここでビルドサーバー
      • に変数に格納されている$(Password) $(Chrome-node) $(Username)
      • script on github
    • ためのコードである引数を持つブロックを構築VSに(以下の例を参照)、このスクリプト C:\Scripts\RDPServiceRunCheck.ps1を呼び出します引数を指定してVSのビルディングブロックで
      • 我々は、このスクリプトC:\Scripts\Resolution.RDP.Remoting.exe(下記参照例)を呼び出し、特定の解像度でRDPを起動するための実行可能ファイルを作成
      • "C:\Scripts\$(Chrome-node).rdp" 1600 1200各マシンのための*の.rdpファイルはこのフォルダに保存されている(前払い)された10
      • 1600 1200executable on github