2016-12-16 2 views
1

Ich versuche, die Allure Reporting für meine Selenium-Framework zu implementieren. Es verwendet kein Testframework wie TestNG oder JUnit. Im Grunde brauche ich nicht TestNG oder Junit für diese Angelegenheit, da ich das gesamte Framework behandle, das die Daten von einem Excelblatt erhält.Setup Allure Bericht für Selen

Momentan führe ich alle Testschritte mit Java Reflection aus. Testschritte sind im Grunde einfache Java-Methoden. Ich habe sie innerhalb einer Klasse definiert und sie für jeden Testfall einzeln ausgeführt.

Beispiel:

[TC_0001, login, createUser, ModifyUser, deletUser] 
      [TC_0002, createUser] 

jeden Testfall ausführen - TC_0001 von jedem Test Schritt nacheinander ausführt.

Testcase Id - TC_0001 Schritt 1 - create Schritt 2 - modifyUser Schritt 3 - deletUser

ich diese Methoden in einer Java-Klasse definiert haben und Planung @Step Anmerkung für Allure Bericht hinzuzufügen. Ich frage mich, ob das überhaupt möglich ist.

Beispiel

@Step 
    public void login(String username, String password) { 
     //TestSetup.test.log(LogStatus.INFO, "This step shows the Login Function"); 
     Log.info("Executing the Login method"); 
    } 

... 

auf der Allure Dokumentation der Suche und berichten Beispiel ich bin für Prüfberichten interessiert es in meinem Rahmen umzusetzen.

Allerdings kann ich es nicht tun. Kann ich das ohne TestNG oder Junit Adapter erreichen? Bitte beachten Sie meine pom.xml unter

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>io.qameta</groupId> 
     <artifactId>opensource-parent</artifactId> 
     <version>1.3</version> 
    </parent> 

    <artifactId>allure-junit-example</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <properties> 
     <allure.version>1.4.23.HOTFIX1</allure.version> 
     <aspectj.version>1.8.9</aspectj.version> 
     <compiler.version>1.7</compiler.version> 
    </properties> 

    <name>Allure JUnit Example</name> 
    <description>Allure JUnit and WebDriver Usage Example</description> 

    <dependencies> 
    <!-- Allure Junit Adaptor --> 
     <dependency> 
      <groupId>ru.yandex.qatools.allure</groupId> 
      <artifactId>allure-junit-adaptor</artifactId> 
      <version>${allure.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.8-beta4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.10-FINAL</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/log4j/log4j --> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.53.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
       <configuration> 
        <argLine> 
         -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" 
        </argLine> 
        <properties> 
         <property> 
          <name>listener</name> 
          <value>ru.yandex.qatools.allure.junit.AllureRunListener</value> 
         </property> 
        </properties> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjweaver</artifactId> 
         <version>${aspectj.version}</version> 
        </dependency> 
       </dependencies> 
      </plugin> 

      <!--Needed only to show reports locally. Run jetty:run and 
      open localhost:8080 to show the report--> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.2.10.v20150310</version> 
       <configuration> 
        <webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory> 
        <stopKey>stop</stopKey> 
        <stopPort>1234</stopPort> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <!-- Allure Reporting --> 
    <reporting> 
     <excludeDefaults>true</excludeDefaults> 
     <plugins> 
      <plugin> 
       <groupId>ru.yandex.qatools.allure</groupId> 
       <artifactId>allure-maven-plugin</artifactId> 
       <version>2.5</version> 
      </plugin> 
     </plugins> 
    </reporting> 

</project> 

Ich habe Maven sauber Website Anlegestelle installieren: laufen, aber nicht in der Lage, den Bericht zu erhalten. Ich bin mir sicher, dass mir viele Dinge fehlen und jede Hilfe wird geschätzt.

Antwort

0

In Kürze NO. Das Allure Reporting-Framework funktioniert mit jedem Test-Framework, für das die Entwickler einen Adapter definiert haben. Dies ist eine kleine Bibliothek, die an bestimmte Test-Frameworks angehängt ist und weiß, wie Sie Testinformationen in XML extrahieren können.

Weitere Informationen zum Einrichten des Tests mit einem der verfügbaren Frameworks finden Sie unter - https://github.com/allure-framework/allure1/wiki.

Soweit Ihre pom.xml geht, scheinen Sie den allure-junit-Adapter ohne Version verwendet zu haben, also $ {allure.version}. Wie erwarten Sie, dass die Abhängigkeit ohne eine Version gelöst wird?

In Ihrem Beispiel gibt es @Step Annotation, die definitiv von Reiz ist, aber in Ermangelung von @ Test von entweder TestNg oder jUnit oder für jede Sache, die angibt, dass die Methode ein TEST ist, wird Allure nicht sein Der Report kann generiert werden, da er nicht in der Lage ist, anzugeben, für welche Methoden Testinformationen in XML extrahiert werden sollen.

Sobald Sie den entsprechenden Adapter implementiert haben, können Sie - mvn clean test site, und wenn der Testlauf beendet ist, gehen Sie einfach zu dem Site-Verzeichnis in Ihrem Projekt, in diesem öffnen Sie den Ordner, der nach welchem ​​Adapter Sie benannt ist implementiert, hier finden Sie index.html, öffnen Sie dies in einem Browser und Sie werden in der Lage sein, den Bericht mit den Ergebnissen ohne laufenden Steg zu sehen.

Verwandte Themen