Το TPTP παρέχει ορισμένες υπηρεσίες αυτοματοποίησης οι οποίες μπορούν να κληθούν εκτός του περιβάλλοντος του πάγκου εργασίας του Eclipse. Σε αυτές τις υπηρεσίες περιλαμβάνεται η εκτέλεση δοκιμών, η διερεύνηση αποτελεσμάτων δοκιμών και η δημοσίευση αποτελεσμάτων δοκιμών.
Αυτό το θέμα βοήθειας εξηγεί τον τρόπο χρήσης των ενσωματωμένων υπηρεσιών αυτοματοποίησης TPTP για την εκτέλεση των εξής εργασιών:
Η υπηρεσία εκτέλεσης δοκιμών παρέχεται για την εκκίνηση, την εκτέλεση και τη δημιουργία αποτελεσμάτων δοκιμών μέσω προγραμματισμού. Η υπηρεσία εκτέλεσης δοκιμών περικλείει την υπάρχουσα λειτουργία αξιοποίησης της εκτέλεσης δοκιμών και δεν υποστηρίζει τις τρέχουσες ανεξάρτητες μεθόδους αξιοποίησης της εκτέλεσης δοκιμών. Χρησιμοποιώντας την υπηρεσία εκτέλεσης δοκιμών, μπορεί να γίνει εκκίνηση των δοκιμών με τη χρήση του Eclipse χωρίς γραφικό περιβάλλον από σενάρια Ant, σενάρια κελύφους και αυθαίρετα προγράμματα. Μπορούν να εκτελεστούν πολλαπλές δοκιμές στον ίδιο χρόνο δεδομένου ότι υπάρχει επαρκής μνήμη στον υπολογιστή εκτέλεσης (κάθε υπηρεσία εκτέλεσης απαιτεί μια ξεχωριστή χρήση υπολογιστή του Eclipse). Ακόμα και αν οι δοκιμές εκτελούνται σε απομακρυσμένους υπολογιστές με τη χρήση λειτουργιών και διανομής για απομακρυσμένη εκτέλεση δοκιμών TPTP, ο υπολογιστής καταναλωτή υπηρεσίας είναι ο υπολογιστής που εκτελεί τις χρήσεις υπολογιστή του Eclipse.
Ανατρέξτε στο υλικό παραπομπής σχετικά με τις υποστηριζόμενες ιδιότητες υπηρεσίας εκτέλεσης δοκιμών. Οι ίδιες ιδιότητες είναι έγκυρες σε όλους τους προσαρμογείς αυτοματοποίησης πελατών. Για τα σενάρια Ant, παρέχεται ένα σύνολο απλών εργασιών Ant για τον ορισμό των ιδιοτήτων υπηρεσίας και την εκτέλεση της υπηρεσίας. Για τα σενάρια κελύφους, οι ιδιότητες καθορίζονται στο αναμενόμενο πρότυπο γραμμής εντολών (με τη χρήση χαρακτήρων παύλας για τις ιδιότητες που ακολουθούνται από κενό διάστημα και στη συνέχεια με μια τιμή για τη χρήση). Για προγράμματα Java,θα γίνει παραπομπή στα αρχεία jar του πελάτη αυτοματοποίησης και θα χρησιμοποιηθούν για τον ορισμό ιδιοτήτων και τον έλεγχο της εκτέλεσης της υπηρεσίας. Ορισμένοι προσαρμογείς πελάτη ενδέχεται να διαθέτουν πρόσθετες επιλογές που απαιτούνται για το συγκεκριμένο περιβάλλον πελάτη (ή προσφέρονται από αυτόν τον προσαρμογέα ως πρόσθετες λειτουργίες).
Τα συστατικά στοιχεία υπηρεσίας με δυνατότητα αυτοματοποίησης του TPTP συσκευάζονται εντός της πρόσθετης λειτουργίας org.eclipse.hyades.execution η οποία αντιπροσωπεύεται από τρία αρχεία jar, μέρος XML στο αρχείο plugin.xml και ορισμένες καταχωρήσεις στο αρχείο MANIFEST.MF.
tptp-automation-client.jar
(το lightweight μέρος του κώδικα που
απαιτείται για τη δημιουργία διαύλου υπηρεσίας στον πελάτη, την εκκίνηση του Eclipse αν
χρειάζεται και την εκτέλεση των υπηρεσιών χωρίς γραφικό περιβάλλον, μπορεί να γίνει
παραπομπή σε αυτό το αρχείο jar κατά την εκτέλεση δοκιμών από τη γραμμή εντολών και τα
σενάρια κελύφους, καθώς και κατά την εκτέλεση δοκιμών από αυθαίρετο κώδικα Java).tptp-automation-server.jar
(ο εξυπηρετητής αυτοματοποίησης TPTP, ο
οποίος φορτώνεται κατ' απαίτηση καθώς οι υπηρεσίες εξετάζονται και εκτελούνται με τη
χρήση του πλαισίου, υλοποιεί το σημείο επέκτασης των κύριων εφαρμογών του Eclipse, που
χρησιμοποιούνται ως ρουτίνα εντοπισμού broker και υπηρεσιών)ant-tptp.jar
(αυτό το αρχείο jar διαθέτει το ίδιο περιεχόμενο με το
tptp-automation-client.jar αλλά έχει μετονομαστεί για να είναι συνεπές με άλλες
βιβλιοθήκες εργασιών του Ant)Βεβαιωθείτε ότι το Ant έχει εγκατασταθεί σωστά αν πρόκειται να εκτελεστούν οι δοκιμές εκτός μιας εκτελούμενης χρήσης του Eclipse. Ανατρέξτε στην τεκμηρίωση του Ant για να το ρυθμίσετε σωστά. Παράλληλα με την τυπική εγκατάσταση του Ant, αντιγράψτε επίσης το ant-tptp.jar στον κατάλογο βιβλιοθηκών του Ant μαζί με τις υπόλοιπες εργασίες. Αν εκτελούνται από το Eclipse, το Ant είναι ήδη εγκατεστημένο, παρόλΆ αυτά βεβαιωθείτε ότι έχετε συμπεριλάβει το ant-tptp.jar στην καρτέλα των πρόσθετων εργασιών στις ρυθμίσεις εκκίνησης του Ant ή στην ενότητα "Γενικές καταχωρήσεις" στη σελίδα προτιμήσεων διαδρομής κλάσεων Ant. Το ενσωματωμένο δείγμα σεναρίου Ant που ακολουθεί αποτελεί ένα παράδειγμα σεναρίου Ant με την ονομασία "test.xml" το οποίο εκτελεί μια δοκιμή με την ονομασία testA εντός του φακέλου unit-tests του έργου δοκιμής. Το έργο δοκιμής βρίσκεται στον καθορισμένο χώρο εργασίας του "d:\development\workspace" και στη χρήση υπολογιστή του Eclipse που ορίζεται ως "d:\development\eclipse". Ανατρέξτε στη λίστα παραπομπών των υποστηριζόμενων ιδιοτήτων για άλλους έγκυρους συνδυασμούς ιδιοτήτων.
Το παρακάτω παράδειγμα χρησιμοποιεί την εργασία δοκιμής TPTP παρόλο που είναι δυνατή η εκτέλεση δοκιμής με τη χρήση της εργασίας αυτοματοποίησης TPTP. Η γενικότερη εργασία αυτοματοποίησης αποτελεί μια εργασία Ant για την εκτέλεση αυθαίρετων υπηρεσιών με δυνατότητα αυτοματοποίησης TPTP η οποία έρχεται σε αντίθεση με τη περισσότερο συγκεκριμένη εργασία δοκιμής TPTP. Η εργασία δοκιμής αποτελεί μια εργασία type-safe που δημιουργείται ειδικά για την εκκίνηση της υπηρεσίας εκτέλεσης δοκιμών. Περισσότερα παραδείγματα σεναρίων Ant περιλαμβάνονται στο πακέτο org.eclipse.hyades.automation.test του φακέλου προέλευσης για την πρόσθετη λειτουργία πελάτη αυτοματοποίησης src org.eclipse.hyades.execution.
<project name="TPTP Ant Tasks Test Script" default="test" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <property name="eclipse.home" value="D:\development\eclipse"/> <description> This ant script tests the TPTP automation ant task client adapters and also can be used to test the underlying execution of TPTP automatable services via the TPTP automation server </description> <!-- Execute TPTP test suites --> <target name="test" description="Executes TPTP Test Suites using default TPTP Ant Tasks"> <!-- Execute a TPTP test suite using the test task and providing the workspace --> <tptp:test workspace="D:\development\workspace" project="tests" suite="unit-tests/testA.testsuite" synchronicity="synchronous"/> </target> </project>
Βεβαιωθείτε ότι έχετε ρυθμίσει κατάλληλα το Ant για την εκτέλεση των
αυτοματοποιημένων υπηρεσιών TPTP (βλ.
σχετική ενότητα παραπάνω για την
εκτέλεση δοκιμών από σενάρια Ant). Το ακόλουθο παράδειγμα παρουσιάζει τον τρόπο
χρήσης των εργασιών tptp:execution και tptp:interrogation για την εκτέλεση
πολλαπλών δοκιμών και τη διερεύνηση των αποτελεσμάτων τους. Αυτές οι εργασίες Ant
δέχονται και οι δύο πολλαπλά σύνολα αρχείων (filesets
) ή/και
πολλαπλές λίστες αρχείων (filelists
) Ant επιτρέποντάς σας να
χρησιμοποιείτε χαρακτήρες υποκατάστασης ή να ορίζετε πολλαπλά αρχεία ως δεδομένα
εισόδου για τις εργασίες. Σε αυτό το παράδειγμα, εκτελούνται όλες οι σουίτες
δοκιμών του έργου TPTPJUnitTests. Όλα τα αρχεία .execution που προκύπτον από τις
δοκιμές επιστρέφονται ως λίστα αρχείων (filelist
) στην καθορισμένη
μεταβλητή Ant (σε αυτή την περίπτωση "tptp.test.results"). Στη συνέχεια, αυτή η
λίστα αρχείων θα προωθηθεί ως δεδομένα εισόδου στην υπηρεσία
tptp:interrogation η οποία θα διερευνήσει κάθε ένα από τα αρχεία εκτέλεσης για να
διατυπώσει ένα τελικό συμπέρασμα για τη δοκιμή το οποίο θα αντιστοιχιστεί με την
καθορισμένη μεταβλητή Ant (σε αυτή την περίπτωση "tptp.test.verdict").
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/>
<target name="main" depends="test-execution, test-results-interrogation"/>
<!-- Execute test suites using default results name --> <target name="test-execution"> <echo message="Executing test suite..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Interrogate test suite results for verdict --> <target name="test-results-interrogation"> <echo message="Interrogating test suite results..." /> <condition property="tptp.test.success"> <tptp:interrogation verdictproperty="tptp.test.verdict"> <filelist refid="tptp.test.results"/> </tptp:interrogation> </condition> <echo message="The overall test result verdict is: '${tptp.test.verdict}'" /> </target>
</project>
Βεβαιωθείτε ότι έχετε ρυθμίσει κατάλληλα το Ant για την εκτέλεση των
αυτοματοποιημένων υπηρεσιών TPTP (βλ.
σχετική ενότητα παραπάνω για την
εκτέλεση δοκιμών από σενάρια Ant). Το ακόλουθο παράδειγμα παρουσιάζει τον τρόπο
χρήσης των εργασιών tptp:execution και tptp:publication για την εκτέλεση πολλαπλών
δοκιμών και τη δημιουργία αναφορών BIRT από τα αποτελέσματα αυτών των δοκιμών. Η
εργασία δημοσίευσης (tptp:publication) δέχεται επίσης πολλαπλά σύνολα αρχείων
(filesets
) ή/και πολλαπλές λίστες αρχείων (filelists
)
Ant επιτρέποντάς σας να χρησιμοποιείτε χαρακτήρες υποκατάστασης ή να ορίζετε
πολλαπλά αρχεία ως δεδομένα εισόδου για την εργασία. Σε αυτό το παράδειγμα,
εκτελούνται όλες οι σουίτες δοκιμών του έργου TPTPJUnitTests. Όλα τα αρχεία
.execution που προκύπτον από τις δοκιμές επιστρέφονται ως λίστα αρχείων
(filelist
) στην καθορισμένη μεταβλητή Ant (σε αυτή την περίπτωση
"tptp.test.results"). Στη συνέχεια, αυτή η λίστα αρχείων θα προωθηθεί
ως δεδομένα εισόδου στην υπηρεσία tptp:publication η οποία θα δημιουργήσει μια
αναφορά εκτέλεσης TPTP χρησιμοποιώντας το προεπιλεγμένο πρότυπο αναφορών
TestExecution.rptdesign, το οποίο βρίσκεται στην πρόσθετη λειτουργία
org.eclipse.tptp.test.report.birt, και θα την τοποθετήσει στην καθορισμένη θέση
(σε αυτή την περίπτωση c:\temp\report.html).
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/> <property name="report.publication.location" location="c:/temp" />
<target name="main" depends="test-execution, test-results-publication"/>
<!-- Execute test suites using default results name --> <target name="test-execution"> <echo message="Executing test suite..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}"> <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Publish test suite results report -->
<target name="test-results-publication"> <echo message="Publishing test suite results report..." /> <tptp:publication report="${report.publication.location}/report.html"> <filelist refid="tptp.test.results"/> </tptp:publication> </target>
</project>
Μπορείτε να προσαρμόσετε τη συμπεριφορά της εργασίας tptp:publication ορίζοντας κάποιο άλλο πρότυπο αναφορών BIRT, όπως για παράδειγμα το πρότυπο TabularReport.rptdesign που βρίσκεται στον κατάλογο προτύπων της πρόσθετης λειτουργίας org.eclipse.tptp.test.report.birt. Επιπλέον, μπορείτε να χρησιμοποιήσετε την υπηρεσία δημοσίευσης publish-testsuites. Σε αυτή την περίπτωση, αντί για τα αρχεία αποτελεσμάτων εκτέλεσης των δοκιμών, θα ορίσετε τις σουίτες δοκιμών ως δεδομένα εισόδου στην υπηρεσία δημοσίευσης. Αν επιλέξετε να χρησιμοποιήσετε την υπηρεσία δημοσίευσης publish-testsuites και προωθήσετε τις σουίτες δοκιμών ως δεδομένα εισόδου στην υπηρεσία δημοσίευσης, πρέπει επίσης να ορίσετε την ημερομηνία έναρξης και λήξης του διαστήματος που θα καλύπτει η αναφορά. Η υπηρεσία δημοσίευσης θα χρησιμοποιήσει αυτές τις ημερομηνίες για να εντοπίσει στο χώρο εργασίας τα αποτελέσματα όλων των δοκιμών που εκτελέστηκαν το συγκεκριμένο διάστημα. Το ακόλουθο παράδειγμα παρουσιάζει τη δημιουργία μιας αναφοράς με βάση το πρότυπο αναφορών TabularReport.rptdesign για όλες τις σουίτες δοκιμών στο έργο Test1. Στην αναφορά θα συμπεριληφθούν όλα τα αποτελέσματα εκτέλεσης των τελευταίων 60 ημερών.
<project name="TPTP Automatable Services Tutorial"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Define common properties for all automatable services --> <property name="tptp.test.workspace" value="C:\eclipsecon\eclipse\workspace"/> <property name="tptp.test.project" value="TPTPJUnitTests" /> <property name="tptp.test.connection" value="tptp:rac://localhost:10002/default"/> <property name="tptp.automation.eclipse" value="C:\eclipseconwb_birt\eclipse" />
<!-- Define script-local properties, that vary by installation --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/> <property name="report.publication.location" location="c:/temp" /> <property name="tptp.publication.service" value="org.eclipse.tptp.test.report.birt.publish-testsuites"/>
<!-- Run the report --> <target name="main" depends="test-results-publication"/>
<target name="set-date-range"> <!-- Use standard ant tstamp mechanisms to specify the desired date range --> <!-- This example uses a range between today and 60 days days prior --> <tstamp> <format property="startDateTime" pattern="MM/dd/yyyy hh:mm aa" offset="-60" unit="day"/> </tstamp> <tstamp> <format property="endDateTime" pattern="MM/dd/yyyy hh:mm aa"/> </tstamp> </target>
<!-- Publish test suite results report --> <target name="test-results-publication" depends="set-date-range"> <echo message="Publishing test suite results report..." /> <tptp:publication report="${report.dir}/report.html" reportTemplateLocation="C:\TPTP_TestPass\ReportBuild\eclipse\plugins\org.eclipse.tptp.test.report.birt_4.2.0.v200605180959\templates\TabularReport.rptdesign" startDateTime="${startDateTime}" endDateTime="${endDateTime}" > <fileset dir="${project.dir}"> <include name="**/*.testsuite" /> </fileset> </tptp:publication> </target>
</project>
Οι δοκιμές μπορούν να εκτελεστούν απευθείας από τη γραμμή εντολών και τα σενάρια κελύφους καθώς οι ιδιότητες δοκιμών παίρνουν τη μορφή ορισμάτων της γραμμής εντολών. Οι παροχείς πελάτη αυτοματοποίησης TPTP παρέχουν ένα αρχείο .bat και ένα αρχείο .cmd για χρήση σε περιβάλλον Windows, καθώς και ένα αρχείο .sh που παρέχεται για χρήση σε περιβάλλον λειτουργικού συστήματος Linux. Είναι δυνατό να καθοριστούν μακροσκελή σύνολα ορισμάτων ή/και συχνά επαναλαμβανόμενων ορισμάτων σε ένα αρχείο ρυθμίσεων για να ελαχιστοποίηση της πληκτρολόγησης που απαιτείται για την εκτέλεση της υπηρεσίας εκτέλεσης δοκιμών από τη γραμμή εντολών. Ο προσαρμογέας πελάτη αυτοματοποίησης κελύφους δηλώνεται ως αρχείο κειμένου (για το αρχείο ή το σενάριο δέσμης) και ένα συμπληρωματικό στοιχείο Java. Πρέπει να υπάρχουν και τα δύο για την εκτέλεση δοκιμών από τη γραμμή εντολών. Όλοι οι προσαρμογείς πελατών αυτοματοποίησης TPTP που παρέχονται βρίσκονται στο tptp-automation-client.jar, ωστόσο το ant-tptp.jar αντιγράφει μέρος του κώδικα του προσαρμογέα με τη μορφή αρχείου jar του Ant (αυτό γίνεται για να διατηρείται η συνέπεια στην ονομασία του αρχείου jar εργασίας TPTP με τις υπόλοιπες διαθέσιμες εργασίες του Ant).
Οι ιδιότητες της υπηρεσίας εκτέλεσης δοκιμών ορίζονται θέτοντας ως πρόθημα στα ονόματα των ιδιοτήτων ένα χαρακτήρα υπογραμμής και διασφαλίζοντας ότι προσδιορίζει επίσης τον κεντρικό ή τον αρχικό κατάλογο του Eclipse.
Μπορεί να γίνει εκκίνηση των δοκιμών από οποιαδήποτε εφαρμογή Java και στην πραγματικότητα οι υπόλοιποι προσαρμογείς αυτοματοποίησης πελατών, όπως οι προσαρμογείς κελύφους και του Ant, χρησιμοποιούν τον προσαρμογέα Java εσωτερικά για σύνδεση στο δίαυλο της υπηρεσίας. Η μόνη απαίτηση για την εκτέλεση δοκιμών από μέρος του κώδικα Java είναι να βεβαιωθείτε ότι γίνεται σωστή παραπομπή στο αρχείο tptp-automation-client.jar (στο Eclipse αυτό σημαίνει ότι στη διαδρομή δόμησης του έργου Java βρίσκεται η βιβλιοθήκη) και φυσικά ότι όλες οι τυπικές απαιτήσεις του TPTP ισχύουν, όπως ότι πρέπει να εκτελείται ο ελεγκτής ρουτινών.
Ο προσαρμογέας πελάτη αυτοματοποίησης Java παρέχει ένα πολύ απλό API για την εκτέλεση δοκιμών με όλες τις καθοριζόμενες ιδιότητες που περιέχονται σε ένα τυπικό αντικείμενο ιδιοτήτων Java. Ακολουθεί ένα παράδειγμα αναφορικά με την εκτέλεση της ίδιας δοκιμής με αυτή που εισήχθη στο προηγούμενο παράδειγμα σεναρίου Ant. Σημειώστε ότι η ταυτότητα υπηρεσίας που μεταβιβάζεται στη μέθοδο εκτέλεσης αποτελεί την ταυτότητα υπηρεσίας για την υπηρεσία εκτέλεσης δοκιμών TPTP (αυτή η υπηρεσία υποστηρίζει όλα τα βασικά είδη δοκιμών TPTP). Επίσης, μπορείτε να εκτελέσετε άλλες υπηρεσίες με δυνατότητα αυτοματοποίησης, αν διατίθενται, αλλά αλλάζοντας την ταυτότητα και τις ιδιότητες που ρυθμίζονται στον παρακάτω κώδικα.
// Create the Java adapter associated with the specified Eclipse home AutomationClientAdapter automation = new AutomationClientAdapter ("d:\\development\\eclipse"); // Create and configure a properties object Properties properties = new Properties(); properties.setProperty("workspace", "D:\\development\\workspace"); properties.setProperty("project", "tests"); properties.setProperty("suite", "unit-tests/testA.testsuite"); // Execute the service named below using the configured properties automation.execute("org.eclipse.hyades.test.tools.core.execute", properties);
Σχετικές έννοιες
Επισκόπηση του πλαισίου υπηρεσιών με δυνατότητα αυτοματοποίησης
Σχετικές εργασίες
Εκκίνηση δοκιμών από σενάρια και εφαρμογές
Σχετικές παραπομπές
Υποστηριζόμενες ιδιότητες υπηρεσίας διενέργειας δοκιμών
(C) Copyright IBM Corporation 2005,2006. Με την επιφύλαξη παντός δικαιώματος