2017-09-20 11 views
0

저는 java maven 프로젝트가 있으며 gatling을 사용하여 mqtt broker의 성능을 테스트 할 수 있기를 원합니다. gatling은 mqtt 프로토콜을 직접 지원하지 않는다는 것을 이해합니다.부하 테스트를 위해 maven 프로젝트에서 gatling-mqtt 플러그인을 어떻게 사용할 수 있습니까?

나는 github에서 gatling-mqtt plugin을 발견했습니다. 내 maven 프로젝트에서이 플러그인을 어떻게 사용할 수 있는지 잘 모르겠습니다. 이것에 대한 기존의 메이븐 플러그인이나 의존성을 찾을 수 없습니다.

<plugin> 
    <groupId>net.alchim31.maven</groupId> 
    <artifactId>scala-maven-plugin</artifactId> 
    <version>3.2.2</version> 
</plugin> 
<plugin> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-maven-plugin</artifactId> 
    <version>2.2.4</version> 
    <executions> 
     <execution> 
      <id>performanceTests</id> 
      <goals> 
       <goal>execute</goal> 
      </goals> 
      <configuration> 
       <simulationClass>simulation.Publish</simulationClass> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

나는이 매우 유사한 시뮬레이션을 작성하려고 해요 : :

import io.gatling.core.Predef._ 
import org.fusesource.mqtt.client.QoS 
import scala.concurrent.duration._ 

import com.github.mnogu.gatling.mqtt.Predef._ 

class MqttSimulation extends Simulation { 
    val mqttConf = mqtt 
    // MQTT broker 
    .host("tcp://localhost:1883") 

    val scn = scenario("MQTT Test") 
    .exec(mqtt("request") 
    // topic: "foo" 
    // payload: "Hello" 
    // QoS: AT_LEAST_ONCE 
    // retain: false 
    .publish("foo", "Hello", QoS.AT_LEAST_ONCE, retain = false)) 

    setUp(
    scn 
    .inject(constantUsersPerSec(10) during(90 seconds))) 
    .protocols(mqttConf) 
} 

나는 다음의 pom.xml에 종속

<dependency> 
    <groupId>io.gatling.highcharts</groupId> 
    <artifactId>gatling-charts-highcharts</artifactId> 
    <version>2.2.5</version> 
</dependency> 
<dependency> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-core</artifactId> 
    <version>2.2.4</version> 
</dependency> 
<dependency> 
    <groupId>org.fusesource.mqtt-client</groupId> 
    <artifactId>mqtt-client</artifactId> 
    <version>1.12</version> 
</dependency> 

다음과 같은 플러그인을 추가했습니다

그런 시나리오를 작성하기 위해 mqtt 객체를 사용할 수 없습니다.
내가 얻은 오류는 '찾을 수 없음 : 값 mqtt'

+1

이것을 검토하고 수정할 수 있습니까? https://stackoverflow.com/help/how-to-ask –

+0

https://stackoverflow.com/help/on-topic 및 https : //를 읽어야합니다. stackoverflow.com/help/dont-ask – hardillb

+0

스택 오버플로에 오신 것을 환영합니다! 질문 [편집]하여 [지금까지 가지고있는 코드] (http://whathaveyoutried.com)를 보여주십시오. 문제가있는 코드의 윤곽선 (적어도 선호하는 [mcve])을 포함해야합니다. 그런 다음 특정 문제를 해결할 수 있습니다. 또한 [ask]를 읽어야합니다. –

답변

0

프로젝트에 포함 된 gatling-mqtt 프로젝트의 jar 파일을 만들었습니다. 그런 다음 mqtt 객체를 사용할 수있었습니다.

sbt를 다운로드하면 jar 파일을 만들 수 있습니다. 콘솔의 프로젝트 경로에서 '$ sbt assembly'명령을 실행하십시오. 이것은 당신을위한 항아리를 만들 것입니다.