Configuring Plugin Manager to download from a local artifactory server

251 views
Skip to first unread message

sarahan...@googlemail.com

unread,
Sep 7, 2017, 5:10:20 AM9/7/17
to jmeter-plugins
Hi,

In order to be able to recreate testing environments, I'm looking at ensuring that the components for current JMeter 3.1 setup we are using can be recreated. The trigger for this was when the 3.1 Jmeter tarball disappeared from the mirror site we were using.

So I'm looking at artifactory for storing not only the JMeter tarball but for all of the plugins used. Now one way I can do this is to download each zip file and use steps in an ansible script to unzip them in the right place. However I'm looking at https://jmeter-plugins.org/wiki/PluginsManager/#Add-Your-Plugin-or-Repository and the configuration value jpgc.repo.address.

Is it possible to configure Plugin Manager to pull from a local artifactory repository and, if so, is there a specific way the files need to be laid out in the repository?

Many thanks, Ian

Vincent Daburon

unread,
Sep 7, 2017, 8:56:57 AM9/7/17
to jmeter-plugins
Hi,

The JSON format to declare a plugin is not difficult to understand.

Look at this url to see the declaration of plugins
https://github.com/undera/jmeter-plugins/tree/master/site/dat/repo and look at "various.json" file


For example, the websocket-sampler plugin
You declare the JMeter "component classes" (Sampler, GUI, Listener ...)
 
The "downloadUrl" is a url for the JMeter Plugin (in <JMETER_HOME>/lib/ext)
and the "libs" is the libraries dependences (in <JMETER_HOME>/lib)


The url "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/jetty-http/9.1.1.v20140108/jetty-http-9.1.1.v20140108.jar
could be adapted to Artifactory like
    http://myartifactoryhost:port/artifactory/repo/org/eclipse/jetty/jetty-http/9.1.1.v20140108/jetty-http-9.1.1.v20140108.jar
or http://myartifactoryhost:port/artifactory/artifactory/jmeter-plugin-repo/org/eclipse/jetty/jetty-http/9.1.1.v20140108/jetty-http-9.1.1.v20140108.jar

  {
    "id": "websocket-sampler",
    "name": "WebSocket Sampler by Maciej Zaleski",
    "description": "",
    "screenshotUrl": "",
    "helpUrl": "https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki",
    "vendor": "Maciej Zaleski",
    "markerClass": "JMeter.plugins.functional.samplers.websocket.WebSocketSampler",
    "componentClasses": [
      "JMeter.plugins.functional.samplers.websocket.WebSocketSampler",
      "JMeter.plugins.functional.samplers.websocket.WebSocketSamplerGui"
    ],
    "versions": {
      "1.0.2-SNAPSHOT": {
        "downloadUrl": "https://jmeter-plugins.org/files/thirdparty/JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar",
        "libs": {
          "jetty-http": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/jetty-http/9.1.1.v20140108/jetty-http-9.1.1.v20140108.jar",
          "jetty-io": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/jetty-io/9.1.1.v20140108/jetty-io-9.1.1.v20140108.jar",
          "jetty-util": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/jetty-util/9.1.1.v20140108/jetty-util-9.1.1.v20140108.jar",
          "websocket-api": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/websocket/websocket-api/9.1.1.v20140108/websocket-api-9.1.1.v20140108.jar",
          "websocket-client": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/websocket/websocket-client/9.1.1.v20140108/websocket-client-9.1.1.v20140108.jar",
          "websocket-common": "https://search.maven.org/remotecontent?filepath=org/eclipse/jetty/websocket/websocket-common/9.1.1.v20140108/websocket-common-9.1.1.v20140108.jar"
        }
      }
    }
},

Regards.

Vincent D.
Reply all
Reply to author
Forward
0 new messages