WCF(Windows Communication Foundation) 테스트 클라이언트(WcfTestClient.exe)는 사용자가 테스트 매개 변수를 입력하고, 해당 입력을 서비스에 제출하고, 서비스가 다시 보내는 응답을 볼 수 있는 GUI 도구입니다. WCF 서비스 호스트와 결합할 때 원활한 서비스 테스트 환경을 제공합니다.
일반적으로 다음 위치에서 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE WCF 테스트 클라이언트(WcfTestClient.exe)를 찾을 수 있습니다. - Community는 설치된 Visual Studio 수준에 따라 "Enterprise", "Professional" 또는 "Community" 중 하나일 수 있습니다.
테스트 클라이언트 사용에 대한 시나리오
다음 섹션에서는 WCF 테스트 클라이언트를 사용하여 개발 프로세스를 간소화할 수 있는 가장 일반적인 시나리오에 대해 설명합니다.
Visual Studio 내부
WCF 서비스 호스트가 단일 서비스를 사용하여 WCF 테스트 클라이언트를 시작합니다.
새 WCF 서비스 프로젝트를 만들고 F5 키를 눌러 디버거를 시작하면 WCF 서비스 호스트가 프로젝트에서 서비스를 호스트하기 시작합니다. 그런 다음 WCF 테스트 클라이언트가 열리고 구성 파일에 정의된 서비스 엔드포인트 목록이 표시됩니다. 매개 변수를 테스트하고 서비스를 호출하고 이 프로세스를 반복하여 서비스를 지속적으로 테스트하고 유효성을 검사할 수 있습니다.
WCF 서비스 호스트가 여러 서비스를 사용하여 WCF 테스트 클라이언트를 시작합니다.
WCF 테스트 클라이언트를 사용하여 여러 서비스가 포함된 서비스 프로젝트를 디버그할 수도 있습니다. WCF 테스트 클라이언트가 열리면 프로젝트의 서비스 목록을 자동으로 반복하고 테스트를 위해 엽니다.
Visual Studio 외부
Visual Studio 외부에서 WCF 테스트 클라이언트(WcfTestClient.exe)를 호출하여 인터넷에서 임의의 서비스를 테스트할 수도 있습니다. 도구를 찾으려면 다음 위치로 이동합니다.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE (여기서 커뮤니티는 컴퓨터에 설치된 Visual Studio 수준에 따라 "Enterprise", "Professional" 또는 "Community" 중 하나일 수 있습니다.)
도구를 사용하려면 파일 이름을 두 번 클릭하여 이 위치에서 열거나 명령줄에서 시작합니다.
WCF 테스트 클라이언트는 임의의 수의 URI를 명령줄 인수로 사용합니다. 이러한 URI는 테스트할 수 있는 서비스의 URI입니다.
wcfTestClient.exe URI1 URI2 …
WCF 테스트 클라이언트 창이 열리면 파일>추가 서비스를 클릭하고 열려는 서비스의 엔드포인트 주소를 입력합니다.
WCF 테스트 클라이언트 사용자 인터페이스
단일 서비스 또는 여러 서비스에서 WCF 테스트 클라이언트를 사용할 수 있습니다.
서비스 작업
WCF 테스트 클라이언트 주 창의 왼쪽 창에는 사용 가능한 모든 서비스와 해당 엔드포인트 및 작업이 나열됩니다.
작업을 두 번 클릭하면 작업 이름이 있는 새 탭의 오른쪽 창에서 해당 콘텐츠를 볼 수 있습니다.
왼쪽 창에는 클라이언트 구성 파일도 나열됩니다. 항목을 두 번 클릭하여 오른쪽 창의 새 탭 창에 파일 내용을 표시합니다.
테스트 매개 변수 입력
테스트 매개 변수를 보려면 작업을 두 번 클릭하여 오른쪽 창에서 엽니다. 매개 변수는 기본적으로 형식이 지정된 보기에 표시되며, 매개 변수에 대한 임의의 값을 입력하여 서비스를 테스트할 수 있습니다.
메시지의 XML을 보려면 XML을 클릭합니다. 서비스로 보내려면 호출을 클릭합니다.
DataSet 매개 변수의 경우 편집 옆에 있는 ... 단추를 클릭하여 DataGrid를 보여 주는 새 창에서 편집합니다. 데이터 세트 복사 및 데이터 세트붙여넣기 단추의 모양을 확인합니다. 첫 번째 편집 시 DataSet 개체의 스키마를 알 수 없는 경우 DataGrid는 비어 있습니다. 동일한 스키마를 가진 DataSet 개체를 DataGrid의 현재 개체에 붙여넣어야 합니다. (붙여넣기 작업 전에 다른 위치에서 스키마를 복사해야 합니다.) 데이터 세트 복사 단추를 클릭하여 나중에 사용할 데이터 세트 개체를 복사할 수도 있습니다.
서비스의 응답이 테스트 매개 변수 아래에 표시됩니다.
비고
예상 반환 값이 문자열이면 제공된 입력이 따옴표로 묶이지 않았더라도 결과가 따옴표로 묶인 문자열로 표시됩니다.
서비스에 대한 계약을 만들 때 특정 작업을 단방향으로 지정한 경우 서비스 응답이 표시되지 않습니다. 메시지가 배달 대기하는 즉시 메시지가 성공적으로 전송되었음을 알리는 대화 상자가 나타납니다.
세션 지원
서비스 작업의 탭에서 새 프록시 시작 확인란을 사용하여 세션 지원을 토글할 수 있습니다. 이 상자는 기본적으로 지워집니다.
특정 작업(또는 동일한 서비스 엔드포인트의 다른 작업)에 대한 테스트 매개 변수를 입력하고 확인란이 선택 취소된 상태에서 호출 을 여러 번 클릭하면 이러한 작업은 하나의 프록시를 공유하고 서비스 상태는 여러 작업에 걸쳐 유지됩니다.
새 프록시 시작 확인란을 선택하면 각 호출에 대해 새 프록시가 시작되고, 이전 세션 시나리오가 종료되고, 서비스 상태가 다시 설정됩니다.
클라이언트 구성 편집
WCF 테스트 클라이언트 주 창의 왼쪽 창에는 클라이언트 구성 파일이 나열됩니다. 항목을 두 번 클릭하여 오른쪽 창에 파일 내용을 표시합니다.
서비스 구성 편집기를 사용하여 편집
왼쪽 창에서 구성 파일을 마우스 오른쪽 단추 로 클릭하고 SvcConfigEditor를 사용하여 편집 상황에 맞는 메뉴를 선택합니다. 서비스 구성 편집기는 클라이언트 구성 콘텐츠로 시작됩니다. 구성을 편집하고 도구 내에 저장할 수 있습니다.
서비스 구성 편집기에서 파일을 저장한 후 WCF 테스트 클라이언트는 파일이 외부에서 수정되었음을 알리는 경고 메시지를 표시하고 파일을 다시 로드할지 여부를 묻습니다.
예를 선택하면 "Client.dll.config" 탭의 구성 콘텐츠에 편집기에서 변경한 내용이 반영됩니다.
아니요를 선택하면 "Client.dll.config" 탭의 구성 콘텐츠가 변경되지 않고 수정된 콘텐츠가 원본 파일에 자동으로 저장됩니다.
기본 구성으로 복원
모든 변경 내용을 취소하고 기본 클라이언트 구성으로 복원하려면 왼쪽 창에서 구성 파일을 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴를 선택하여 기본 구성으로 복원합니다. 기본 구성 값이 로드되고 "Client.dll.config" 탭의 콘텐츠가 복원됩니다.
변경 내용 유효성 검사
저장된 변경 내용이 WCF 테스트 클라이언트에 로드되는 경우 구성에서 WCF 스키마에 대한 유효성을 검사합니다. 오류가 발견되면 오류 세부 정보를 표시하는 대화 상자가 표시됩니다.
프록시 생성, 이진 컴파일 또는 서비스 호출 중에 편집을 지원하는 메뉴 항목(즉, "편집 ...", "복원 ..."등)을 사용할 수 없습니다. 업데이트된 구성을 WCF 테스트 클라이언트에 로드할 때도 서비스 호출을 사용할 수 없습니다.
클라이언트 구성 유지
도구->옵션->클라이언트 구성 탭에는 서비스 시작 시 구성 항상 다시 생성 옵션이 포함되어 있으며, 기본적으로 사용하도록 설정되어 있습니다. 이 옵션은 WCF 테스트 클라이언트가 서비스를 로드할 때마다 최신 서비스 계약 및 서비스 App.config 파일을 기반으로 구성 파일을 다시 생성합니다.
WCF 서비스에 대한 클라이언트 구성을 편집했으며 이 업데이트된 파일을 항상 사용하여 서비스를 디버그하려는 경우 다시 생성 옵션을 선택 취소할 수 있습니다. 이렇게 하면 서비스를 업데이트하고 WCF 테스트 클라이언트를 다시 여는 경우에도 Client.dll.config 파일은 업데이트된 서비스를 기반으로 다시 생성된 파일이 아니라 이전에 업데이트한 파일입니다.
그러나 다시 생성된 프록시와 일치하도록 구성 파일을 편집해야 할 수 있습니다. 업데이트된 서비스로 인해 다시 생성된 프록시 및 구성 파일이 일치하지 않으면 서비스가 호출될 때 오류가 발생합니다.
주의
클라이언트 구성 파일을 수정하고 나중에 다시 사용하도록 선택한 경우 다음 위치에서 파일을 찾을 수 있습니다.
\문서 및 설정\[사용자 계정]\내 문서\테스트 클라이언트 프로젝트.
클라이언트 구성 파일에 저장된 업데이트된 자격 증명 정보는 이 폴더의 ACL(액세스 제어 목록)에 의해 보호됩니다.
서비스 추가, 제거 및 새로 고침
서비스 추가
WCF 테스트 클라이언트에 서비스를 추가하려면 파일>추가 서비스를 클릭합니다. 그런 다음 추가할 서비스의 URI(엔드포인트 주소)를 입력해야 합니다. 서비스의 주소는 mex 주소 또는 WSDL 주소일 수 있습니다.
최근 서비스 하위 메뉴에서 최근에 추가된 10개의 서비스 엔드포인트 목록을 찾을 수도 있습니다 . 이 중 하나를 선택하면 지정된 서비스가 WCF 테스트 클라이언트에 추가됩니다.
서비스 트리 내 서비스 프로젝트의 루트를 마우스 오른쪽 단추로 클릭하고 서비스 추가 를 선택하여 동일한 결과를 얻을 수도 있습니다.
프록시 생성, 이진 컴파일 또는 서비스 호출 중에 서비스 추가를 지원하는 메뉴 항목을 사용할 수 없습니다. 서비스 호출도 사용할 수 없습니다.
서비스 제거
제거할 서비스의 서비스 루트를 마우스 오른쪽 단추로 클릭하고 서비스 제거 를 선택하여 WCF 테스트 클라이언트에서 서비스를 제거합니다.
프록시 생성, 이진 컴파일 또는 서비스 호출 중에 서비스 제거를 지원하는 메뉴 항목을 사용할 수 없습니다. 서비스 호출도 사용할 수 없습니다.
서비스 새로 고침
WCF 테스트 클라이언트가 실행되는 동안 서비스가 변경되고 해당 서비스에 대한 WCF 테스트 클라이언트 구현이 up-to있는지 확인하려면 서비스의 서비스 루트를 마우스 오른쪽 단추로 클릭하고 서비스 새로 고침을 선택합니다. 새로 고침 후 서비스 상태가 다시 설정됩니다.
프록시 생성, 이진 컴파일 또는 서비스 호출 중에 서비스 새로 고침을 지원하는 메뉴 항목을 사용할 수 없습니다. 서비스 호출도 사용할 수 없습니다.
테스트 클라이언트에서 생성된 파일의 위치
기본적으로 WCF 테스트 클라이언트는 생성된 클라이언트 코드 및 구성 파일을 "%appdata%\Local\temp\Test Client Projects" 폴더에 저장합니다. 이 폴더는 WCF 테스트 클라이언트가 종료된 후 삭제됩니다. WCF 테스트 클라이언트에서 구성 파일을 수정하고 서비스를 시작할 때 Always Regenerate Config 옵션을 사용하지 않도록 설정하면 수정된 파일이 매핑(메타데이터-주소-파일 이름) XML 파일을 인덱스로 사용하여 "내 문서\테스트 클라이언트 프로젝트" 아래의 "CachedConfig" 폴더에 복사됩니다.
명령줄에서 WCF 테스트 클라이언트를 시작하거나, 스위치를 사용하여 /ProjectPath 생성된 파일을 저장하기 위해 원하는 새 경로를 지정하거나, 스위치를 사용하여 /RestoreProjectPath 기본 위치를 복원할 수도 있습니다. 구문은 다음과 같습니다.
wcfTestClient.exe /ProjectPath [desired location]
이 명령을 실행해도 WCF 테스트 클라이언트가 열리지 않습니다. 폴더 위치만 변경됩니다. WCF 테스트 클라이언트가 실행 중인지 여부에 관계없이 이 명령을 실행할 수 있습니다. WCF 테스트 클라이언트를 다시 시작할 때 새 위치가 적용됩니다. 위치 정보는 레지스트리 또는 "%appdata%\Local\temp\Test Client Projects" 폴더의 WcfTestClient.exe.option 파일에 저장할 수 있습니다.
WCF 테스트 클라이언트에서 지원하는 기능
다음은 WCF 테스트 클라이언트에서 지원하는 기능 목록입니다.
서비스 호출: 요청/응답 및 단방향 메시지입니다.
바인딩: Svcutil.exe에서 지원하는 모든 바인딩.
세션 제어.
메시지 계약입니다.
XML 직렬화
다음은 WCF 테스트 클라이언트에서 지원하지 않는 기능 목록입니다.
형식: Stream, Message, XmlElement, XmlAttribute, XmlNode, IXmlSerializable 인터페이스를 구현하는 형식, 관련된 XmlSchemaProviderAttribute 속성, 그리고 XDocument 및 XElement 형식과 ADO.NET DataTable 형식.
이중 계약입니다.
거래.
보안: CardSpace, 인증서 및 사용자 이름/암호입니다.
바인딩: WSFederationbinding, 컨텍스트 바인딩 및 Https 바인딩, WebHttpbinding(Json 응답 메시지 지원).
WCF 테스트 클라이언트 닫기
다음과 같은 방법으로 WCF 테스트 클라이언트를 닫을 수 있습니다.
파일 메뉴에서 끝내기를 클릭합니다. 또는 WCF 테스트 클라이언트 주 창에서 닫기를 클릭합니다. 또한 두 작업 모두 Visual Studio에서 WCF 테스트 클라이언트를 시작한 경우 WCF 서비스 자동 호스트를 종료하고 Visual Studio 디버깅 프로세스를 중지합니다.
알림 영역에서 WCF 서비스 호스트 아이콘을 마우스 오른쪽 단추로 클릭한 다음 끝내기를 클릭합니다 . 이렇게 하면 WCF 서비스 자동 호스트 및 WCF 테스트 클라이언트가 모두 종료되고 Visual Studio 디버깅 프로세스가 중지됩니다.