Thread monitorando atividades de outra thread

Tenho uma aplicação de teste automatizado e preciso adicionar a seguinte feature em minha aplicação:

Quando meus testes iniciarem, quero que uma thread fique monitorando possíveis com comportamentos, caso ela detecte o comportamento, ela pausa o processo o qual o teste está sendo executado, executa o que for necessário e libera o processo.
Ex:
thread 1 monitora eventos possíveis.
thread 2 executa o teste.

Ao abrir o app, um pop up pode ou não aparecer, caso ele aconteça, a thread 1 pausa a thread 2 executa algum método e libera a thread 2.

Eu poderia fazer o tratamento individual (meu cenário atual) em cada step do teste, acontece que isso tem deixado a execução extremamente lenta.

Da maneira como foi descrito acima, o teste iria seguir normalmente a menos que algo fosse detectado, diminuindo o tempo de execução.

Obs: aceito outras sugestões.

Pode citar um exemplo de comportamento que essa segunda thread iria monitorar?

Faz o controle por banco de dados.

Se você tiver algum exemplo que roda e de pra ver onde fica lento e o que voce quer de fato fazer seria bom.
Mas quanto a essas 2 Threads qual o problema delas , está segurando algum processamento ?

Por exemplo, no app o qual eu faço os teste, as vezes surge uns popups de informativo, as vezes não, acontece que eles podem surgir em varias telas do mesmo app, de um modo geral eu tenho apenas que fecha-lo, outra situação é uma tela de erro com com um link de tente novamente, as vezes, por instabilidade no ambiente de teste esta tela de erro surge com frequência, e quando se clica no link tente novamente, geralmente o teste flui.
Acontece que não quero esperar por estes eventos a cada passo do teste, mas que tenha uma thread separada apenas monitorando este tipo de evento, caso ocorra algum evento desta natureza, a thread principal onde o teste está sendo executado será pausada até que o tal evento (popup, tela de tente novamente…) seja concluido, então a thread principal é liberada e a aplicação segue normalmente.

1 curtida

No seus testes, vc tem acesso aos objetos que criam esses pop-ups? Acho que, para conseguir fazer o que quer, acredito que terá que analisar cada caso (para cada evento que quiser monitorar). E tem o powermock, que já ajuda a manipular comportamentos mais específicos num teste.