Skip to content

takai-sama/FinalProject

Repository files navigation

Final Project

Projek ini berisi automation testing sebagai projek akhir kursus QA engineer.
Untuk API test menggunakan public API berikut: https://dummyapi.io/docs
Untuk Web UI Test menggunakan website berikut sebagai target dan pembuatan test scenario: https://www.demoblaze.com/

Tools yang digunakan :

1. JUnit
2. RestAssured
3. Selenium
4. Cucumber

Test dibagi menjadi 2 yaitu :
  1. Test API (tag @api)
image
  1. Test WEB UI (tag @web)
image

Test API

Tes API terdiri dari:
- Test Get List Data
- Test Create New User
- Test Delete User
- Test Update User
- Test Get List of Tags

Test WEB

Tes Web terdiri dari:
- Signup With New Account
- Signup With Account Already Exist
- Login with Valid Account
- Login with Invalid Account
- Description Product Page
- Category Product
- Add to Cart and Remove it
- Checkout

Output

Hasil output lengkap berada di folder reports

Test API result

image

Test WebUI result

image

Tutorial

Automation API

1. Create New Project dengan Intellij Idea dengan konfigurasi sebagai berikut :
  1. Pada file build.gradle, bagian depedencies. masukan beberapa depedency (untuk api testing) berikut
  dependencies {
    testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.4.0'
    implementation group: 'io.cucumber', name: 'cucumber-java', version: '7.15.0'
    implementation group: 'org.json', name: 'json', version: '20231013'
    testImplementation group: 'io.rest-assured', name: 'json-path', version: '5.3.0'
    testImplementation group: 'io.rest-assured', name: 'json-schema-validator', version: '5.3.0'
    
}

io.rest-assured : library java yang digunakan untuk API Restful, seperti mengirim method GET dan POST, menambahkan header, parameter dan body request serta dapat diintegrasi dengan framework test seperti JUnit dan TestNG io.cucumber : library java yang digunakan untuk membuat scenario dengan gherkin, menerapkan pendekatan BDD org.json : library untuk melakukan input payload menggunakan JSONObject json-path : library yang digunakan untuk membaca letak file json yg akan dijadikan validasi json-schema-validator : library untuk schema validator dengan file yang dibaca json-path

  1. buat folder helper, definisikan file dengan nama endpoint.java. fungsinya untuk mendefine endpoint apa saja yang akan digunakan nanti (akan dipanggil) image

  2. di folder helper, buat file models.java, fungsinya untuk mensetup fungsi/method untuk setupheader, definisi method http request seperti get, post menggunkaan rest assured. method di models akan dipanggil di page nanti image

  3. buat folder page, buat file dengan nama apipage.java , berisi method-method yang akan digunakan / dipanggil di step def. file di page ini seperti jembatan antara konfigurasi dengan stepdef. isinya seperti prepareURL() dimana baseURL di helper.Endpoint di panggil disini dan akan digunakan stepdef untuk "Given"nya image

  4. buat folder feature, definiskan api.feature. ini adalah file cucumber yg berisi bahasa gherkin. buat skenario disini. dari sini bisa buat stepdef otomatis dengan "alt+enter" lalu "create step definition" otomatis mengcreate folder stepDef dan file stepfile (Apistep.java) image

  5. di folder stepDef, definisikan stepfile yg tadi otomatis terbuat (apistep) dengan memanggil method dari folder page, yaitu apipage.java (integrasikan) image

  6. buat folder runner, buat file runner (ApiRunner.java) untk menjalankan tes dengan cucumber,

image plugin pretty : agar saat menjalankan tes di log menjadi lebih terstruktur glue : unutk menaruh tempat step definition (nama foldernya) features = nama folder tempat menaruh tes scenario dengan file cucumber tags : untuk menjalankan tes yang hanya memiliki tag yang sudah ditentukan di file cucumber monokrom : Ini memastikan keluaran konsol tanpa format warna apa pun, sehingga lebih mudah dibaca di beberapa lingkungan.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages