Alterações simultâneas no banco de dados de teste

Importante

O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar migrar.

Saiba mais sobre linhas do tempo e alternativas de suporte.

Os scripts de teste geralmente alteram dados externos e testam as alterações. O processo geralmente inclui a configuração dos dados de volta para o estado conhecido ou inicial em que os testes foram gravados. Esse processo pode usar um banco de dados de teste com credenciais para o usuário de teste.

Esse cenário comum funciona bem para um único teste em um dispositivo por vez. Se você testar em vários dispositivos ao mesmo tempo, os testes poderão causar alterações conflitantes no banco de dados de teste.

Para evitar alterações conflitantes no banco de dados, você pode usar as seguintes abordagens, em ordem aproximadamente crescente de complexidade e poder:

  1. Execute apenas um teste por vez.

  2. Não modifique dados comuns ou não dependa de dados que seus testes possam mudar.

  3. Simular os dados em seus testes.

  4. Crie vários usuários de teste com credenciais exclusivas para que os dispositivos simultâneos entrem como usuários diferentes. Use um índice de dispositivo para obter um identificador exclusivo para cada dispositivo em uma execução de teste e use o identificador para pesquisar as credenciais do usuário. Essa abordagem funciona apenas para vários dispositivos na mesma execução de teste, não em várias execuções de teste simultâneas.

    Os scripts de teste do App Center test em Calabash, Appium e Xamarin.UITest podem acessar a variável de XTC_DEVICE_INDEX ambiente. A variável é uma cadeia de caracteres com intervalo 0 para N-1, em que N é o número de dispositivos em que o teste é executado. Você pode usar essa variável para pesquisar credenciais ao executar um teste em paralelo em vários dispositivos. A variável está disponível apenas para o script de teste, não para o aplicativo em teste.

  5. Crie um serviço Web externo que os testes possam acessar em tempo de execução para obter um conjunto exclusivo de credenciais. Essa solução é a mais complexa, mas também é a mais geral.