2009-07-13 2 views
1

최근에 QTP, TestComplete 및 기타 GUI 인식/상호 작용 도구를 사용하여 GP 기능 테스트 자동화 가능성에 대한 자세한 조사를 완료했습니다. 요컨대, 어떤 도구도 잘 작동하지 않았습니다. 위에 언급 한 내용이 가장 좋았지 만 녹음 된 샘플 스크립트에서 여전히 많은 하드 코딩 기능을 제공했습니다. QTP는 훨씬 더 좋았습니다.QTP/Dynamic Great Plains 자동화

일부 GUI는 .NET (swf ... QTP)에서 인식되어 잘 처리됩니다. 다른 일부는 swfObject로만 인식되었지만 네이티브 메서드 및 속성에 액세스하면 필요한 상호 작용을 수행 할 수있었습니다.

마지막으로 내부적으로 "Microsoft.Dexterity.Shell.DexDialogHost"라는 개체는 Windows Handle이 없으므로 QTP에서 인식 할 수없는 개체를 렌더링합니다. 해당 개체 제품군에 대한 자세한 설명서를 찾지 못했습니다 (클래스 이름 참조와 같은 메서드 이름을 찾으십시오).

누군가 GP를 자동화 한 경험이 있고 어떤 도구/접근 방식을 사용했는지 궁금합니다.

감사합니다.

답변

0

그것은 동안을 잡았다 [제거는 많은 개체 각각은 복수의 손재수 대화 상자가 있다는 것을 더 자세한 정보 제공이 상황에 부적절한으로 키 스트로크 (keystroke) + clipbaord 해결 방법 제안] 그리고 실제로 개념을 증명하십시오. 필자는 Great Plains 자동화 성공 사례에 대한 일련의 게시물을 시작하여 샘플 코드와 함께 조사 내용과 단계를 자세히 설명했습니다.

http://automation-beyond.com/2009/09/01/gp-automation-utilizing-com/

http://automation-beyond.com/2009/08/26/dynamics-great-plains-gui/

http://automation-beyond.com/2009/08/24/great-plains-automation/

다음은 요약이다 (계속된다).

  1. Microsoft Dynamics Great Plains에는 플랫폼 간 제품으로 만드는 완전히 독립적 인 GUI/이벤트 시스템 (손재수)이 있습니다. 같은 일로 거의 완벽하게 외부에서 접근 할 수없는 "블랙 박스"가됩니다.

  2. 플랫폼 별 엔진은 COM 자동화 및 Windows 플랫폼을위한 다양한 통합 모델을 지원합니다. 이 모든 것은 Continuum Integration Library 이름으로 수집됩니다.

  3. 특히 테스트 자동화 요구 사항에 특히 유용한 것은 Continuum이 에 GUI의 사용자 입력을 시뮬레이션하여 테스트 자동화 도구와 동일한 방식으로 작동하는 고급 방법을 제공합니다. 테스트 자동화가 sanScript (민첩의 내부 스크립트 언어)의 직접 통화를 필요로 어디든지 연속체가 커버하지 않는

  4. 는 실시간으로 실행될 수 있습니다. 위의 모든으로

  5. , 나는 빠른 테스트 Professional은 마이크로 소프트 역학 그레이트 플레인 응용 프로그램의 기능 테스트 자동화를 가능하게하는 사용자 정의 "영리 GUI"구성 요소를 만들었습니다. 물론 키보드/마우스 하드 코딩 된 대안을 사용하지 않아도됩니다.

감사합니다.

0

QTP가 일부 컨트롤을 인식하지 못하는 경우 .NET 확장 성을 사용하여 지원하는 컨트롤 집합을 확장 할 수 있습니다. 이렇게하면 이러한 컨트롤과 관련된 새 기능을 추가 할 수 있지만 QTP에서 기본적으로 지원하지는 않습니다. 일부 프로그래밍은 .NET이어야합니다.

.NET 확장에 대한 문서가 시작> 프로그램에서 볼 수 있습니다> QuickTest Professional은> 설명서> .NET 추가 기능의 Windows 오늘의 확장 도움말


사실을 확장 양식> :를 QTP에서.NET에있는 객체의 이름 SWF는 indows F ORMS W S을 의미합니다.

+0

안녕 Motti, 답장을 보내 주셔서 감사합니다. 슬프게도 내 질문과는 완전히 관련이 없습니다. 언급 한 확장 성 키트는 응용 프로그램 측면에서 작동합니다. 예, 이론적으로 당신이 만든 응용 프로그램에 추가 개발 작업을 넣을 수 있습니다. 이 경우에도 승인을 받기 위해 서류 작업을해야합니다. 지금 다루고있는 응용 프로그램에 대해 다시 읽어보십시오. 1) 이것은 공급 업체의 응용 프로그램입니다. 2) 이것은 Microsoft/Dynamic Great Plains입니다. 3) 인식 할 수없는 GUI는 손재수입니다. 이러한 객체는 특수 패널에 그려집니다. 대부분 객체에는 핸들이 없습니다. –

+0

안녕하세요. 알버트, GP에 익숙하지 않지만 다른 공급 업체의 앱으로 작업 할 때 .NET Ext가 부적절하다고 말하면 오해됩니다. .NET Ext는 방해가되지 않으며'HWND'를 가진 모든 컨트롤에서 사용할 수 있습니다. 따라서 Microsoft 솔루션은'Microsoft.Dexterity.Shell.DexDialogHost에서 상속받은 컨트롤이 아니라 SwfObject'로 현재 인식되는 컨트롤에서만 작동합니다 '. ( – Motti

+0

안녕은 Motti O를, 내가 더 잘 지금 당신의 포인트를 얻을하지만 간단 단지 직접 네이티브 메소드와 같은 QTP에 매핑 된 .NET 객체의 속성을 해결되지 않습니다 :. HWND', 나는 모른다 /'O 승 컨트롤로 일반적인 SwfObject? QTP 내장 프레임 워크를 사용하지 않기 때문에 추상적 인 객체 유형으로 구동되는 내 자신의 하이브리드 키워드/데이터로 이동합니다. 그래서 랩핑을 구현할 수 있지만 중요한 문제는 상속되지 않습니다. 내가 언급 한 DexterityHost 객체 내에 렌더링. 즉 (특히, GP) 손재수 기반 응용 프로그램을 만들기 위해 수행 된 플랫폼 독립적 인. 좀 더 많은 정보를 찾을 경우 여기거나 내 블로그에 업데이트를 게시합니다. –

0

부분적으로 성공한 개체와 관련하여 언급 한 개체는 SwfObject로 인식됩니다. 논리적으로 표준 클래스에 매핑하면 QTP를 표준 클래스로 처리하도록 구성 할 수 있습니다. 예를 들어 버튼처럼 동작하는 SwfObject가있는 경우 QTP가 표준 버튼 인 것처럼 기록하고 재생하도록 구성 할 수 있습니다.

은, 내가 연구를 수행하는

+0

안녕 톰 , 진지하게, 당신은 내 질문에 대답 했습니까? "해결 방법"에 대해 뭔가 물었습니까? 누군가가 실제 경험을했는지 물었습니다. 나는 그 해답을 고맙게 생각한다. 그러나 나는 그 질문에 적어도 조금 관련이 있어야한다고 생각한다. "대부분의 GP 기능 도구", "GP 도구가 인식하지 못했습니다"라고 무슨 뜻입니까? GP는 "Great Plains"의 약어입니다. 그것이 테스트 도구가 아니라 테스트중인 어플리케이션입니다. –

+0

키보드 해결 방법 ?? 아이디어를 얻으려면 : 입력 상자, 라디오 버튼, 레이블, 체크 상자 및 기타 항목으로 가득 찬 대화 상자/창을 상상해보십시오. 그리고 손재수 객체로 렌더링됩니다. 내용은 전혀 인식 할 수 없습니다. 하드 코딩 된 엉망은 스크립트가 하나의 민첩성 대화를 처리하는 것입니다. 창안에 어떤 물체도 보이지 않을 때 그것은 자동화 할 가치가 전혀 없습니다. –

+0

Albert, 진지하게, 나는 당신의 질문을 r_e_a_d했습니다. 분명히 질문 제목에 "Great Plains"와 반대되는 GP = "General Purpose"를 사용하는 데 실수를 범했습니다. 당신이 여러 가지 민첩한 대화 상자를 가지고 있다는 추가 세부 사항으로, 각각의 흠집이 인식 할 수없는 개체로 가득 차 있다면, 제 작업 방식이 충분하지 않을 것이라는 데 동의합니다. 그러나, SwfObject를 표준 클래스에 매핑하는 것에 대한 첫 번째 요점과 관련하여, 이것은 당신에게 가치있을 수 있습니다. –

0

당신은 .NET을 다운로드 할 수 있습니다 추가 기능 HP에서. link text