2009-11-09 3 views
2

VMWare와 함께 QTP 10을 사용하여 Siebel 응용 프로그램을 테스트하고 있습니다. 다음 코드를 실행하여 저장 버튼을 클릭합니다. 나는 원격 데스크톱을 통해 VM에 연결되어있을 때QTP + VM : 원격 데스크톱을 통해 VM에 연결하지 않은 경우 Click 명령이 실행되지 않는 이유는 무엇입니까?

Browser("Siebel").Dialog("Filedownload").WinButton("Save").Click 

코드는 완벽하게 잘 작동합니다.

다른 측면에서 원격 데스크톱 연결없이 스케줄러를 통해 QTP 테스트를 시작할 때 위의 코드는 오류 메시지없이 실패합니다. WinButton은 단순히 클릭되지 않습니다.

아이디어가 있으십니까?

답변

3

그냥 내 경험에 추가하십시오.

보안 정책으로 인해 스크린 세이버 나 대기 설정을 변경할 수없는 일부 회사에서. PC가 긴 동기화 기간 동안 화면 보호기를 불러오고 (실제로 큰 보고서를 생성하는 것처럼) 실행이 끊어졌습니다.

나는 5 분마다 마우스를 약간 "이동"시키는 간단한 "수면"기능을 만들지 않으려 고합니다. 사용자 정의 동기화 기능에서 사용의 http://automation-beyond.com/2009/08/18/anti-sleep-function/

Private Const SleepTime_Max = 300 ‘ 5 minutes 
Public Function AntiSleep() 
Dim iter 
Dim objTimer 
Dim objDeviceReplay 
Dim intTimeElapsed 

Set objTimer = MercuryTimers(“AntiSleep”) 
intTimeElapsed = CInt(objTimer.ElapsedTime/1000) 

If intTimeElapsed = 0 Then 
    MercuryTimers(“AntiSleep”).Start 
    Exit Function 
End If 

If intTimeElapsed < SleepTime_Max Then 
    Exit Function 
End If 

Set objDeviceReplay = CreateObject(“Mercury.DeviceReplay”) 

For iter = 100 To 110 
    objDeviceReplay.MouseMove iter,300 
Next 

MercuryTimers(“AntiSleep”).Start 

Set objDeviceReplay = Nothing 

End Function 

예 : 알버트 Gareev http://automation-beyond.com/2009/08/20/gui-object-synchronization-custom-function/

감사합니다

+1

덕분에,이 날 위해 일했습니다,하지만 난 "objDeviceReplay.MouseClick를 사용했다 100, 200, 0 "입니다. MouseMove는 VM 연결을 깨우기 만하지 않았기 때문입니다. –

+0

오, 네, 맞습니다. 리모컨을 사용하는 경우 클릭해야합니다 (일반 데스크톱에서만 움직이는 경우). 가끔씩 클릭하면 원치 않는 것을 트리거 할 수 있기 때문에 동기화 루프에서 기본 동작으로 클릭하지 않습니다. 하지만 상위 레벨의 동기 루프에는 주기적으로 보고서를 생성하거나 다른 생각을하는 창의 제목 표시 줄을 클릭하는 코드 조각이 있습니다. 감사. –

3

QTP는 잠긴 데스크톱과 상호 작용할 수 없으므로 로컬 또는 RDP를 통해 대화 형으로 로그인 한 경우에만 사용할 수 있습니다. 이것은 QTP의 잘 알려진 제한 사항이며, 대부분의 자동화 엔지니어는 어느 시점에서이 고통을 겪습니다. :)

더 구체적으로 말하자면 Win32 개체와 상호 작용할 수 없기 때문에 더 나은 방법을 생각할 수 없으므로 잠긴 데스크톱의 기본 브라우저 컨트롤과 아무런 문제가 없지만 이러한 상황에서는 브라우저 팝업과 Windows 응용 프로그램을 상호 작용할 수 없습니다.

UltraVNC 또는 다른 VNC 변형을 원격 컴퓨터와 상호 작용하도록 설치하는 것이 좋습니다 (시스템 정책이 허용하는 경우). 그렇게하면 원격 시스템의 바탕 화면을 항상 로그온하고 활성 상태로 둘 수 있습니다. 주요 보안 문제가 발생해서는 안되는 VM이기 때문입니다. 화면 보호기를 끄고 바탕 화면을 자동으로 잠그지 않도록하십시오. QTP는 그렇게하면 잘 작동합니다.