เบเบฐเปเบเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเปเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเบเบปเบงเปเบซเบกเปเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฐเบฅเบดเบ. เปเบเปเบเบญเบ, เบเบตเปเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบฒเบเบเบฑเบเปเบกเปเบเปเบฅเบทเปเบญเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบ, เปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเบเบปเบเบชเบญเบเปเบชเบฑเปเบเบเบฝเบงเปเบเปเบเบทเปเบญเบเบเบฑเบเบเปเบญเบเบเบดเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบกเบฒเบฎเบญเบเบเบธเบเบเบญเบ multi-threaded autotest เปเบฅเปเบเปเบ Selenoid เปเบเบเปเปเบเปเปเบชเปเบฒเบเบเปเบงเบเบเบปเบเบฅเบฒเบเบเบฒเบ Allure เปเบเบซเบเปเบฒ GitLab เปเบฅเบฐเปเบเบเบตเปเบชเบธเบเบเปเปเปเบเปเบฎเบฑเบเปเบเบทเปเบญเบเบกเบทเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเปเบขเบฑเบ. เบเบตเปเบเบปเบเปเบเบญเบฐเบเบฒเบเบปเบเบชเบฒเบกเบฒเบเปเบเปเบเบตเบกเปเบเป.
เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเบญเบเปเบ?
เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบ autotests เปเบฅเบฐเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเปเป, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบขเปเบฒเบเบเบทเบเบซเบเบธเปเบเปเบเบทเปเบญเปเบซเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบเบเบซเบฅเบฑเบเบเบฒเบเปเบฅเปเบง, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเบเบฝเบงเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบเบฑเบ autotesting, เบเบฑเบเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบ autotests เปเบเบปเปเบฒเปเบเปเบเบเปเป. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเปเบเบฑเบเปเบเปเบฅเบขเบตเบเปเปเปเบเบเบตเป:
- Java,
- Maven,
- เปเบเปเบฅเบเบฝเบก,
- เปเบฒเบเปเบเบ+เปเบฒเบเปเบเบฑเบ 4,
- เบเบถเบเบเบนเบ,
- GitLab.
เปเบเบฑเบเบซเบเบฑเบเบเบธเบเบเบตเปเปเบเบเบชเบฐเปเบเบฒเบฐ? Java เปเบกเปเบเบซเบเบถเปเบเปเบเบเบฒเบชเบฒเบเบตเปเบเบดเบเบปเบกเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เปเบฅเบฐเบชเบฐเบกเบฒเบเบดเบเบเบตเบกเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบงเบปเปเบฒเบกเบฑเบ. Selenium เปเบกเปเบเบเบฒเบเปเบเปเปเบเบเบตเปเบเบฑเบเปเบเบ. เปเบเบ, เปเบเบเบฑเบเบเบฒเบชเบดเปเบเบญเบทเปเบเป, เบเบงเบเปเบเบตเปเบกเบเบงเบฒเบกเบซเบกเบฑเปเบเปเบเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบฒเบเบชเปเบงเบเบเบญเบเบเบฐเปเบเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบนเปเบกเบท.
เบเบฒเบเบเบปเบเบชเบญเบเปเบชเบฑเปเบเบเปเบฝเบง
เปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฐเบเปเป reinvent เบฅเปเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบญเบปเบฒเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบ repositories เบเปเบฒเบเปเปเบ GitHub เปเบเบฑเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบญเบเปเบฅเบฐเบเบฑเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบปเบงเปเบฎเบปเบฒเปเบญเบ. เบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบซเบผเบฑเบเบเบตเปเบกเบตเบซเบผเบฑเบเบเบญเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบตเปเบกเบตเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบขเบนเปเปเบเบซเบผเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบเปเบฅเบฐเบเบตเบกเบเปเบญเบเปเบเปเปเบญเบปเบฒเบฎเบนเบเบเบฒเบเบเปเบฒเปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบเบปเบเบชเบญเบเปเบเบกเบฑเบ, เบเบฑเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ. เบเบงเบโเปเบฎเบปเบฒโเปเบเปโเบเปเบฒโเปเบเปโเบกเบฑเบโเบเบฑเบโเบเบฐโเบเบฒโเบเบฒเบ GitLab-CIโ, เบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเปเบฒโเบเบปเบโเบเปเบฒโ:
- เปเบฅเปเบเบเบฐเบเปเบฒเบงเบฑเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบเบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเปเบเบเบเบฒเบ;
- เปเบเบตเบเบเบปเบงเปเบเบเปเปเบเปเปเบชเปเบฒเบ.
เปเบเบเบญเบเบเปเบฒเบญเบดเบเบกเบตเบเบฒเบเบเบปเบเบชเบญเบเบเปเปเบซเบผเบฒเบเบเบฒเบเปเบ, เปเบฅเบฐเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบทเบเบเปเบฒเปเบเบตเบเบขเบนเปเปเบเบชเบฒเบเบเปเปเบฒเบซเบเบถเปเบ. เบเบฐเบเบนเปเบเบฝเบงเบเบตเปเปเบฅเปเบเบขเบนเปเปเบ GitLab Windows runner เปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเปเบฒเบเบเบต: เบเบฒเบเบเบปเบเบชเบญเบเปเบเปเปเบซเบผเบ bench เบเบฒเบเบเบปเบเบชเบญเบเปเบเบปเบฒเบซเบผเบฒเบเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเบญเบเบเปเปเบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบ.
เปเบกเบทเปเบญเปเบงเบฅเบฒเบเปเบฒเบเปเบ, เบเปเบฒเบเบงเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฑเบเบกเบทเปเบเบฑเบเบซเบผเบฒเบเบเบทเปเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฅเปเบเบเบงเบเบกเบฑเบเปเบเบเบเบฐเบซเบเบฒเบ, เปเบกเบทเปเบญเบเบฒเบเปเบฅเปเบเปเบเบฑเบกเปเบงเบฅเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฐเบกเบฒเบเบชเบฒเบกเบเบปเปเบงเปเบกเบ. เบเบฑเบเบซเบฒเบญเบทเปเบเปเบเบฑเบเบเบฒเบเบปเบ:
- เบเบงเบเปเบฎเบปเบฒเบเปเปเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเปเบงเปเบฒเบเบฒเบเบเบปเบเบชเบญเบเบกเบตเบเบงเบฒเบกเปเบฑเปเบเบเบปเบ;
- เบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบผเบฒเบเบเบฑเปเบเบเบดเบเบเปเปเบเบฑเบเปเบเปเบเบทเปเบญเบเบเปเบญเบเบเบดเปเบเบเบฒเบเบเบฑเปเบ crashed เปเบ CI.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ autotests:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<skipTests>${skipTests}</skipTests>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.9</version>
</plugin>
</plugins>
เบเบปเบงเบขเปเบฒเบเบเบปเบเบฅเบฒเบเบเบฒเบ Allure
เบเบฒเบเปเบซเบผเบเบเบปเบงเปเบฅเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ (8 cores, 8 GB RAM, 1 thread)
เบเปเปเบเบตเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเปเบชเบฑเปเบเบเปเบฝเบง:
- เบเปเบฒเบเบเบตเปเบเบฐเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ;
- เบเบฒเบเปเบเบตเบเบเบปเบงเปเบ CI เปเบกเปเบเบเปเปเปเบเบเบเปเบฒเบเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบ;
- เบเบฒเบเบเบปเบเบชเบญเบเบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบเปเบเบดเปเบเบเบฑเบเปเบฅเบฐเบเบฑเบ;
- เบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฑเปเบเบเปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบฅเปเบ.
เบเปเปโเปเบชเบโเบเบญเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบฐโเบเบนเปโเบเบฝเบงโ:
- เปเบเป เปเบง เบฅเบฒ เบเบปเบ เบเบฒเบ เบเบตเป เบเบฐ เบชเปเบฒ เปเบฅเบฑเบ;
- เบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเบเบฒเบงเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ;
- เบเบฒเบโเบเปเบฒโเปเบเปโเบเบฑเบโเบเบฐโเบเบฒโเบเบญเบโเบเบฑเบโเปเบฅเปเบโเบเปเปโเปเบเปโเบเบฐโเบชเบดเบโเบเบดโเบเบปเบโ, เบเบฒเบโเบเปเบฒโเปเบเปโเบโเปโเปโเบฒโเบเบตเปโเบชเบธเบโ.
เบเบฒเบเบเบปเบเบชเบญเบเบเปเบฝเบงเบเบฑเบเบชเปเบญเบก JVM
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบนเปเบฅเบฅเบฐเบซเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบฐเบเบนเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบทเปเบเบเบฒเบ, เบงเบดเบเบตเบเบตเปเบเบฐเปเบเปเบเบเบตเปเบชเบธเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบกเปเบ.
เปเบเบตเบเปเบงเบต Selenoid เปเบเปเบเบทเบเปเบเบตเบเบเบปเบงเปเบเปเบเบทเปเบญเบเบเบตเปเบกเบต 32 cores เปเบฅเบฐ 24 GB เบเบญเบ RAM. เบเบญเบเปเบเบเบเปเบฒเบเบฑเบเปเบเปเบเบทเบเบเปเบฒเบเบปเบเบขเบนเปเบเบตเป 48 เบเบปเบงเบเปเบญเบเปเบงเบฑเบ - 1,5 threads เบเปเปเบซเบผเบฑเบเปเบฅเบฐเบเบฐเบกเบฒเบ 400 MB เบเบญเบ RAM. เบเบฑเปเบเบเบฑเปเบ, เปเบงเบฅเบฒเบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบเบทเบเบซเบผเบธเบเบฅเบปเบเบเบฒเบเบชเบฒเบกเบเบปเปเบงเปเบกเบเปเบเบฑเบ 40 เบเบฒเบเบต. เบเบฒเบเปเบฅเบฑเปเบเบเบฒเบเปเบฅเปเบเปเบเปเบเปเบงเบเปเบเปเปเบเบเบฑเบเบซเบฒเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบ: เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเปเปเปเบเปเปเบง 20-30 เปเบเบทเปเบญเบเบปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบงเปเบฒเบเบงเบเบกเบฑเบเปเบฅเปเบเปเบเปเบขเปเบฒเบเปเบฑเปเบเปเบ.
เบเปเปเบเบปเบเบเปเบญเบเบเปเบฒเบญเบดเบเบเบญเบเบเบฒเบเปเบเปเปเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบฑเบเปเบฅเปเบเบเบตเปเบกเบตเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบญเบเบเบฐเบเบนเปเบเบฐเบซเบเบฒเบ: เปเบ 4 cores เปเบฅเบฐ 8 GB เบเบญเบ RAM, เบเบฒเบเบเบปเบเบชเบญเบเปเบฅเปเบเบขเปเบฒเบเบซเบกเบฑเปเบเบเบปเบเปเบเบเปเปเปเบเบตเบ 6 threads. เบเปเปเปเบชเบเบเบตเบชเบญเบ: plugin เบชเปเบฒเบเบซเปเบญเบเบฎเบฝเบเบเบฑเบเปเบฅเปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบชเบฐเบเบฒเบเบฐเบเบฒเบ, เบเปเปเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบทเบเปเบเบตเบเบเบปเบงเบซเบผเบฒเบเบเบฒเบเปเบ.
เบชเปเบฒเบเบฑเบ! เบเปเปเบเปเบฒเบเบเบปเบงเปเบเบเบตเปเบกเบต tags เบเบฑเบ argLineเบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
<argLine>-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"</argLine>
โฆ
Mvn โDTAGS="@smoke"
เบเปเบฒเบเปเบฒเบเบเปเบฒเบเปเบเบฑเบเบเปเบงเบเบงเบดเบเบตเบเบตเป, plugin เบเบฐเบชเปเบฒเบ runners เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเบซเบกเบปเบ, เบเบฑเปเบเปเบกเปเบ, เบกเบฑเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเบซเบกเบปเบ, เบเปเบฒเบกเบเบงเบเบกเบฑเบเบเบฑเบเบเบตเบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเปเบฅเบฐเบชเปเบฒเบ JVM fork เบซเบผเบฒเบ.
เบกเบฑเบเบเบทเบเบเปเบญเบเบเบตเปเบเบฐเบเบดเปเบกเบเบปเบงเปเบเบเบตเปเบกเบตเปเบเบฑเบเปเบชเป tags เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ plugin, เปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป. เบงเบดเบเบตเบเบฒเบเบญเบทเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบปเบเบชเบญเบเบกเบตเบเบฑเบเบซเบฒเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป plugin Allure.
เบเบปเบงเบขเปเบฒเบเปเบงเบฅเบฒเปเบฅเปเบเบชเปเบฒเบฅเบฑเบ 6 เบเบฒเบเบเบปเบเบชเบญเบเบชเบฑเปเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ:
[INFO] Total time: 03:17 min
เบเบปเบงเบขเปเบฒเบเบเบญเบเปเบงเบฅเบฒเบเบปเบเบชเบญเบเบเปเบฒเบเปเบฒเบเปเบญเบเปเบเบฑเบเปเบเบเบเบปเบเปเบเบซเบฒ mvn... โDcucumber.options:
[INFO] Total time: 44.467 s
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ autotests:
<profiles>
<profile>
<id>parallel</id>
<build>
<plugins>
<plugin>
<groupId>com.github.temyers</groupId>
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
<version>5.0.0</version>
<executions>
<execution>
<id>generateRunners</id>
<phase>generate-test-sources</phase>
<goals>
<goal>generateRunners</goal>
</goals>
<configuration>
<tags>
<tag>${TAGS}</tag>
</tags>
<glue>
<package>stepdefs</package>
</glue>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<forkCount>12</forkCount>
<reuseForks>false</reuseForks>
<includes>**/*IT.class</includes>
<testFailureIgnore>false</testFailureIgnore>
<!--suppress UnresolvedMavenProperty -->
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.options="--plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm TagPFAllureReporter --plugin pretty"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบเบฅเบฒเบเบเบฒเบ Allure (เบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเปเบซเบกเบฑเปเบเบเบปเบเบเบตเปเบชเบธเบ, 4 reruns)
เบเบฒเบเปเบซเบผเบเบเบปเบงเปเบฅเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ (8 cores, 8 GB RAM, 12 threads)
Pros:
- เบเบฒเบเบเบดเบเบเบฑเปเบเบเปเบฒเบ - เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเปเบเบตเปเบก plugin;
- เบเบงเบฒเบกโเบชเบฒโเบกเบฒเบโเปเบโเบเบฒเบโเบเปเบญเบกโเบเบฑเบโเบเบฐโเบเบดโเบเบฑเบโเบเปเบฒโเบเบงเบโเบซเบผเบฒเบโเบเบญเบโเบเบฒเบโเบเบปเบโเบชเบญเบโ;
- เบเบฒเบเปเบฅเบฑเปเบเบเบงเบฒเบกเบเบปเบเบเบปเบงเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเปเบเบญเบเปเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบต 1.
Cons:
- เบเปเบญเบเบเบฒเบเบซเบผเบฒเบ OS/containers;
- เบเบฒเบเบเปเบฅเบดเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเบนเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบชเปเบญเบก;
- เบเบฑเปเบเบญเบดเบเปเบกเปเบเปเบเบปเปเบฒเปเบฅเปเบงเปเบฅเบฐเบเปเปเบฎเบญเบเบฎเบฑเบเบญเบตเบเบเปเปเปเบ.
เบงเบดเบเบตเบเบฒเบเปเบญเบปเบฒเบเบฐเบเบฐเบเบงเบฒเบกเบเปเปเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบ
เบเปเบญเบเบเบฑเปเบเบเบปเบเบชเบญเบเปเบกเปเบเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เบกเบฑเบเบเปเปเปเบเบเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบฒเบเบงเบเบเบฒเบเบเบปเบเบชเบญเบ flacky. เบกเบฒเบฎเบญเบเบเบนเปเปเบ
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ autotests:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
โฆ.
<rerunFailingTestsCount>2</rerunFailingTestsCount>
โฆ.
</configuration>
</plugin>
เบซเบผเบทเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ: mvn โฆ -Dsurefire.rerunFailingTestsCount=2 โฆ
เปเบโเบเบฒโเบเบฐโเปเบเบฑเบโเบเบฒเบโเปเบฅเบทเบญเบโ, เบเบฑเปเบโเบเบฒเบโเปเบฅเบทเบญเบ Maven เบชเปเบฒโเบฅเบฑเบโเบชเบฐโเบเบดเบ PowerShell (PS1โ)โ:
Set-Item Env:MAVEN_OPTS "-Dfile.encoding=UTF-8 -Dsurefire.rerunFailingTestsCount=2"
Pros:
- เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบชเบเปเบงเบฅเบฒเปเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเปเบซเบกเบฑเปเบเบเบปเบเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบเบฑเบเบเปเบญเบ;
- เบเบฑเบเบซเบฒเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบเบเบญเบ bench เบเบฒเบเบเบปเบเบชเบญเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบซเบผเบธเบเบเปเบญเบ.
Cons:
- เบเปเปเบเบปเบเบเปเบญเบเบฅเบญเบเบชเบฒเบกเบฒเบเบเบฒเบเปเบเป;
- เปเบงเบฅเบฒเปเบฅเปเบเปเบเบตเปเบกเบเบถเปเบ.
เบเบฒเบเบเบปเบเบชเบญเบเบเบฐเบซเบเบฒเบเบเบฑเบ Cucumber 4 เบซเปเบชเบฐเบซเบกเบธเบ
เบเปเบฒเบเบงเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเบตเปเบกเบเบถเปเบเบเบธเบเปเบกเบทเป. เบเบงเบเปเบฎเบปเบฒเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฅเบฑเปเบเบเบฒเบเปเบฅเปเบเบญเบตเบเบเบฑเปเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฒเบเบเบปเบเบชเบญเบเบซเบผเบฒเบเปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบเบปเปเบฒเปเบเปเบเบเปเปเบเบฒเบเบเบฐเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. เบเบฑเบเปเบเบชเปเบฒเบเบฑเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบฐเบฅเบดเบเบเบญเบเบเบฑเบเปเบฅเปเบเปเบเปเปเบงเบฅเบฒเบเบปเบเปเบเบตเบเปเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฅเปเบเบเบฐเบซเบเบฒเบเปเบเบเปเบเป plugin Maven.
เปเบโเปเบงโเบฅเบฒโเบเบฑเปเบ, Cucumber 4 เปเบเปโเบเบทเบโเบเปเบญเบโเบญเบญเบโเบกเบฒโเปเบฅเปเบง, เบชเบฐโเบเบฑเปเบโเบเบงเบโเปเบฎเบปเบฒโเปเบเปโเบเบฑเบโเบชเบดเบโเปเบโเบเบตเปโเบเบฐโเบเบฝเบโเปเบซเบกเป kernel เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบชเบฐโเบเบฑเบโเบเบตเป. เปเบเบเบฑเบเบเบถเบเบเบฒเบเบเปเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบทเบเบชเบฑเบเบเบฒเบงเปเบฒเปเบเบตเบเบเบปเบงเบเบฐเบซเบเบฒเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบเบฐเบเบนเป. เปเบเบเบฒเบเบเบดเบเบชเบฐเบเบต, เบเบตเปเบเบงเบเบเบฐเปเบเบฑเบ:
- เปเบฅเบฑเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ autotests เบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเปเบฒเบเบงเบเบเบญเบเบเบฐเบเบนเป;
- เบฅเบปเบเบฅเปเบฒเบเบเบฒเบเบชเบนเบเปเบชเบเปเบงเบฅเบฒเปเบเบเบฒเบเบชเปเบฒเบเบเบฑเบเปเบฅเปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐ autotest.
เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบซเบผเบฒเบเบเบฐเบเบนเปเปเบเปเบเบฒเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเบเปเปเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบ. Cucumber 4 เบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบฅเบฐเบเบปเบเปเบเบซเบปเบงเบเปเปเบเบตเปเบญเบธเบเบดเบเบเบปเบเบเบฑเปเบเปเบเปเบเบปเปเบเบเบปเบเบเบปเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบชเบดเปเบเบเบตเปเบเบปเบเบเบตเปเบเบปเปเบงเปเบเปเบเปเบเบทเบเบเปเบฝเบเปเบเบฑเบเบเบปเบงเปเบ ThreadLocal.
เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเปเบเบเปเบเบเปเบเป Idea refactoring tools เปเบกเปเบเปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบชเบฐเบเบฒเบเบเบตเปเบเบตเปเบเบปเบงเปเบเปเบเปเบเบทเบเบเบฝเบเบเบฝเบ (เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบเบดเปเบเบชเปเบฒเบฅเบฑเบ null). เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบก plugin Allure เบเบฑเบเบเปเบฒเบเบฑเบเบเบฒเบเบเบญเบ Junit Runner class.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ autotests:
<profile>
<id>parallel</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<useFile>false</useFile>
<testFailureIgnore>false</testFailureIgnore>
<parallel>methods</parallel>
<threadCount>6</threadCount>
<perCoreThreadCount>true</perCoreThreadCount>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบเบฅเบฒเบเบเบฒเบ Allure (เบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเปเบซเบกเบฑเปเบเบเบปเบเบเบตเปเบชเบธเบ, 5 reruns)
เบเบฒเบเปเบซเบผเบเบเบปเบงเปเบฅเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ (8 cores, 8 GB RAM, 24 threads)
Pros:
- เบเบฒเบเบเปเบฅเบดเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเบฒ;
- เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบทเปเบเปเบกเบทเบญเบเบเบฒเบเปเบเบ - เบเปเปเบกเบตเปเบเบทเปเบญเบเบกเบทเปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบเปเบญเบเบเบฒเบ;
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฅเปเบเบซเบผเบฒเบเบเบงเปเบฒ 6 threads เบเปเปเบซเบผเบฑเบเบเบญเบเปเบเปเบเบเปเบเบต.
Cons:
- เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบซเปเปเบเปเปเบเบงเปเบฒเบฅเบฐเบซเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบเบฐเบเบนเป;
- เปเบเบเปเบเบปเปเบฒเปเบเบตเปเบกเบเบถเปเบ.
เบฅเบฒเบเบเบฒเบ Allure เปเบเบซเบเปเบฒ GitLab
เบซเบผเบฑเบเบเบฒเบเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบเบฐเบเบนเป, เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเปเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบปเบเบฅเบฒเบเบเบฒเบ. เปเบเปเบงเบฅเบฒเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบญเบฑเบเปเบซเบฅเบเปเบเปเบฅเบฐเบเบปเบเบฅเบฒเบเบเบฒเบเปเบเบฑเบเบชเบดเปเบเบเบฐเบเบดเบเปเบชเป GitLab, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบงเปเบซเบฅเบเบกเบฑเบเปเบฅเบฐเบเบญเบเบกเบฑเบเบญเบญเบ. เบกเบฑเบเบเปเปเบชเบฐเบเบงเบเบซเบผเบฒเบเปเบฅเบฐเปเบเปเปเบงเบฅเบฒเบเบปเบ. เปเบฅเบฐเบเปเบฒเบเบนเปเบญเบทเปเบเบเปเบญเบเบเบฒเบเปเบเบดเปเบเบเบปเบเบฅเบฒเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบปเบเปเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฐเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบงเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเปเบฎเบฑเบเบเปเบฒเบเบถเบเบเปเบฒเปเบซเบฑเบเปเบงเบเบถเปเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเบเบฒเบเปเบเปเปเบ - เบซเบเปเบฒ GitLab . เบเบตเปเปเบกเปเบเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบเบปเบงเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบญเบญเบเบเบฒเบเบเปเบญเบเปเบเบเบธเบเบฅเบธเปเบเบซเบผเปเบฒเบชเบธเบเบเบญเบ GitLab. เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฑเบเปเบเปเบชเบฐเบเบฒเบเบเบตเปเบชเบฐเบเบดเบเบขเบนเปเปเบเปเบเบตเบเปเบงเบตเบเบญเบเบเปเบฒเบเปเบฅเบฐเปเบเบปเปเบฒเบซเบฒเบเบงเบเบกเบฑเบเบเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเบเบปเบ.
เบเบฒเบเปเปเบฒเบเปเบเบฑเบเปเบปเบเบเบญเบเบเบปเบเบฅเบฒเบเบเบฒเบ Allure เปเบเปเบเบทเบเบเปเบฒเบเบขเบนเปเปเบเปเปเบฒ GitLab. เบชเบฐเบเบฃเบดเบเปเบเบทเปเบญเบเบณเปเบเปเบเบปเบเบฅเบฒเบเบเบฒเบเปเบเปเบชเปเปเปเบฒ GitLab - เปเบ Windows PowerShell (เบเปเบญเบเบเบตเป, เบเปเบฒเบเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบ autotests):
New-Item -ItemType directory -Path $testresulthistory | Out-Null
try {Invoke-WebRequest -Uri $hst -OutFile $outputhst}
Catch{echo "fail copy history"}
try {Invoke-WebRequest -Uri $hsttrend -OutFile $outputhsttrnd}
Catch{echo "fail copy history trend"}
mvn allure:report
#mvn assembly:single -PzipAllureReport
xcopy $buildlocationtargetsiteallure-maven-plugin* $buildlocationpublic /s /i /Y
เปเบชเบฑเปเบเบเบฒเบเบฅเบธเปเบกเปเบกเปเบเบซเบเบฑเบ
เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบเบดเบเบเปเบฝเบงเบเบฑเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบฅเบฐเบซเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบ Thread เปเบเบเบญเบ autotest เปเบเบ, เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบญเบเปเบกเปเบเบเบฐเปเบเปเบ - เบเปเบงเบ Cucumber 4 เบกเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบกเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเปเบเบตเปเบกเบเปเบฒเบเบงเบเบเบฐเบเบนเปเบเบตเปเปเบเบตเบเบเบปเบงเบเปเบญเบกเบเบฑเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเปเบงเบเบงเบดเบเบตเบเบฒเบเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเป, เบเปเบฒเบเบฒเบกเปเบเบเบฑเบเบเบธเบเบฑเบเบเบฒเบเปเบเบฑเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเปเบเบทเปเบญเบเบเบฑเบเบเบตเปเบกเบต Selenoid เปเบฅเบฐ bench เบเบปเบเบชเบญเบ.
เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเปเบฅเปเบ autotests เปเบเบเบฐเบเบนเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฒเบเบเปเบฅเบดเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบซเปเบซเบเปเบญเบเบเบตเปเบชเบธเบเบเปเบงเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบ. เบเบฑเปเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฒเบเบเบฒเบ, เบซเบปเบงเบเปเปเบชเบญเบเปเบเบปเปเบฒเบเปเปเปเบเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเปเบฅเบฑเปเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบซเบผเบฒเบเบเบงเปเบฒ 2 เบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ, เปเบเบดเปเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฐเบกเบต 200 reruns เปเบเบเบฐเบกเบฒเบ 5 เบเบฒเบเบต. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบฎเบฑเบเบเปเบฒเบเบถเบเบเปเบฒเปเบซเบฑเบเบขเปเบฒเบเปเบงเบงเบฒเบเบฒเบเบเบงเบเปเบเบปเบฒ, เปเบฅเบฐ, เบเปเบฒเบเปเบฒเปเบเบฑเบ, เบเปเบฝเบเปเบเบเปเบฅเบฐเปเบฎเบฑเบเบเปเปเบฒเบเบฑเปเบเบเบญเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com