Akzeptanztests
Contents
Todo nach Prioritäten
- JavaScript Fehler debuggen und loggen?
- Fehlende Dateien auffinden
- contrexxlabs.com schauen ob der Server kompatibel ist.
- Zeit der Requests aufzeichnen in ein XML, vllt. Auswertung mittels PHP-Applikation mit Google Charts (http://www.deanhume.com/Home/BlogPost/measuring-web-page-performance-with-selenium-2-and-the-web-timings-api/56)
- Flash Extension hinzufügen
- Funktioniert es mit Open Source Java Environments?
Diskussion
- JavaScript-Fehler Reporting / TD
Integration in Workbench
Damit Contrexx Entwickler sich nicht selber direkt mit dem Kommandozeilen Tool von Behat auseinandersetzen müssen, könnte man dies direkt in das Kommandozeilentool der Workbench integrieren.
Mögliche Kommandos:
initTests COMPONENT-NAME: Alias für "behat --init" ## wird ausgeführt, wenn noch keine Szenarios geschrieben sind.
generateTestCode COMPONENT-NAME: Alias für "behat" ## wird ausgeführt, wenn die Szenarios geschrieben sind, aber noch kein PHP-Code vorhanden ist.
runTests COMPONENT-NAME (optional): Alias für "behat" ## wird ausgeführt um die Tests laufen zu lassen, hier muss vorher auch noch Selenium gestartet werden, sofern Java installiert ist
Tests ablegen
1. Tests an einem zentralen Ort ablegen /testing/COMPONENTNAME/...
2. Tests jeweils bei der Komponente selber /modules/COMPONENTNAME/testing/...
Auswertung
1. Ausgabe in Datei ablegen und nur die fehlgeschlagenen: "behat --no-paths --out DATEI --format failed"
2. Eigene Exception Klasse schreiben um auch noch PHP-Sessions zu loggen
Helperklasse
Das Testen von Backend-Aktivitäten benötigt zum Beispiel immer ein Login ins Backend. Damit dies nicht immer kopiert werden muss, wäre so eine HelperKlasse, die zum Beispiel die Selenium-Session einloggt, ausloggt, das Backend aufruft etc. nützlich. Das wäre dann auch ein Bestandteil der Workbench.
Lizenz von Behat
Copyright (c) 2011-2013 Konstantin Kudryashov <ever.zet@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Software
Behat (http://behat.org/)
+ Erweiterung Mink (http://mink.behat.org/)
+ Mink Selenium2 Treiber
Installation auf Windows
Voraussetzung
- Apache (XAMPP)
Vorgehen
- Download von Java (http://www.java.com/de/download/windows_manual.jsp?locale=de)
- Den PHP Command in den Umgebungsvariablen ablegen. Hierfür öffnet man die Systemeigenschaften:
- Danach öffnet man die Umgebungsvariabeln.
- Bei Paths muss der Pfad: C:\xampp\php hinzugefügt werden, da sich dort die Datei php.exe befindet
Diese Änderungen benötigen einen Neustart von Windows.
Installation auf Linux (getestet auf Ubuntu)
Vorgehen
- Java installieren mittels „sudo apt-get install default-jre“
- Apache installieren „sudo apt-get install apache2“
- Composer installieren https://getcomposer.org
- Im trunk in das Verzeichnis /lib/behat/ wechseln.
- "composer install" im Verzeichnis ausführen.
- Die neue Datei bin/behat im PATH verlinken. (Es ist auch möglich das Programm über einen relativen/absoluten Pfad zu starten, dies ist jedoch umständlicher als einfach behat einzugeben.)
- Mit dem Befehl "java -jar selenium-server-standalone-2.42.2.jar" den Selenium Server starten. (Getestet mit "1.7.0_60")
- Nun ins Verzeichnis /core/Core/Testing wechseln und behat ausführen