1

페이지에서 동적으로 컨트롤을 생성하는 웹 응용 프로그램을 자동화하려고하는데 웹 컨트롤의 ID가 결코 같지 않습니다.동적으로 생성 된 컨트롤로 자동화 된 테스트를 수행하는 방법은 무엇입니까?

Visual Studio 2012 Ultimate, MTM 및 Coded UI Test를 사용하고 있습니다. 응용 프로그램이 C# 및 Visual Studio 2012로 작성되었습니다.

문제는 새 실행마다 컨트롤의 ID가 변경되므로 테스트가 항상 실패한다는 것입니다.

이 문제를 해결할 방법이 있습니까?

+0

특별히 ** ** ** ** ** ** ** ** ** ** ** ** 해당 ID를 만들 때 해당 컨트롤에 고정 ID를 할당 할 수 없습니까? –

+1

코딩 된 UI는 지정할 수있는 모든 항목을 지정하여 검색 기준을 만드는 경향이 있습니다. 원치 않는 또는 도움이되지 않는 기준을 종종 삭제할 수 있습니다. 검색 기준에서 컨트롤 ID를 삭제할 수 있습니다. – AdrianHHH

+0

지금 당장 고정 ID를 할당 할 수 없습니다. 나는 dev 팀에 요청을 보냈습니다. –

답변

2

컨트롤 ID가 변경되면 classname, tagname 등과 같은 다른 식별자를 사용하여 컨트롤을 가져올 수 있습니다. 클래스 이름도 동적 인 경우 확인을 위해 태그 이름으로 전환하고 컨트롤의 내부 HTML을 가져올 수 있습니다 컨트롤이 예상했던 것과 동일하다는 것입니다. 그러면 문제를 해결할 수 있습니다.

+0

나는 그것을 할 수 있었지만 문제는 단계를 기록하기 위해 VS 도구를 사용하여 스크립트를 생성하고, Visual Studio는 자동으로 스크립트를 생성합니다. 스크립트 생성 직후 ID와 이름을 사용하지 않도록 수동으로 변경해야했습니다. 마찬가지로 작동했지만 효과적이지는 않습니다. 계속 검색 할 것입니다. –

1

나는이 상황에 대해 매우 확실하지 오전하지만 난 당신에게 예를 제공 할 수 있고 아마 당신이 실제 상황이를 시뮬레이션 할 수 있습니다 :

예 : (성능 테스트에 사용)처럼로드 러너 도구, 그것은 기록 사용자 행동으로 인해 세션 ID의 모든 동적 값을 포함하여 모든 것을 포착하므로 스크립트를 재생하면 동적 인 특성으로 인해 세션 ID가 다시 변경되기 때문에 실패합니다. 우리가 처리하는 방법 : 페이지 소스를 가져 와서 동적 값이 나타나는 왼쪽과 오른쪽 경계를 표시하고 일부 변수에 동적 값을 저장하므로 다음에 실행할 때 동적 값을 걱정하지 않아도됩니다.

당신을 혼동하지 말고 페이지 소스를 가져 와서 오른쪽 및 왼쪽 문자열을 표시하고이 마커 사이의 값을 변수에 저장하고 처리 할 수 ​​있습니다. 마킹을 위해서 당신은 정규 표현식을 사용할 수 있습니다 ... 이것이 도움이되기를 바랍니다. !! !!

+0

앞서 말했듯이 문제는 VS 도구를 사용하여 단계를 기록하고 자동으로 코드를 생성한다는 것입니다. 나는 수동으로 수정해야하고 그것은 매우 느립니다. –

+0

"... 수정을 수동으로해야하고 그 속도가 매우 느립니다 ...."그 이유는 그 전문 기술에 대해 큰돈을 지불해야하는 이유입니다. –

1

웹 앱에 버튼이 있고 해당 버튼을 클릭한다고 가정 해 보겠습니다. ID가 동적 인 상황에서 이 아니라 버튼을 클릭하여 기록하십시오. 버튼을 동적으로 만들고 검색 속성을 즉시 추가해야합니다. 아래 코드를 참조하십시오.

// 테스트 단계로 html 버튼의 인스턴스를 만듭니다. 테스트 단계로 지정된 UI 문서의 버튼

HtmlInputButton myButton = new HtmlInputButton(someUIMap.UISomeWindow.UISomeDocument); 

는 // 검색합니다. 여기서 우리는 DisplayText 속성으로 검색 할 수 있습니다. 존재하는 경우

myButton.SearchProperties.Add("DisplayText", "Your buttons Display Text"); 

// 버튼을 클릭합니다.

if(myButton.Exists) 
{ 
    Mouse.Click(myButton); 
} 

이 정보가 도움이되기를 바랍니다.

+0

그러나 테스트를 기록한 후에 Visual Studio에서 생성 한 검색 기준을 수정하는 데 도움이됩니다. 최선의 해결책은 아니지만 효과적입니다. –

관련 문제