2017-02-14 1 views
1

MQTT와 테스트를 처음 접했을 때 어떻게 작동하는지 잘 모르겠습니다.MQTT 클라이언트에 대한 테스트를 작성하는 방법은 무엇입니까?

나는 mqtt.js을 사용하고 있으며 몇 가지 기본 테스트를 작성하려고합니다. 어떻게 구조화해야합니까? 보다 구체적으로, MQTT 브로커를 조롱해야하나요, 아니면 실시간으로 연결할 수 있습니까? 그 연결이 HiveMQ와 같은 테스트 서비스 또는 기타 브로커에 있어야합니까?

내 설정 :

채팅 응용 프로그램을 구축 중입니다.

3 개의 도커 컨테이너. 1 브로커 (mosquitto, 2 클라이언트 사용)

클라이언트는 채팅에서 메시지를 입력하고 읽는 프런트 엔드 역할을하는 웹 페이지의 일부로로드되는 스크립트에서 mqtt.js을 사용합니다. 클라이언트 스크립트가로드되면,

클라이언트가 메시지를 보내고받을 수 있는지 확인했지만 적절한 테스트를 위해 앱을 작성하면 안구가 교차합니다.

테스트 용 모카/차이이 사용

하는 index.js => 'bundle.js'에 웹팩에 의해 번들

// index .js 
// gets bundled by wepback and loaded within a script tag in browser 

const mqtt = require('mqtt') 
const client = mqtt.connect('mqtt://localhost:9001') 

client.on('connect', function() { 
    console.log(process.env.NAME + ' has connected') 
    client.publish('welcome', 'this is a message') 
}) 

답변

1

는 일반적으로 다른 서비스를 테스트하고 싶지 않은 스크립트 태그 내에서 HTML에 의해로드되는, 그들은 자신의 테스트에 대한 책임이 있습니다. 코드가 수행하는 작업 단위 만 테스트하려고합니다.

  1. 가 올바르게 연결 실패
  2. 을 처리합니까

    수 확인 할 수있는 영역 ... :

    그래서 그래, 당신은 시험에 브로커/연결 응답 객체를 조롱 할 수 있습니다 올바르게 연결 성공을 처리합니까?

  3. 메시지 페이로드 (json?)를 올바르게 구문 분석합니까?
  4. 조작 된 페이로드를 올바르게 처리합니까?

등 .....

당신은, 그러나, 브로커 부하/스트레스 테스트를 작성할 수 있습니다. 나는 paho python 클라이언트를 사용하여 클러스터링을 테스트하고로드/스트레스 테스트를 수행합니다 (gatlin 사용).

관련 문제