1. Pārskatiet prezentāciju Java Web Frameworks

Uzdevumi

  1. Pievienojiet izpildes atļaujas geckodriver bibliotēkai1:

    cd  ~/workspace/JTM/lib
    chmod +x geckodriver
  2. Ja nepieciešams, mainiet server.port=8800 vērtību failā .../src/main/resources/application.properties uz citu porta numuru, piemēram, 8801 atbilstoši jums piešķirtajam numuram.
  3. Izpētiet paketi jtm.activity15.
  4. Ieviesiet un anotējiet nepieciešamo JettyApplication klases metodi main() un JettyController klases teachers(...) metodi, lai izveidotu vienkāršu tīmekļa lietojumprogrammu.
  5. Palaidiet JettyApplication klasi kā Java lietojumprogrammu un reģistrējieties pārlūkprogrammas lapā http://localhost:8800/.
  6. Ieviesiet metodes insertTeacher(...), findTeacher(...) un deleteTeacher(...), kas:
    1. atbildēt attiecīgajās lietojumprogrammas tīmekļa mapēs,
    2. ņemt no tīmekļa pārlūkprogrammas nodotos parametrus,
    3. izsauciet atbilstošās metodes no klases TeacherManager pakotnē jtm.activity13 un
    4. iestata atbildes veiksmes vai kļūdas statusu un parāda atdoto vērtību kā HTML.

Izpildiet insertTeacher() prasības

  1. Metode reaģē uz mapi /insertTeacher
  2. Metode izmanto divus neobligātus parametrus name un surname
  3. Metode izsauce TeacherManager klases metodi insertTeacher(String, String)
  4. Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/insertTeacher, tiek atvērts, tas atgriež:
    Status: OK (200),
    HTML:

    <form action=''>
    Name: <input type='text' name='name' value=''><br/>
    Surname: <input type='text' name='surname' value=''><br/>
    <input type='submit' value='Insert'></form><br/>
    <a href='/'>Back</a>
  5. Kad tiek nodoti derīgi parametri, piem. http://localhost:8800/insertTeacher?name=Tom&surname=Tom, tas atgriež:
    Statuss: OK
    HTML:

    true<br/>
    <a href='/'>Back</a>
  6. Ja tiek nodoti nederīgi parametri, piemēram, http://localhost:8800/insertTeacher?name=&surname=, tas atgriež:
    HTTP statuss: Bad Request (400)

    false<br/>
    <a href='/'>Back</a>

Izpildiet findTeacher() prasības

  1. Metode reaģē uz mapi /findTeacher
  2. Metode izmanto divus neobligātus parametrus name un surname
  3. Metode izsauc klases TeacherManager metodi findTeacher(String, String)
  4. Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/findTeacher, tiek atvērts, tas atgriež:
    Statuss: OK,
    HTML:

    <form action=''>
    Name: <input type='text' name='name' value=''><br/>
    Surname: <input type='text' name='surname' value=''><br/>
    <input type='submit' value='Find'></form><br/>
    <a href='/'>Back</a>
  5. Kad parametri tiek nodoti, piem. http://localhost:8800/findTeacher?name=Tom&surname=Tom, tas atgriež:
    Statuss OK
    HTML:

    <form action=''>
    Name: <input type='text' name='name' value=''><br/>
    Surname: <input type='text' name='surname' value=''><br/>
    <input type='submit' value='Find'></form><br/>
    <table>
    <tr>
    <td>11</td>
    <td>Tom</td>
    <td>Tom</td>
    </tr>
    </table><br>
    <a href='/'>Back</a>

    kur katrs atdotais Teacher objekts ir parādīts atsevišķā tabulas rindā.

Izpildiet deleteTeacher() prasības

  1. Metode reaģē uz mapi /deleteTeacher
  2. Metodei ir nepieciešams viens neobligāts parametrs id
  3. Metde izsauc klases TeacherManager metodi deleteTeacher(int)
  4. Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/deleteTeacher, tiek atvērts, tas atgriež:
    Statuss: OK,
    HTML:

    <form action=''>
    ID: <input type='text' name='id' value=''><br/>
    <input type='submit' value='Delete'></form><br/>
    <a href='/'>Back</a>
  5. Kad derīgs parametrs ir nodots, piem. http://localhost:8800/deleteTeacher?id=5, tas atgriež:
    Statuss: OK
    HTML:

    true<br/>
    <a href='/'>Back</a>
  6. Ja tiek nodoti nederīgi parametri, piemēram, http://localhost:8800/deleteTeacher?id=1, tas atgriež:
    HTTP statuss: Bad Request

    false<br/>
    <a href='/'>Back</a>

Izpildiet vienību testus

  1. JettyApplicationTest.java ir vienības tests, kas pārbauda tīmekļa lietojumprogrammu, izmantojot API izsaukumus.
  2. SeleniumWebDriverTests.java ir tīmekļa GUI tests, kas pārbauda tīmekļa lietojumprogrammu, emulējot lietotāja darbības pārlūkprogrammā Firefox.

Papildus informācija

Implementēšanai:

  1. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html
  2. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html
  3. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
  4. https://tomcat.apache.org/tomcat-8.0-doc/servletapi/javax/servlet/http/HttpServletRequest.html
  5. https://tomcat.apache.org/tomcat-8.0-doc/servletapi/javax/servlet/http/HttpServletResponse.html

API testēšanai:

  1. Spring Boot testēšanas līdzekļi

GUI testēšanai:

  1. SeleniumIDE un Plugin for Firefox
  2. Katalon Recorder un Plugin for Firefox

  1. ^ Kad projekts tiek izvilkts no *.zip faila, izpildes rekvizīts tiek zaudēts visiem failiem. Tāpēc SeleniumWebDriverTests izpildes atļaujas. Java fails ir jāatjauno, jo Selenium testiem tie ir nepieciešami.

Created by Valdis Vītoliņš on 2024-04-12 19:42
Last modified by Valdis Vītoliņš on 2024-04-12 19:50
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License