Automatisoitavien TPTP-palvelujen käyttö

TPTP sisältää useita automatisoitavia palveluita, joita voidaan kutsua Eclipse-työympäristön ulkopuolelta. Palvelut sisältävät testintoteutuksen, testitulosten kyselyn ja testitulosten julkaisun.

Tässä ohjeaiheessa kerrotaan, miten kiinteiden automatisoitavien TPTP-palvelujen avulla tehdään seuraavat toimet:

Testintoteutuspalvelu

Testintoteutuspalvelun avulla voidaan aloittaa ja toteuttaa testi ja luoda testitulokset. Testintoteutuspalvelu liittää testintoteutuksen käyttöliittymätoiminnot ja poistaa käytöstä nykyisen erillisen testintoteutuskäyttöliittymän metodit.Testintoteutuspalvelun avulla testit voidaan aloittaa käyttämällä näyttöpäätteetöntä Eclipse-ympäristöä Ant-kommentosarjojen, komentoliittymän komentosarjojen ja ohjelmien avulla.Useita testejä voidaan ajaa samanaikaisesti, jos toteuttavassa koneessa on tarpeeksi muistia (kunkin palvelun toteutus vaatii tällä hetkellä erillisen Eclipse-pääkoneen ilmentymän).Vaikka testit ajetaankin etäkoneissa TPTP-ympäristön testien etätoteutusominaisuuksia ja käyttöönottoa käyttäen, palvelun kuluttajan koneessa ajetaan Eclipse-pääkoneen ilmentymät.

Palvelun ominaisuudet

Tietoja on tuetun testintoteutuspalvelun ominaisuuksien viitemateriaalissa -- samat ominaisuudet ovat käytössä automaation työasemasovittimissa.Ant-komentosarjojen osalta käytössä on joukko yksinkertaisia Ant-tehtäviä, joilla määritetään palvelun ominaisuudet ja toteutetaan palvelu.Komentoliittymän komentosarjojen osalta ominaisuudet on määritetty odotetussa komentorivin kaavassa (jossa ominaisuuksista käytetään viivoja, joiden jäljessä on välilyönti ja sitten ilmentymän arvo).Java-ohjelmien osalta järjestelmä viittaa automaation työasemien jar-tiedostoihin sekä määrittää niiden avulla palvelun ominaisuudet ja ohjaa palvelun toteutusta.Joissakin työasemasovittimissa saattaa olla lisäasetuksia, joita vaaditaan kyseisen työaseman ympäristössä (tai jotka tarjoavat sovittimen lisäominaisuuksia).

Automatisoitavien palvelujen kehyksen pakkaus

TPTP-ympäristön automatisoitavien palvelujen komponentit on pakattu org.eclipse.hyades.execution-lisäosaan, ja ne esitetään kolmena jar-tiedostona, plugin.xml-tiedoston XML-koodina ja MANIFEST.MF-tiedoston merkintöinä.

  1. tptp-automation-client.jar (Tämän jar-tiedoston pelkistetyn koodin avulla määritetään palveluväylän työasemapuoli, aloitetaan Eclipse tarvittaessa ja toteutetaan palveluita ilman näyttöpäätettä. Jar-tiedostoon viitataan ajettaessa testejä komentoriviltä ja komentoliittymän komentosarjoista sekä ajettaessa testejä mistä tahansa Java-koodista.)
  2. tptp-automation-server.jar (TPTP-automaatiopalvelin, joka ladataan tarvittaessa, kun palveluihin lähetetään kyselyitä tai palveluita toteutetaan kehystä käyttäen. Jar-tiedosto toteuttaa Eclipse-sovellusten päälaajennuspisteen, jota käytetään välittäjänä ja palveluiden paikantimena.)
  3. ant-tptp.jar (Tämän jar-tiedoston sisältö vastaa tptp-automation-client.jar-tiedostoa, mutta tiedosto on nimetty uudelleen, jotta kirjasto on yhteneväinen muiden Ant-tehtäväkirjastojen kanssa.)

Testien ajo Ant-komentosarjoista

Varmista, että Ant on asennettu oikein, jos testejä ajetaan ajossa olevan Eclipse-ilmentymän ulkopuolella. Lisätietoja on Ant-dokumentaatiossa.Tavallisen Ant-asennuksen lisäksi Ant lib -hakemistoon tulee kopioida myös ant-tptp.jar-tiedosto muiden tehtävien lisäksi.  Jos Ant ajetaan Eclipsessä, Ant on jo asennettu. Muista kuitenkin sisällyttää ant-tptp.jar-tiedosto Ant-aloituskokoonpanon lisätehtävien välilehteen tai Ant-luokkapolun oletussivun Yleiset merkinnät -kohtaan. Alla oleva sisäinen Ant-mallikomentosarja on esimerkki Ant-komentosarjasta nimeltä "test.xml", joka toteuttaa testA-nimisen testin testiprojektin unit-tests-kansiossa.Testiprojekti sijaitsee määritetyssä työtilassa "d:\development\workspace", ja Eclipse-pääkoneilmentymäksi on määritetty "d:\development\eclipse".Tuettujen ominaisuuksien viiteluettelossa on tietoja muista kelvollisista ominaisuusyhdistelmistä.

Seuraavassa esimerkissä käytetään TPTP-testitehtävää, joskin testin voi toteuttaa myös käyttämällä TPTP-automaatiotehtävää.Yleisempi automaatiotehtävä on Ant-tehtävä, joka toteuttaa automatisoitavia TPTP-palveluita, kun taas TPTP-testitehtävä on tarkemmin määritetty.Testitehtävä on lajin varmistava tehtävä, joka on luotu erityisesti testintoteutuspalvelun aloitusta varten.Muita Ant-komentosarjaesimerkkejä on org.eclipse.hyades.execution-lisäosan src-automation-client-lähdekansion org.eclipse.hyades.automation.test-paketissa.

<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>

 <!-- Suoritetaan TPTP-testipaketit -->
 <target
name="test" description="Executes TPTP Test Suites using default TPTP Ant
Tasks"> 

   <!--
Suoritetaan TPTP-testipaketti käyttämällä testitehtävää ja antamalla työtila
-->
   <tptp:test
     workspace="D:\development\workspace" 
     project="tests"
     suite="unit-tests/testA.testsuite"
     synchronicity="synchronous"/>

  </target>
</project>

Useiden testien ajo ja niiden tulosten kysely Ant-komentosarjoista

Varmista, että Ant on määritetty oikein TPTP:n automatisoitavien palvelujen ajoa varten (lisätietoja testien ajosta Ant-komentosarjoista on edellisessä kohdassa). Seuraavassa esimerkissä näytetään, miten tptp:execution-tehtävän avulla toteutetaan useita testejä ja miten tptp:interrogation-tehtävän avulla kysellään testien tuloksia. Nämä Ant-tehtävät hyväksyvät useita Ant-tiedostoryhmiä ja/tai -tiedostoluetteloita, jolloin voit käyttää yleismerkkejä tai määrittää tehtävien syötteiksi suoraan useita tiedostoja. Tässä esimerkissä toteutetaan kaikki TPTPJUnitTests-projektin testipaketit ja kaikki tuloksena olevat .execution-tiedostot palautuvat tiedostoluettelona annetussa Ant-muuttujassa (tässä "tptp.test.results"). Sitten tiedostoluettelo välitetään syötteenä tptp:interrogation-palvelulle, joka tekee kyselyn kuhunkin toteutustiedostoon, määrittää päätöksen ja liittää sen annettuun Ant-muuttujaan (tässä "tptp.test.verdict".)

<project name="Automatisoitavien TPTP-palvelujen opetusohjelma"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Kaikille automatisoitaville palveluille yhteisten ominaisuuksien määritys--> <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" />
<!-- Komentosarjakohtaisten, asennuksen mukaan vaihtelevien ominaisuuksien määritys --> <property name="project.dir" value="${tptp.test.workspace}\${tptp.test.project}"/>
<target name="main" depends="test-execution, test-results-interrogation"/>
<!-- Testipakettien toteutus tulosten oletusnimeä käyttäen --> <target name="test-execution"> <echo message="Toteutetaan testipakettia..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}">     <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Testipakettien tulosten kysely päätöstä varten --> <target name="test-results-interrogation"> <echo message="Tehdään kyselyä testipaketin tuloksista..." /> <condition property="tptp.test.success">     <tptp:interrogation verdictproperty="tptp.test.verdict">         <filelist refid="tptp.test.results"/>     </tptp:interrogation> </condition> <echo message="Testituloksia koskeva päätös on seuraava: '${tptp.test.verdict}'" /> </target>
</project>

Testiraporttien luonti Ant-komentosarjoista

Varmista, että Ant on määritetty oikein TPTP:n automatisoitavien palvelujen ajoa varten (lisätietoja testien ajosta Ant-komentosarjoista on edellisessä kohdassa). Seuraavassa esimerkissä näytetään, miten tptp:execution-tehtävän avulla toteutetaan useita testejä ja miten tptp:publication-tehtävän avulla luodaan BIRT-pohjaisia raportteja testien tuloksista. Julkaisutehtävä myös hyväksyy useita Ant-tiedostoryhmiä ja/tai -tiedostoluetteloita, jolloin voit käyttää yleismerkkejä tai määrittää syötteiksi suoraan useita tiedostoja. Tässä esimerkissä toteutetaan kaikki TPTPJUnitTests-projektin testipaketit ja kaikki tuloksena olevat .execution-tiedostot palautuvat tiedostoluettelona annetussa Ant-muuttujassa (tässä "tptp.test.results"). Sitten tiedostoluettelo välitetään syötteenä tptp:publication-palvelulle, joka muodostaa TPTP-toteutusraportin raporttien oletusmallipohjan perusteella (TestExecution.rptdesign, joka sijaitsee lisäosassa org.eclipse.tptp.test.report.birt plugin) ja sijoittaa raportin määritettyyn sijaintiin (tässä c:\temp\report.html).

<project name="TPTP:n automatisoitavien palvelujen opetusohjelma"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Kaikille automatisoitaville palveluille yhteisten ominaisuuksien määritys--> <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" />
<!-- Komentosarjakohtaisten, asennuksen mukaan vaihtelevien ominaisuuksien määritys --> <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"/>
<!-- Testipakettien toteutus tulosten oletusnimeä käyttäen --> <target name="test-execution"> <echo message="Toteutetaan testipakettia..." /> <tptp:execution resultsrefid="tptp.test.results"> <fileset dir="${project.dir}">     <include name="**/*.testsuite"/> </fileset> </tptp:execution> </target>
<!-- Testipaketin tulosraportin julkaisu -->
<target name="test-results-publication"> <echo message="Julkaistaan testipaketin tulosraporttia..." /> <tptp:publication report="${report.publication.location}/report.html">     <filelist refid="tptp.test.results"/> </tptp:publication> </target>
</project>

Testiraporttien mukautus Ant-komentosarjoista

Voit mukauttaa tptp:publication-tehtävän toimintaa määrittämällä jonkin toisen BIRT-raporttimallipohjan, esimerkiksi TabularReport.rptdesign-mallipohjan, joka on org.eclipse.tptp.test.report.birt-lisäosan mallipohjahakemistossa. Voit mukauttaa toimintaa myös käyttämällä publish-testsuites-julkaisupalvelua ja antamalla julkaisupalvelulle syötteiksi testipaketit testien toteutuksen tulostiedostojen asemesta. Jos käytät publish-testsuites-julkaisupalvelua ja välität testipakettitiedostot syötteiksi julkaisupalvelulle, määritä myös alku- ja loppupäivämäärät raportti-ikkunaa varten (päivämääriä käytetään tehtäessä työtilassa kyselyitä kyseisen ajanjakson kaikista toteutustuloksista). Seuraavassa esimerkissä näytetään, miten ajetaan raportti kaikista Test1-projektin testipaketeista, valitaan kaikki toteutustulokset viimeisten 60 päivän ajalta ja luodaan taulukkomuotoinen raportti.

<project name="TPTP:n automatisoitavien palvelujen opetusohjelma"
default="main" xmlns:tptp="antlib:org.eclipse.hyades.automation.client.adapters.ant"> <!-- Kaikille automatisoitaville palveluille yhteisten ominaisuuksien määritys--> <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" />
<!-- Komentosarjakohtaisten, asennuksen mukaan vaihtelevien ominaisuuksien määritys --> <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"/>
<!-- Raportin ajo --> <target name="main" depends="test-results-publication"/>
<target name="set-date-range">     <!-- Määritä haluttu päivämääräväli käyttämällä Antin tstamp-vakiomekanismeja-->     <!-- Tämän esimerkin aikaväli on 60 päivää taaksepäin kuluvasta päivästä -->     <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>
<!-- Testipaketin tulosraportin julkaisu --> <target name="test-results-publication" depends="set-date-range"> <echo message="Julkaistaan testipaketin tulosraporttia..." /> <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>

Testien ajo komentoriviltä ja komentoliittymän komentosarjoista

Testit voidaan toteuttaa suoraan komentoriviltä ja komentoliittymän komentosarjoista, jolloin testin ominaisuudet ovat komentorivin argumenttien muodossa.TPTP-ympäristön automaation työasemasovittimet toimittavat .bat- ja .cmd-tiedoston Windowsissa käytettäväksi ja .sh-tiedoston käytettäväksi Linux-käyttöjärjestelmässä.Config-tiedostoon voi määrittää pitkiä argumenttijonoja ja/tai usein toistettuja argumentteja, jolloin testintoteutuspalvelun voi ajaa komentoriviltä niin, ettei kaikki argumentteja tarvitse kirjoittaa erikseen.Komentoliittymän automaation työasemasovitin esiintyy tekstitiedostona (komentotiedostoa tai komentosarjaa varten) ja täydentävänä Java-komponenttina -- molempien on oltava olemassa, jotta testejä voidaan toteuttaa komentoriviltä.Kaikki TPTP-ympäristön toteuttamat automaation työasemasovittimet ovat tiedostossa tptp-automation-client.jar, joskin ant-tptp.jar toisintaa osan sovitinkoodista Ant-jar-tiedoston muodossa (tällöin TPTP-tehtävien jar-tiedoston nimi pysyy yhdenmukaisena muiden käytettävissä olevien Ant-tehtävien kanssa).

Testintoteutuspalvelun ominaisuudet asetetaan määrittämällä ominaisuuden nimille yhdysmerkillä erotetut etuliitteet ja varmistamalla, että Eclipse-kotihakemisto tai -juurihakemisto on määritetty.

Testien ajo Java-sovelluksista ja lisäosista

Testit voi aloittaa mistä tahansa Java-sovelluksesta sekä muista automaation työasemasovittimista, kuten Ant-sovittimista tai komentoliittymän sovittimista. Käytä Java-sovitinta sisäisesti ja ripustaudu palveluväylään.Testejä voi toteuttaa Java-koodista, jos tptp-automation-client.jar-tiedostoon on viitattu oikein (Eclipse-ympäristössä tämä tarkoittaa sitä, että kirjasto on Java-projektin koontipolulla) ja kaikki tyypilliset TPTP-vaatimukset täyttyvät, esimerkiksi agentin ohjaimen on oltava ajossa. 

Java-automaation työasemasovittimessa on hyvin yksinkertainen testien toteutuksen ohjelmointirajapinta, jossa kaikki määritettävät ominaisuudet sisältyvät tavalliseen Java-ominaisuusobjektiin.Seuraava esimerkki toteuttaa saman testin kuin aiempi Ant-komentosarjan esimerkki.Huomaa, että toteutusmetodiin välitetty palvelun tunnus on TPTP-testintoteutuspalvelun tunnus (tämä palvelu tukee kaikkia TPTP-perustestilajeja) -- myös muita automatisoitavia palveluita voi toteuttaa, jos niitä on käytettävissä, kunhan alla olevassa koodissa muutetaan tunnistetta ja ominaisuuksia.

// Luodaan Java-sovitin, joka liittyy määritettyyn Eclipse-kotihakemistoon
AutomationClientAdapter automation = new AutomationClientAdapter
  ("d:\\development\\eclipse");

// Luodaan ja määritetään properties-objekti
Properties properties = new Properties();
properties.setProperty("workspace", "D:\\development\\workspace");
properties.setProperty("project", "tests");
properties.setProperty("suite", "unit-tests/testA.testsuite");

// Toteutetaan alla nimetty palvelu käyttämällä määritettyjä ominaisuuksia automation.execute("org.eclipse.hyades.test.tools.core.execute", properties);

Liittyviä käsitteitä
Automatisoitavien palvelujen kehyksen yleiskuvaus

Aiheeseen liittyviä tehtäviä
Testien aloitus komentosarjoista ja sovelluksista

Aiheeseen liittyviä ohjeita
Tuetut testintoteutuspalvelun ominaisuudet