naver / guitar

75 stars 18 forks source link

guitar가 동작하지 않는 프로세스도 있나요? #386

Open hellowins opened 6 years ago

hellowins commented 6 years ago

안녕하세요.

회사 제품 UI테스트 자동화 중인데 GUITAR로 개발해보려고 합니다.

그런데 일부 회사제품이 인식이 안되는 것 같네요. (캡쳐 불가, 이미지 검색 불가)

문의사항

  1. 모든 프로세스가 가능한 툴인가요??
  2. guitar로 사용될 수 있는 프로세스 개발환경(개발언어라던지) 이 있나요??
  3. 있다면 , 사용 가능/불가능 프로그램 구분이 될만한 기준이 있나요?

스크립트 재현절차

  1. processclose로 제품.exe 닫음 -> 정상
  2. ShellExecute로 제품.exe 활성화 -> 정상
  3. 프로세스 선택 한다. -> 정상
  4. 프로세스 tilte명으로 윈도우활성화 한다. -> 정상
  5. 현재 활성화된 윈도우의 tilte을 갖고온다 -> 못갖고옴
  6. 그림을 검색한다. -> 실패

로그

실패 내용 : 웹 브라우저를 활성화 할 수 없습니다. 브라우저 화면 :

image

스크립트

"$종료결과=processclose('SniperLauncher.exe')" 계산한다. "$PID=ShellExecute('C:\Program Files\SNIPER\SNIPER_LAUNCHER\SniperLauncher.exe')" 계산한다. SniperLauncher 프로세스선택한다.

"$실행결과=WinActivate('Sniperlauncher')" 계산한다. "$name=WinGetTitle('[ACTIVE]')" 계산한다. SniperLauncher 프로세스선택한다. UserID 확인한다.

ssmmhh commented 6 years ago

GUITAR는 UI가 있는 프로세에서 사용가능합니다. UI가 없거나, 캡쳐될수 없도록 특수하게 화면을 구현한 경우 작동이 안될수도 있습니다. 이는 개발언어나 특별한 개별환경이 있는것은 아닙니다.

autoit에서 screencapture 명령으로 화면 캡쳐시 캡쳐가 된다면 작동되는 환경이라고 보시면 되ㅏㅂ니다.

문제가 된 상황은 혹시 내부에 여러 프로세스가 존재할 경우 UI가 없는 프로세스가 지정되어 테스트가 안될수 있습니다. 이런경우 "프로세스선택" 명령뒤에 명확하게 UI(이미지)가 있는 프로세스를 다시 찾기 위해 해당 "선택" 명령을 추가로 하신뒤 사용해 보시기 바랍니다.

예) (YYYY, ZZZZ 는 이미지 입니다.)

XXXX 프로세스선택 한다. YYYY 선택 한다.

ZZZZ 확인한다.

참고 : https://github.com/naver/guitar/issues/80 https://github.com/naver/guitar/issues/336

hellowins commented 6 years ago

XXXX 프로세스 선택한다. -> 정상 YYYY 선택한다. -> 윈도우가 활성화 되지않았습니다.

윈도우를 찾을수 없어 '선택'동작 부터 되지 않아서 윈도우 창 인식이 불가합니다.

혹시 UI 속성값에서 title 이 숨김처리 되어 있는것 같던데요 이것과 연관이 있을까요? 이와같이 class 값만 존재할 경우 윈도우 활성화를 어떻게 해야되나요? image

ssmmhh commented 6 years ago

윈도우에 attach 를 못하는것 같은데요. autoit을 사용하실수 있으시면 autoit 스크립트로 "WinActivate" 명령을 사용해 제어하고자 하는 창을 attach 할수 있는지 한번 확인해 보시기 바랍니다. 윈도우 이름과 정보까지 나오지 않는다면 숨기로도록 되어 있는것 같습니다. 그리고 _ScreenCapture_Capture 명령으로 데스크탑 화면을 캡쳐할때 해당 윈도우가 같이 캡쳐지되는지 보시기 바랍니다. 만약 캡쳐가 안된다면 특수하게 작성된 화면으로 guitar를 통해서 이미지 제어가 불가능할것 같습니다.