Amazon EC2 Windows Machine'in çözünürlüğünü nasıl değiştirebilirim?


9

(Bunu burada yayınlama, ServerFault ve StackOverFlow arasında tartıştım. Bunun için yerleştik. Umarım doğru yerdedir.)

UI test paketimizi, Amazon EC2 Windows makinesiyle (Amazon'un CloudFormation API'lerini kullanmaya başlayan) Selenium Grid 2'yi kullanarak çalıştırıyoruz. Sorum şu: Bu makinenin çözünürlüğünü nasıl değiştirebilirim?

Eğer uzaktan kumanda edersem, Uzak Masaüstü kullanarak çözünürlüğü belirtebilirim. Ancak bu, çözünürlüğü kalıcı olarak değiştirmez. Testlerimizi yürüttüğümüzde, çözünürlük o kadar küçük ki tarayıcı elemanları bir araya getiriyor ve testlerin başarısız olmasına neden oluyor.

Herhangi bir fikir? CloudFormation reçetesine koyabileceğim bir şey var mı? AMI'yi oluşturmadan önce görüntüye yapabileceğim bir şey var mı?

Aygıt Yöneticisi'nin ekran görüntüsü

Teşekkürler.


1
İlginç. Hayal ettiğim standart bir örnek olmalı, bu yüzden örneğe atanmış CUDA grafik kartı yok. Yani standart bir sanal grafik kartıyla çalışıyorsunuz. Aygıt yöneticisinde neye benziyor? Bir ekran görüntüsü paylaşabilir misin? Konsola rdp-ing yaparak daha da zorlayabilirsiniz:mstsc.exe /console
Paul

@ Paul, bir ekran görüntüsü ekledim. Standart bir örnektir. Windows Server R2. Teşekkürler.
Joel

@Joel, bunu hiç çözdün mü? Aşağıdaki yanıtları kullanmak da dahil olmak üzere birkaç gün boyunca bunu yapmanın yollarını bulmaya çalışıyorum, ancak şu ana kadar şans yok. Yeniden başlatıldığında veya AMI'den (cevapları kendilerine uygulananlar bile) yaratıldığında, hala 1024x768'de başlarlar.
Sean

Yanıtlar:


4

Sorumluluk reddi: TightVNC güvenli değildir, bu nedenle güvenlik bir sorunsa farklı bir yaklaşım bulmanız gerekebilir. Tüm süreç sadece birkaç dakika sürecektir, bu nedenle güvenlik deliği küçüktür, ancak yine de vardır.

  1. Konsolda oturum açabilmek için EC2 yönetim ortamına TightVNC Sunucusunu yükleyin
  2. Tüm kullanıcı uzak masaüstü oturumlarının bağlantısını kesin ve oturumu konsola döndürün
  3. EC2 yönetim ortamı konsolunda oturum açmak için TightVNC Viewer'ı kullanın, bağlantı noktası 5900'ün bu bağlantı için açık olduğundan emin olun
    • Masaüstünü sağ tıklayın ve "Ekran çözünürlüğü" nü seçin
    • "Gelişmiş ayarlar" ı seçin
    • "Tüm Modları Listele" yi seçin
    • Daha yüksek bir çözünürlük seçin

Bu, gerçek sorunumu çözeceğine inandığım kararımı değiştirmeme izin verdi, ancak olmadı. Windows 2008 ec2 sunucumda görev zamanlayıcı aracılığıyla otomatik olarak çalışan selenyum testlerim hala küçük bir çözünürlükte çalışıyor. Yukarıdakilerle güncelledikten sonra bile, daha küçük bir çözünürlükte çalışıyorlar. Evet, pencereler selenyum yapılandırmasında çözünürlüğü en üst düzeye çıkaracak şekilde ayarlanmıştır.
kopyalayıp yapıştırın

1

İki kayıt defteri değerini değiştirerek ekran çözünürlüğünü değiştirebilirsiniz. Bu iki değer şunlardır: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionGUID rasgele oluşturulmuş bir GUID'dir.

Aslında onaltılık oldukları sürece herhangi bir XResolution ve YResolution değerini belirleyebilirsiniz.

Not: Bir CRT monitörünün saçma bir çözünürlük belirtmesi durumunda monitörünüze zarar verebilir. LCD monitör durumunda, monitörünüzde artık herhangi bir kullanıcı arayüzü gösterilmeyebilir. Ekran çözünürlüğünüzü değiştirmenin iyi bir yolu, ekran genişliğinizi doldurmak istediğiniz piksel miktarını (bu XResolution'dur) ve ekran yüksekliğinizde (YResolution) istediğiniz piksel miktarını yazmaktır. Windows hesap makinesi (Sunucu Çekirdeğinde mevcut değildir, başka bir bilgisayar veya gelişmiş bir donanım hesaplayıcısı bulmanız gerekir) ondalık miktarları onaltılık tutarlara dönüştürmenin kolay bir yolunu sunar. Daha sonra bu değerleri karşılık gelen kayıt defteri değerlerini değiştirmek için kullanabilirsiniz. Yeniden başlatma, tercih ettiğiniz ekran çözünürlüğünü gerçeğe uygun hale getirir.

Monitörünüzde kullanılan renk derinliği aşağıdaki kayıt defteri değerinde yakalanır: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelKutumda bu onaltılık değer, ekranımın 8 bit renk derinliği kullandığı anlamına gelen 0x00000008 (8) olarak ayarlandı. (256 renk) 16 bit (0x00000010) olarak değiştirilmesi 65536 renk (Yüksek Renkler) gösterir. Diğer mevcut değerler 24 bit (0x00000018) ve 32 bittir (0x00000020).

Kaynak


DefaultSettings yok. * GUID.0000 herhangi bir çözüm anahtarları. Bence sadece sanal cihazları var. Bu anahtarı her birine ekleyebilir miyim? Işe yarar mı?
Joel

@Joel: Bundan şüpheliyim. Hiç bir 'Video' dalı yok mu? EC2'de bir Server Core 2008 R2 örneğim var, bu yüzden bu akşam bir göz atacağım.
paradroid

Evet, öyle düşünmüyordu. Yine de soracağımı düşündüm. Çözüm aramaya devam edeceğim. Bir şey bulursan bana haber ver. Teşekkürler.
Joel

Ayrıca kayıt defterinde DefaultSettings. * Yok. Bu çözümü bile denemedim. Görünüşe göre bazılarına yardımcı olabilir, hepsi değil.
kopyalayıp yapıştırın

1

Bu çalışmayı, @ kenny-trytek'in cevabının bir kombinasyonunu kullanarak ve otomatik giriş ayarını kullanarak başardım.

Bence VNC çözünürlüğü sadece mevcut kullanıcı için ayarlanır, bu yüzden otomatik girişin ayarlanması bu kullanıcının açık bir oturumu olmasını sağlar.

Otomatik oturum açmayı ayarla https://support.microsoft.com/en-us/kb/324737

Ardından, kullanıcılar Başlangıç ​​klasöründe selenyum düğümü işlemini başlatmak için bir kısayol veya yarasa dosyası sağlayın.


1
Bağlantı verilen sayfalar değişirse yanıt geçersiz olabileceğinden, lütfen yanıtın önemli kısımlarını referans bağlantılarından alıntılayın.
DavidPostill

1

Yukarıdakilerin çoğunu denedim ve başarısız oldum. Durumum için benzersiz bir çözüm buldum ki basitti .. windows power-shell kullanın.

power-shell betiği yazdı

Set-DisplayResolution -Width 1920 -Height 1080 -Force

çözünürlük olarak adlandırın. ps1

C: \ myTestFolder içine kaydedildi

ve aşağıdaki gibi komut satırından çalıştırın ..... (komut dosyalarım toplu iş dosyaları tarafından yönlendiriliyor)

WindowsPowerShell\v1.0\powershell.exe C:\myTestFolder\resolution.ps1

0

RDP kullanarak AWS Windows'ta başsız ekran çözünürlüğünü nasıl ayarlayacağım:

  • rdp_local adlı yeni bir kullanıcı oluştur
  • belirtilen çözünürlükte bir kullanıcı hesabına (ör. selenyum) RDP için bir başlangıç ​​komut dosyası oluşturma
  • 3389 numaralı RDP bağlantı noktasını açmak için güvenlik duvarı kuralı ekleme
  • Otomatik oturum açmayı yeniden başlatma sırasında rdp_local olarak oturum açacak şekilde yapılandır

Otomatik oturum açma işleminin bir kullanıcı adı ve parola gerektirdiğini ve parolanın HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon Windows kayıt defteri altında şifrelenmeden saklandığını unutmayın.

Amazon Windows Server 2012 R2 AMI üzerinde test edilmiştir.

İşte aşağıdakileri yapan bir Şef yemek kitabı: https://github.com/dhoer/chef-windows_screenresolution


GÜNCELLEME: Selenyum testi için kullanılan Windows makinelerinde ekran çözünürlüğünü ayarlamak için github.com/dhoer/choco-screen-resolution#screen-resolution kullanmanızı tavsiye ederim . Yüklemek için sürücü gerektirmez ve otomatik giriş güvenlidir (düz metinde şifre yok)
Dennis Hoer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.