Como alterar a resolução padrão no Windows para logon automático?

5

Eu tenho vários sistemas virtuais do Windows Server 2012, principalmente na AWS. Esses sistemas são usados para realizar testes de UI baseados em navegador usando o Selenium. Os testes precisam ser iniciados com uma conta de usuário específica, porque esse usuário tem o ambiente da interface do usuário configurado corretamente para executar os testes.

Para entender o cenário, imagine que você faça login em um sistema virtual remoto por meio de, por exemplo, RDP, configure seu ambiente de área de trabalho para executar os testes e, em seguida, inicie os testes e observe-os em execução. Até aí tudo bem, se eu executar os testes dessa maneira, tudo está OK.

Para automatizar todo o processo, configurei os clientes de teste como Jenkins Slaves. Nota importante é que eu tive que iniciar o processo Jenkins Slave com a mesma conta de usuário que tem o ambiente de interface do usuário configurado para os testes. Isso garante que a conta do usuário e o ambiente da interface do usuário sejam usados quando eu iniciar os testes via Jenkins. No final, eu poderia executar o teste dessa maneira com sucesso, desde que eu tivesse a conexão RDP aberta.

O problema é que, assim que eu me desconecto do cliente de teste, os testes começam a falhar. Parece que é necessário ter uma conexão RDP ativa com a conta de usuário específica para que todos os testes de UI sejam bem-sucedidos. É isso que eu tento eliminar agora.

A solução até agora parece ser configurar a conta de usuário que eu uso para os testes para fazer logon automaticamente quando o cliente de teste é iniciado. Para configurar o logon automático, eu uso a ferramenta Autologon , mas há outros meios para alcançar o mesmo efeito. Após a inicialização do sistema meu usuário parece "log in" com êxito, ou seja, após ignorar a tela de logon ele recebe seu ambiente GUI inicializado com uma tela 1024x768 padrão, também todos os programas que são definidos para iniciar automaticamente após o logon são iniciados com sucesso, incluindo meu Jenkins Slave processo.

Quando executo os testes de interface do usuário com esses clientes de teste por meio do Jenkins, a maioria dos testes é concluída com êxito, exceto os que exigem uma resolução maior que a padrão de 1024x768. É para isso que estou tentando encontrar uma solução.

Eu tentei mudar a resolução da tela com várias ferramentas de linha de comando (como o QRes) logo após a conclusão do autologon e o processo Jenkins Slave começa - sem sorte. Parece que sem um monitor real conectado, essas ferramentas não podem alterar a resolução. Existe esta questão semelhante aqui com outros meios para alterar a resolução padrão (embora nenhuma delas pareça funcionar), mas observe que, para tornar a solução independente da tecnologia de virtualização usada, estou principalmente procurando uma maneira de alterar a resolução padrão no próprio Windows, e não através de alguma ferramenta de configuração WMWare ou AWS.

Depois de pesquisar um pouco, encontrei apenas maneiras de alterar a resolução padrão de 1024x768 para mídia de instalação personalizada do Windows. Isso me deu a ideia de que essa resolução padrão de 1024x768 está enraizada em algum lugar profundo, mas ainda configurável.

Existe alguém que saiba como alterar essa resolução padrão de 1024x768 para logon automático? Alguém pode sugerir quem e onde mais eu poderia fazer esta pergunta, talvez existam alguns fóruns lidando especialmente com questões relacionadas a tais internos do Windows?

    
por remark 16.12.2014 / 14:42

2 respostas

2

Eu tive o mesmo problema ao criar um farm do Windows Selenium para testes em resoluções específicas.

Defina a resolução da tela sem cabeçalho no Windows:

  1. criando um novo usuário chamado rdp_local
  2. criando um script de inicialização para o RDP na conta de usuário especificada na resolução especificada
  3. adicionando uma regra de firewall para abrir a porta RDP 3389
  4. configurando o logon automático para efetuar login como rdp_local na reinicialização

Observe que o logon automático exige um nome de usuário e uma senha, e que a senha é armazenada sem criptografia no registro do Windows NT \ CurrentVersion \ Winlogon do HKLM \ SOFTWARE \ Microsoft \ Windows.

Testado no Amazon Windows Server 2012 R2.

Aqui está a receita do Chef que faz todos os itens acima: link

    
por 23.12.2016 / 04:10
0

Estávamos em situação exata com o selênio em uma VM em execução na nuvem.

Consegui resolver o problema conectando-me à sessão de console da VM (para não chamar qualquer contexto de rdp) e apenas definindo a resolução padrão para o usuário e o sistema. depois disso tudo funcionou.

    
por 19.01.2016 / 20:23