소프트웨어에서 네트워크 인터럽트 테스트
-
09-06-2019 - |
문제
Windows에 여러 번 네트워크 연결 끊김을 테스트하고 싶은 네트워크 C++ 프로그램이 있습니다.내 옵션은 무엇입니까?
현재 나는:
- 실제로 내 컴퓨터 뒷면에서 네트워크 선을 분리하는 중
- ipconfig /release 사용
- 사용하여 스포츠 소켓을 완전히 닫는 프로그램
하지만 이러한 방법 중 어느 것도 나에게 이상적이지 않으며 네트워크 문제를 더 쉽게 에뮬레이트하고 싶습니다.
때로는 연결이 실패하고 때로는 소켓 읽기가 실패하고 때로는 소켓 쓰기가 실패하고 싶습니다.이러한 유형의 문제를 에뮬레이션하는 데 사용할 수 있는 유틸리티가 있다면 좋을 것입니다.
또한 이렇게 에뮬레이트된 불량 네트워크가 가동되는 동안 일부 자동화된 단위 테스트를 구축할 수 있다면 좋을 것입니다.
해결책
네트워크 계층을 추상화하고 적절한 지점에 흥미로운 오류 이벤트를 주입하는 단위 테스트를 수행할 수 있습니다.
다른 팁
내가 생각할 수 있는 가장 가까운 것은 비슷한 일을 하는 것입니다. VEDekstop 슌라에서..
데이터베이스 애플리케이션 테스트에서 높은 대기 시간과 낮은 대역폭 시뮬레이션
Shunra VE Desktop Standard는 다양한 현재 및 잠재적 네트워크 조건에서 애플리케이션을 데스크탑에서 직접 테스트할 수 있도록 광역 네트워크 링크를 시뮬레이션하는 Windows 기반 클라이언트 소프트웨어 솔루션입니다.
소켓을 관리하는 데 사용하는 라이브러리 클래스(MFC를 사용하는 경우 아마도 CAsyncSocket 또는 CSocket)를 서브클래싱하고, 실패를 테스트하려는 메서드를 재정의하고, 재정의에 적절한 테스트 코드를 삽입할 수 있습니다.
사용할 수 있는 몇 가지 방법이 있으며 테스트하려는 수준에 따라 다릅니다.기능 수준의 경우 XUNIT 테스트 프레임워크를 사용하여 응답을 모의할 수 있습니다.소프트웨어 수준에서는 로컬 프록시 서버를 사용하여 연결을 제어할 수 있습니다.