• LiveTest Version 0.x

    von am 14. Februar 2011

    Wir hatten ja letzte Woche die Diskussion, wann man mit einem Open-Source-Projekt an die Öffentlichkeit gehen sollte. Eigentlich wollte ich ja noch eine Weile warten, aber irgendwie habt ihr mich doch überzeugt schon mal den ersten Prototypen zu veröffentlichen. Eigentlich war das Tool schon seit Wochen da, man hätte nur mal auf GitHub schauen müssen. Aber hier erst mal der Link: https://github.com/phphatesme/LiveTest

    Da wir die Version 1.0 noch nicht erreicht haben ist alles im Fluss. Die Implementierung kann aber schon ein paar Dinge. Aber vielleicht erzählen wir noch mal ganz kurz, was das Tool können soll. In einem Satz ausgedrückt: Ich hinterlege eine Liste von URLs und LiveTest lässt eine definierte Anzahl von Tests drüberlaufen. Ein Test kann so etwas wie das Prüfen auf schließendes <body>-Tag sein. Aber auch die Kontrolle des HTTP-Status-Codes. Diese Tests und ein paar weitere existieren natürlich auch schon.

    Das Tool positioniert sich also oberhalb von funktionalen Tests. Es ist für all diejenigen, die keine hohe Testabdeckung, hergestellt durch funktionale- oder Unit-Test, in ihrer Software besitzen. Es gibt einen schnellen Überblick, ob etwas kaputt ist oder nicht. Es zeigt einem nicht, was nicht funktioniert.

    Wichtig für das Tool war uns, dass es besonders einfach ist eigene Tests zu verfassen und Erweiterungen zu schreiben. Ich glaube, das ist uns auch gelungen. Beide Interfaces sind relativ schlicht. Erfahrene Programmierer sollten sie intuitiv bedienen können, allen anderen werde ich die Tage eine Anleitung schreiben.

    Vielleicht jetzt aber noch mal den Stand, an dem wir sind. Das Projekt ist als Rapid Prototype gestartet. Ich habe also einfach mal drauf los programmiert. Dies bedeutet, dass Unit-Tests möglichst bald nachgereicht werden müssen. Das wird wohl auch der Hauptfokus, neben der Dokumentation, in der nächsten Zeit sein. Die ersten paar Testfälle sind auch implementiert:

    • Prüfen auf der (Nicht-)Vorhandensein eines Textes auf einem HTML-Dokument
    • Prüfen auf die (Nicht-)Existenz eines regulären Ausdrucks auf ein HTML-Dokument
    • Größe eines HTML-Dokument
    • XPath-Prüfung auf ein HTML-Dokument
    • Prüfen auf HTTP-Status-Code

    Ist noch nicht viel, aber ein guter Anfang. Interessant bei den Erweiterungen ist wohl die Reporting-Möglichkeit. Bis jetzt können Textdokumente und HTML-Seiten (Beispiel) erstellt werden. Beides kann bei Fehlern gemailt werden. Prinzipiell ist aber alles in diesem Projekt eine Extension. So zum Beispiel auch das Hilfe-System auf der Kommandozeile.

    Die Installation soll bald auf den PEAR-Installer aufbauen. Leider muss momentan noch auf eine manuelle Installation direkt aus dem Repository zurückgegriffen werden. Nach der Installation bekommt man dann mit einem Aufruf wie LiveTest --testsuite testsuite.yml ein solches Ergebnis:

    LiveTest 1.0.0 by Nils Langner & Mike Lohmann
    
      Default Domain  : http://www.example.com
      Number of Tests : 4
    
      Running: *f*f
    
         Url        :  http://www.stern.de
         Test       :  TextPresent_body
         Test Class :  LiveTest\TestCase\General\Html\TextPresent
         Status     :  Failed
         Message    :  The given text "unpresent_text" was not found.
    
         Url        :  http://www.phphatesme.com
         Test       :  TextPresent_body
         Test Class :  LiveTest\TestCase\General\Html\TextPresent
         Status     :  Failed
         Message    :  The given text "unpresent_text" was not found.
    
      Tests: 4 (failed: 2, error: 0) - Duration: 1 second(s)

    Jetzt fragen sich hoffentlich einige, wie sie helfen können. Sucht es euch einfach aus. Es sind genügend mögliche Features im Issue-Tracker. Fehler finden, Ideen haben oder Unit-Tests schreiben sind auch tolle Sachen. Feedback zum Code. Auf euch angepasste Testfälle … toll. Einfach das Tool nutzen und glücklich sein.

    Es würde mich also ehrlich freuen, wenn ihr Feedback gebt, mitmacht  und den Issue-Tracker nutzt. Fragen werden auch ausführlich beantwortet. Und immer dran denken, wir sind noch in einer frühen Phase, alles kann angepasst werden, damit es für eine möglichst große Zielgruppe passt.

    Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    11 Kommentare »


    • Dennis Becker
      am 14. Februar 2011 um 13:06 Uhr

      Hmm… also so wie sich das liest erinnert es mich stark an meinen Versuch vom Wochenende, Selenium 2.0 mit der WebDriver API eine Seite über HtmlUnit zu prüfen.


    • Nils Langner
      am 14. Februar 2011 um 13:14 Uhr

      @Dennis: Ähhhm … ja. Hättest mal LiveTest genommen.


    • Jörg Basedow
      am 14. Februar 2011 um 14:30 Uhr

      Ein Use-Case, den ich mir vorstellen könnte, wäre alle Seiten einer Site auf XHTML-Konformität zu prüfen (z.B. mit HTMLTidy o.Ä.).

      Wird eine Site denn auch gecrawlt oder muss man jede Seite explizit angeben? Wenn sich das Tool ähnlich wie ein Google-Bot verhalten könnte, wäre das glaube ich super praktisch.


    • Nils Langner
      am 14. Februar 2011 um 16:03 Uhr

      @Jörg: Die Tidy-Geschichte ist aufgenommen. Was das Google-Bot verhalten angeht, muss ich mir mal eine Lösung ausdenken.


    • Ilja
      am 14. Februar 2011 um 18:08 Uhr

      Auch sinnvoll:
      http://www.php.net/manual/en/domdocument.relaxngvalidate.php

      Ist es denn auch schon so, dass ein CI-Server (Hudson, Bamboo, ..) das batchen kann und die Ausgaben versteht?


    • Christian Kaps
      am 14. Februar 2011 um 18:13 Uhr

      Wie sieht es mit geschützten Seiten aus? Gibt es eine Möglichkeit sich über z.B. ein Formular zu authentifizieren, die Session Daten zu speichern und geschützte Seiten zu überprüfen?


    • DennisBecker
      am 14. Februar 2011 um 19:36 Uhr

      Grundsätzlich wäre auch die Angabe einer Sitemap gut, dann hätte man schonmal einen Haufen Seiten, die man testen könnte.

      @Nils: bei LiveTest habe ich aber keinen JavaScript Support ;)


    • Nils Langner
      am 14. Februar 2011 um 19:55 Uhr

      @Dennis: Wir wollen aber auch bald eine Selenium-Unterstüzung haben, dann geht das auch :) Der Sitemap-Punkt steht schon bei den Issues (seit ‘ner Stunde aber erst).


    • Symfony Live 2011 | PHP hates me - Der PHP Blog
      am 11. März 2011 um 07:03 Uhr

      [...] und was cooles rund um das Thema Symfony basteln. Mike und ich haben uns in dem Zuge entschlossen LiveTest so aufzublasen, dass es mit dem Framework kommunizieren kann, um dann Tests in der Art [...]


    • A. Lademann
      am 19. November 2012 um 18:53 Uhr

      Ich hoffe die Entwicklung geht bald weiter? Schade dass der Pear Channel offline ist… Macht euch ran!


    • Nils Langner
      am 19. November 2012 um 21:59 Uhr

      @A. Lademann: Schau mal hier: https://github.com/phmlabs/LiveTest2

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.