2008-09-18 11 views
6

Mercury Quick Test Professional 9.2가 설치된 가상 시스템 (VMware)이 있습니다. Infragistics 라이브러리를 사용하여 VB.NET으로 작성된 응용 프로그램을 테스트하는 스크립트가 있습니다.Mercury Quick Test Pro 및 가상 시스템 : 클라이언트 컴퓨터에서 작동하지만 다른 컴퓨터에서는 작동하지 않습니다.

내 랩톱 (원격 데스크톱 사용)을 사용하여이 가상 컴퓨터에 액세스하면 모든 것이 정상적으로 작동하며 스크립트는 문제없이 완료됩니다. 내 노트북은 Windows Classic 테마로 XP를 실행합니다.

다른 컴퓨터 (원격 데스크톱 사용)를 사용하여이 가상 컴퓨터에 액세스하면 스크립트는 정상적으로 시작되지만 QTP의 오류 메시지없이 아무 것도하지 않고 중단됩니다. 이 컴퓨터는 Windows Classic 테마로 XP를 실행합니다.

두 가지 설정의 한 가지 차이점은 화면 크기이며, 노트북은 1920x1280이고 다른 컴퓨터는 1280x1024입니다.

스크립트가 중지되는 단계는 UltraWinGrid 내의 확인란을 선택하는 것과 관련이 있습니다. 두 경우 모두 체크 박스 자체가 화면에 표시됩니다.

이전에이 문제가있는 사람이 있었거나 두 컴퓨터간에 동작이 다른 이유가 무엇입니까?

감사합니다.

답변

5

확인. 나는 그 문제를 발견했다. 사실 스크립트는 침묵을 지키지 못했습니다. 스크립트를 작성한 사람이 그렇게했기 때문입니다. 화면에서 벗어난 내용의 유효성을 검사 할 수 없으므로 스크립트가 실패했습니다.

문제는 '화면 꺼짐'이라는 QTP 정의입니다. 내 랩톱에 연결된 두 개의 화면, 랩톱 자체의 화면 (1920x1200) 및 다른 화면 (1280x1024)이 있습니다. 원격 데스크톱을 사용하여 QTP 용 VM에 연결하고 노트북의 화면 설정을 사용합니다. 즉, QTP 스크립트를 실행하여 다른 화면으로 이동하면 적합하지 않아 화면이 더 이상 최대화되지 않으며 개체가 화면에서 부분적으로 벗어나있어 찾을 수 없습니다.

수정 방법은 간단합니다. 원격 데스크톱에서 디스플레이 탭을 사용하고 화면 크기를 1280x1024 크기로 설정하면 QTP에 더 이상 문제가 없습니다.

Voilà.

+0

나는 상대가 보이는 것 같습니다 :) Linux에서 RDPing을하고 있으므로, 시작한 후에 내 RDP 창 크기를 조정할 수 없다는 점을 감안할 때이 특정 문제를 실행하지 않았습니다 ... – tloach

1

전문가 모드를 사용하지 않고 있거나 QTP가 리포지토리 개체를 만들기 위해 대부분의 작업을 수행 할 수 있으면 yes로 모든 것을 픽셀 단위로 참조합니다.

필자는 모든 저장소 객체를 수동으로 생성하고 소스를보고 (자동화 된 웹 응용 프로그램 테스트의 경우) 필요할 경우 Object Spy를 사용하여 도움을받습니다. 나는 당신이 안으로 달리고있는 바로 그 이유 때문에, 나의 객체 정의의 일부로서 위치 정보를 갖지 말아야한다는 점을 지적한다.

Windows와 상호 작용하는 (업로드 할 파일 열기 등) 웹 응용 프로그램의 일부에 대해 Object Spy는 리포지토리 개체를 만들기위한 고유 식별자를 만드는 데 필요한 시행 착오에서 필수적이었습니다. 그러나 그것은 할 수 있습니다.

EX1 찾아보기 대화 상자 파일
텍스트 = (파일 열기 대화 상자에 대해 분명히 일부 Windows 부두?)
nativeclass = # 32770 "파일 선택"

EX2 찾아보기 대화 상자에서 파일 이름 텍스트 상자 :
nativeclass = "편집"
첨부 된 텍스트 "& 파일 이름 :"(? 더는 윈도우 부두 그것은 "&"없이 나를 위해 작동 woudn't)

있는 Ex3- : 대화 상자에서 열기 버튼 :
텍스트 = "& 열기"
객체 클래스 = "버튼"

행운을 빕니다!

0

QTP는 객체가 같은 높은 수준의 객체 (이 경우 SwfTable) 당신은 그러나 QTP 개체를 인식하지 못하는 경우 다시 떨어질 확인해야을 확인하는 경우 하지 사용 화면이 최후의 수단 제외 좌표 않습니다 화면 좌표는 WinObject입니다.

Infragistics를 사용중인 경우 TestAdvantage 제품과 함께 QTP 지원을 확장하면 문제를 해결할 수 있습니다.


편집 : MatthieuF @ 는 말했다 :

는 사실, 우리는 QTP에 대한 Infragistics의 플러그인을 사용하고, 우리는 여전히

당신이 나에게 줄 수

문제를 가지고 실패한 라인의 예?

0

몇 가지 :

당신은 쉽게 VM에 디버깅 할 수 있어야한다 - 그것이 당신의 객체 저장소로 이동, 정지, 그리고 개체를 식별 할 수 있는지에 대한 그냥 기다려. 그렇다면 객체 스파이를 사용하여 OS간에 어떤 속성이 다른지 알아냅니다. 차이점이있는 경우 해당 속성을 정규식으로 설정하고 두 가지 가능성을 모두 확인하도록 할 수 있습니다.

원격 창을 닫거나 최소화 한 경우 QTP가 포함 된 원격 데스크톱을 사용할 때 문제가 발생했다고 가정합니다. 우리에게는 RDP 창이 보이지 않을 때 클립 보드를 변경할 수 없지만 QTP를 사용하면 다른 놀라움이있을 수있는 문제였습니다.

1

명확한 지점 : 오류 메시지없이 QTP가 중지된다고 말씀하셨습니다. 테스트 결과 로그 파일에도 오류 메시지가 없다는 것을 의미합니까? 로그에 정보가 있으면 문제 진단에 도움이 될 수 있습니다. 스크립트가 실패한 지점에서 코드 줄을 공유 할 수 있습니까?

또한 원격 데스크톱은 원격 컴퓨터에서 바탕 화면의 크기를 조정합니다. QTP 스크립트는 본질적으로 좌표 기반이 아니지만 개별 명령문은 객체와 관련된 좌표 기반 일 수 있습니다. 그 점에서 해결책이 문제가 될 수 있습니다. 예를 들어, 고해상도 컴퓨터에 Button.Click (5, 150)과 같은 선이 있다고 상상해보십시오. 그러나 더 낮은 해상도의 컴퓨터에서 다시 재생하려고 시도하고 150이 낮은 해상도의 물체를 벗어나면 문제가 발생할 수 있습니다.