Как упаковать план тестирования JMeter, созданный из кода, в банку с помощью Maven? - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь построить план тестирования JMeter на Java. Кажется, я не могу найти много документации по этому процессу, и все ресурсы, которые я могу найти, используют Maven для создания фляги. У меня нет опыта работы с Maven, и я не могу правильно настроить конфигурацию POM.

Основные моменты путаницы:

  • Если мой jar-файл находится в jmeter_home / lib / ext, создает ли такая зависимость, как ApacheJMeter_core и ApacheJMeter_http, предоставленную ситуацию?

  • Кажется, есть несколько плагинов Maven (maven-jar, maven-assembly) с аналогичной целью? Есть ли тот, который лучше всего соответствует моим потребностям?

  • Если я хочу сослаться на ресурс, отличный от java, за пределами jar (где-то еще в каталоге JMeter), требует ли это особого внимания при настройке POM?

  • Должен ли я сконфигурировать jar-файл как исполняемый или JMeter представляет собой скрипт для работы с lib / ext jar?

Любое понимание любого из этих пунктов будет с благодарностью.

Эти ресурсы помогли мне, но я потратил впустую часы, пытаясь решить эту, казалось бы, чертовски часть процесса ..

https://bitbucket.org/blazemeter/jmeter-from-code/

https://github.com/piotrbo/jmeterpoc

Если у кого-то есть больше ресурсов для построения планов тестирования JMeter в коде, ПОЖАЛУЙСТА, не стесняйтесь делиться!

Вот мой pom.xml, я понимаю, что, вероятно, есть некоторая избыточность в моем использовании плагинов и тому подобного, но это происходит, когда вы часами без единого шага атакуете одну и ту же проблему:)

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sweber</groupId>
    <artifactId>jmeter-plugin</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>
    <name>jmeter-plugin</name>
    <url>http://maven.apache.org</url>
    <build>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${project.build.directory}/lib
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>
                                com.sweber.Main
                            </mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>
                                        com.sweber.Main
                                    </mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>

    </build>

    <dependencies>

        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_http</artifactId>
            <version>5.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>kg.apc</groupId>
            <artifactId>jmeter-plugins-casutg</artifactId>
            <version>2.7</version>
        </dependency>

    </dependencies>

</project>

1 Ответ

0 голосов
/ 08 апреля 2019

Вам нужно добавить com.lazerycode.jmeter в POM.

https://github.com/jmeter-maven-plugin/jmeter-maven-plugin

Таким образом, вы добавляете это к своей поме:

<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.9.0</version>
<executions>
   <!-- Run JMeter tests -->
   <execution>
        <id>jmeter-tests</id>
        <goals>
            <goal>jmeter</goal>
        </goals>
   </execution>
   <!-- Fail build on errors in test -->
   <execution>
        <id>jmeter-check-results</id>
        <goals>
            <goal>results</goal>
        </goals>
   </execution>
</executions>

Кроме того, если вы собираетесь проводить тестирование IDE, а не просто выполнить mvn clean verify, вам придется распаковать зависимости Jmeter в целевой каталог.

Использование этого в корневом каталоге проекта: mvn com.lazerycode.jmeter: jmeter-maven-plugin: 2.9.0: jmeter

Эквивалентное утверждение для любого другого плагина mvn: mvn groupId: artifactId: версия: цель (на основе структуры POM плагина)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...