10
votes

Exemple de test Junit Apache Qpid (AMQP) autonome Apache (AMQP)

Quelqu'un a-t-il un exemple d'utilisation de Apache Qpid dans un test STANDALONE JUNIT.

Idéalement, je veux pouvoir créer une file d'attente sur la mouche que je peux mettre / obtenir des msgs dans mon test. Donc, je ne teste pas Qpid au sein de mon test, je vais utiliser des tests d'intégration pour cela, mais être très utile pour tester les méthodes de traitement des msgs avec une charge de services.


0 commentaires

4 Réponses :


4
votes

Le projet QPID comporte un certain nombre de tests utilisant un courtier intégré pour les tests. Bien que nous utilisions un cas de base pour gérer l'arrêt de démarrage, vous pouvez effectuer ce qui suit pour intégrer simplement un courtier dans vos tests: xxx

puis pour la connexion que vous devez spécifier le concepteur du courtier. I.e. Borkererlist = 'vm: // 1'


1 commentaires

TransportConnection et support pour VM: // ont été supprimés dans la révision 1143874 (2011-07-07; QPID SVN). Donc, cela ne fonctionne plus :-(



1
votes

Le meilleur que je puisse comprendre était: xxx

avec une URL de: xxx

la grande douleur est avec la configuration et l'autorisation . Milmage peut varier.


1 commentaires

TransportConnection et support pour VM: // ont été supprimés dans la révision 1143874 (2011-07-07; QPID SVN). Donc, cela ne fonctionne plus :-(



6
votes

Voici la méthode de configuration que j'utilise pour Qpid 0,30 (je l'utilise dans un test de SPOCK mais doit être portable à Java of Junit sans problème). Ceci prend en charge la connexion SSL, la gestion HTTP et utilise uniquement le démarrage en mémoire. Le temps de démarrage est sous-seconde. La configuration pour QPID est gênante par rapport à l'utilisation de ActiveMQ dans le même but, mais Qpid est conforme à l'AMQP et permet un test optimal et neutre pour les clients AMQP (évidemment, l'utilisation d'échanges ne peut pas imiter la mise en œuvre de lapbitmqs, mais à des fins de base, mais à des fins de base suffisantes)

D'abord j'ai créé un test minimal-config.json que j'ai mis dans le dossier Ressources: p> xxx pré>

i J'ai aussi besoin de créer un fichier KeyStore.jks pour localhost, car le courtier Qpid et le client rabbbitmq n'aiment pas communiquer sur un canal non crypté. J'ai également ajouté un fichier appelé "passwd" dans "INTEGTEST / RESOURS / ETC" qui a ce contenu: p>

invité: mot de passe p>

Voici le code de la configuration du test de l'unité:

Variables de niveau de classe: H2>
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUri("amqp://guest:password@localhost:${amqpPort}");
        factory.useSslProtocol()

        log.info('about to make connection')


        def connection = factory.newConnection();
        //get a channel for sending the "kickoff" message
        def channel = connection.createChannel();


1 commentaires

Merci. Cela a fonctionné, ce qui pourrait aider les autres à aider les autres est que si vous souhaitez utiliser l'interface de gestion HTTP, mais l'interface utilisateur est cassée (juste un bouton de connexion sans connexion de connexion et de mot de passe), il vous suffit de ajouter à votre dossier de ressources un dojo- 1.9.1 Distribution



3
votes

Ma solution sur Qpid-courtier @ 6.1.1, ajoutez ci-dessous à pom.xml xxx

fichier de configuration Qpid comme: xxx

code pour démarrer le serveur Qpid xxx

code pour arrêter le serveur qpid xxx

puisque j'utilise le mode Anonyonous, le client devrait Faites comme suit: xxx

c'est tout. Un peu plus sur la façon de le faire sur une autre version.

Vous pouvez télécharger un package binaire Qpid-courtier à partir d'un site officiel. Après le téléchargement et l'UNZIP, vous pouvez l'exécuter pour tester en tant que serveur contre votre cas. Après votre case Connected Server bien, utilisez Commandline pour générer ou simplement copier le fichier de configuration initial dans qpid_work, supprimer inutile ID déposé et utiliser pour le serveur intégré comme ci-dessus.

La chose la plus compliquée est l'authentification. Vous pouvez choisir un mode simple mais vous devez ajouter le nom d'utilisateur et le mot de passe dans la configuration initiale. J'ai choisi le mode anonyme qui nécessite un petit code lors de la connexion. Pour un autre mode d'authentification, vous devez spécifier le fichier de mot de passe ou le magasin Key / Cert, que je n'ai pas essayé.

Si cela ne fonctionne toujours pas, vous pouvez lire le code de classe Qpid-Borker et principal dans Qpid-courtier artefact qui montrent comment fonctionne la ligne de commande pour chaque paramètre.


0 commentaires