Debug
Thingworx 테스트 Tip (3) - 브라우저 개발자 도구 네트워크 기능을 이용한 Session 이벤트 제어와 서비스 이벤트 제어
Thingworx Mashup 개발 시 화면간 이동으로 triggering되는 Load 이벤트와 Session에 설정한 사용자 지정 속성의 이벤트, 서비스의 동작에 따른 이벤트의 연쇄작용으로 테스트가 어려운 경우가 있습니다.
이번 글에서는 브라우저 개발자 도구 네트워크 기능을 이용한 Session 이벤트 제어와 서비스 이벤트 제어를 알아보도록 하겠습니다.
Thingworx Session 객체를 통한 Session 이벤트 제어 # Session 값 조작에는 Thingworx 런타임객체 내의 Session 객체를 통해 Session 값 제어가 가능했지만,
Thingworx 테스트 Tip (2) - 브라우저 개발자 도구 콘솔을 통한 Thingworx Session 객체 접근 및 조작
Thingworx Mashup 개발 시 로직의 순서 제어를 위해 Thingworx의 Session에 설정한 사용자 지정 속성의 이벤트를 이용하는 작업이 필요한 경우가 있습니다.
하지만 필요한 이벤트를 trigger 하기 위해 선행되어야 하는 동작들이 있을 수 있으며, 그 동작들을 테스트를 통해 인위적으로 발생시키기 위해서는 많은 양의 테스트 서비스 작성 및 서비스/이벤트 바인딩이 수행되었다가 테스트 후에 원복 시켜야 하는 불편함이 발생하기도 합니다.
브라우저의 개발자 도구의 콘솔을 이용하여 Thingworx의 Session 객체에 접근하고, 객체의 내장 함수를 통해 Thingworx Session 의 특정 사용자 지정값을 get/set 하거나, 세션 값이 변경 될 경우에 발생하는 이벤트를 trigger 할 수 있습니다. 이는 별도의 테스트용 서비스 작성 및 서비스/이벤트 바인딩 작업을 줄여 작업 시간 단축을 기대할 수 있을 것입니다.
Thingworx 테스트 Tip (1) - 브라우저 개발자 도구 네트워크 기능을 이용한 로직 디버깅
Thingworx Mashup 개발에는 Mashup에 연결된 Thing의 서비스, 세션 변수, UI 간의 이벤트 바인딩으로 로직을 구성하고 서비스 input/output 바인딩의 작업을 필요로 합니다.
간단한 로직의 경우 몇번의 테스트 만으로도 서비스가 의도된 대로 동작하는지 확인할 수 있지만, 로직의 복잡도가 증가할 수록, 서비스의 개수가 많아질 수록, 바인딩된 이벤트가 많아질 수록 테스트의 난이도가 쉽게 증가합니다.
브라우저의 개발자 도구 기능을 이용하면 서비스에 하나하나 로그를 출력하는 것 대신 쉽게 문제 발생지점을 찾아낼 수 있으며, Thingworx 객체에 직접 접근하여 이벤트 제어를 통해 원하는 지점부터 로직을 테스트 할 수 있습니다.