{"id":166,"date":"2025-12-11T12:39:36","date_gmt":"2025-12-11T12:39:36","guid":{"rendered":"https:\/\/blog.kerjarapi.com\/?p=166"},"modified":"2025-12-12T11:54:34","modified_gmt":"2025-12-12T11:54:34","slug":"bahasa-indonesia-katalon-professional-foundation-series-documentations","status":"publish","type":"post","link":"https:\/\/blog.kerjarapi.com\/?p=166&lang=id","title":{"rendered":"(Bahasa Indonesia) Katalon Professional Foundation Series Documentations"},"content":{"rendered":"\n<p>Berikut adalah dokumentasi untuk template &#8220;Katalon Professional Foundation&#8221;, yaitu template siap pakai yang didalamnya termasuk:<\/p>\n\n\n\n<p>\u2713 Folder rapih, siap scale<br>\u2713 Profiles: SIT \/ UAT \/ Prod<br>\u2713 Test Data: CSV &amp; Excel<br>\u2713 Parameterized Objects<br>\u2713 Custom Keywords<br>\u2713 Test Suites siap run<br>\u2713 Readable reporting ready di export ke HTML\/PDF<\/p>\n\n\n\n<p>Untuk cek template-nya, silahkan klik <a href=\"https:\/\/lynk.id\/kerjarapi\/zgyq92jnljkd\" target=\"_blank\" rel=\"noopener\">disini<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Login<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Login Test Case<\/h3>\n\n\n\n<p>Disediakan 10 Test Case &#8211; positif dan negatif case untuk Login, dan mengikuti Test Scenario sebagai berikut:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>TC ID<\/td><td>Case Type<\/td><td>Test Scenario Title<\/td><td>Expected Result<\/td><\/tr><tr><td>Login001<\/td><td>Positive<\/td><td>Login dengan credential valid<\/td><td>Berhasil login dan redirect ke halaman<\/td><\/tr><tr><td>Login002<\/td><td>Negative<\/td><td>Login dengan email dikosongkan<\/td><td>System memberikan validasi field perlu diisi<\/td><\/tr><tr><td>Login003<\/td><td>Negative<\/td><td>Login dengan password dikosongkan<\/td><td>System memberikan validasi field perlu diisi<\/td><\/tr><tr><td>Login004<\/td><td>Negative<\/td><td>Login dengan email dan password dikosongkan<\/td><td>System memberikan validasi field perlu diisi<\/td><\/tr><tr><td>Login005<\/td><td>Negative<\/td><td>Login dengan email tidak terdaftar<\/td><td>System memberikan validasi credential invalid<\/td><\/tr><tr><td>Login006<\/td><td>Negative<\/td><td>Login dengan format email invalid<\/td><td>System memberikan validasi format email salah<\/td><\/tr><tr><td>Login007<\/td><td>Negative<\/td><td>Login dengan password invalid<\/td><td>System memberikan validasi credential invalid<\/td><\/tr><tr><td>Login008<\/td><td>Negative<\/td><td>Login dengan email dan password invalid<\/td><td>System memberikan validasi credential invalid<\/td><\/tr><tr><td>Login009<\/td><td>Positive<\/td><td>Login menggunakan test data CSV<\/td><td>Sesuai expected result (status) dari setiap baris data<\/td><\/tr><tr><td>Login010<\/td><td>Positive<\/td><td>Login menggunakan test data EXCEL<\/td><td>Sesuai expected result (status) dari setiap baris data<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Setiap Test Case mengikuti struktur sebagai berikut:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Persiapan data test<\/li>\n\n\n\n<li>Open &amp; maximize browser<\/li>\n\n\n\n<li>Panggil Custom Keyword Login<\/li>\n\n\n\n<li>Verifikasi expected result <\/li>\n\n\n\n<li>Panggil Custom Keyword takeScreenshotWithText(), dengan parameter:\n<ul class=\"wp-block-list\">\n<li>String fileName -&gt; nama file screenshot. Jika file berada di dalam folder, folder harus exist<\/li>\n\n\n\n<li>String text -&gt; text di dalam screenshot<\/li>\n\n\n\n<li>int positionX -&gt; posisi X untuk text di screenshot. Posisi X=0 berada di kiri atas halaman. X++ ke kanan<\/li>\n\n\n\n<li>int positionY -&gt; posisi Y untuk text di screenshot. Posisi Y=0 berada di kiri atas halaman. Y++ ke bawah<\/li>\n\n\n\n<li>int fontSize -&gt; font size untuk text di screenshot<\/li>\n\n\n\n<li>String textColor -&gt; color code untuk text di screenshot, contohnya &#8220;#FF0000&#8221; = merah<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tutup browser<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Login Methods \/ Keywords<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>@Keyword\n\tdef login(String email, String password) {\n\t\tKeywordUtil.logInfo('Proses login...')\n\t\tWebUI.setText(findTestObject('Login Page\/Login Section\/txt_email'), email)\n\t\tWebUI.setText(findTestObject('Login Page\/Login Section\/txt_password'), password)\n\t\tWebUI.click(findTestObject('Login Page\/Login Section\/btn_login'))\n\t}<\/code><\/pre>\n\n\n\n<p>Keyword &#8220;Login&#8221; digunakan untuk mesimplifikasi proses login. Di dalam Test Case langsung dipanggil keyword ini untuk Login. Tujuan mensimplifikasi proses Login adalah agar terlihat lebih rapi dalam report.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@Keyword\n\tdef useTestDataToLoginAndVerify(String TestDataName, int columnEmail, int columnPassword, int columnStatus) {\n\t\t...\n\t}<\/code><\/pre>\n\n\n\n<p>Keyword &#8220;useTestDataToLoginAndVerify&#8221; digunakan untuk mengakses Data Test dan melakukan looping untuk semua data credential yang ada di dalam Data Test. Pada template ini, Data Test yang digunakan bernama &#8220;loginCredentialsData-CSV&#8221; atau &#8220;loginCredentialsData-EXCEL&#8221;. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@Keyword\n\tdef verifyUserIsLoggedIn() {\n\t\tWebUI.waitForPageLoad(10)\n\t\tWebUI.verifyElementPresent(findTestObject('Dashboard Page\/lbl_loggedInAs'), 2)\n\t}\n\n\n\tdef Logout() {\n\t\tWebUI.click(findTestObject('Dashboard Page\/lbl_logout'))\n\t\tWebUI.waitForPageLoad(10)\n\t}<\/code><\/pre>\n\n\n\n<p>Keyword &#8220;verifyUserIsLoggedIn()&#8221; digunakan untuk verifikasi apakah sudah sudah login atau belum. Verifikasi dilakukan dengan mendeteksi (menggunakan method WebUI.verifyElementPresent()) object &#8220;lbl_loggedInAs&#8221;. <\/p>\n\n\n\n<p>Keyword &#8220;Logout()&#8221; digunakan untuk mensimplifikasikan proses logout. Keyword ini tidak diberikan tag &#8220;@Keywords&#8221; karena tidak dipanggil di Test Case, melainkan hanya dipanggil dalam method &#8220;useTestDataToLoginAndVerify()&#8221;, agar setiap proses looping data credential dari CSV\/ Excel tidak perlu open &amp; close browser.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> @Keyword\n\tdef verifyValidationIsPresentForInvalidCredential() {\n\t\t...\n\t}<\/code><\/pre>\n\n\n\n<p>Keyword &#8220;verifyValidationIsPresentForInvalidCredential()&#8221; digunakan di dalam negative Test Case, untuk memverifikasikan validasi jika credential invalid. Proses ini di simplifikasikan ke dalam method \/ keyword agar lebih mudah di baca di dalam report view.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Login Test Suite &amp; Report View<\/h3>\n\n\n\n<p>Berikut contoh hasil running Test Suite, Report View dalam format HTML.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"424\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1024x424.png\" alt=\"\" class=\"wp-image-168\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1024x424.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-300x124.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-768x318.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1536x636.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image.png 1857w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1-1024x517.png\" alt=\"\" class=\"wp-image-169\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1-1024x517.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1-300x152.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1-768x388.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1-1536x776.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-1.png 1861w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Script Test Case dibuat supaya menghasilkan report yang readable, dan disertakan screenshot dan text-nya.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Search Product<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Search Product Test Case<\/h3>\n\n\n\n<p>Disediakan 10 Test Case &#8211; positif dan negatif case untuk Search product, dan mengikuti Test Scenario sebagai berikut:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>TC ID<\/td><td>Case Type<\/td><td>Test Scenario Title<\/td><td>Expected Result<\/td><\/tr><tr><td>SearchProduct001<\/td><td>Positive<\/td><td>Search nama lengkap produk<\/td><td>Berhasil search produk<\/td><\/tr><tr><td>SearchProduct002<\/td><td>Positive<\/td><td>Search separuh nama produk<\/td><td>Berhasil search produk<\/td><\/tr><tr><td>SearchProduct003<\/td><td>Negative<\/td><td>Search tanpa huruf besar<\/td><td>Berhasil search produk<\/td><\/tr><tr><td>SearchProduct004<\/td><td>Negative<\/td><td>Search dengan semua huruf besar<\/td><td>Berhasil search produk<\/td><\/tr><tr><td>SearchProduct005<\/td><td>Negative<\/td><td>Search nama produk diawali dengan spasi<\/td><td>Gagal search produk<\/td><\/tr><tr><td>SearchProduct006<\/td><td>Negative<\/td><td>Search nama produk diakhiri dengan spasi<\/td><td>Berhasil search produk<\/td><\/tr><tr><td>SearchProduct007<\/td><td>Negative<\/td><td>Search tanpa input<\/td><td>System menampilkan semua produk<\/td><\/tr><tr><td>SearchProduct008<\/td><td>Negative<\/td><td>Search produk yang tidak exist<\/td><td>Gagal search produk<\/td><\/tr><tr><td>SearchProduct009<\/td><td>Negative<\/td><td>Search lalu hapus dan search kembali<\/td><td>Berhasil search produk untuk kedua kalinya<\/td><\/tr><tr><td>SearchProduct010<\/td><td>Negative<\/td><td>Search lalu klik produk untuk lihat detail produk<\/td><td>System akan redirect ke halaman detail produk<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Setiap Test Case mengikuti struktur sebagai berikut:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Persiapan data test<\/li>\n\n\n\n<li>Open &amp; maximize browser<\/li>\n\n\n\n<li>Panggil Custom Keyword Search Product<\/li>\n\n\n\n<li>Verifikasi expected result <\/li>\n\n\n\n<li>Panggil Custom Keyword takeScreenshotWithText()<\/li>\n\n\n\n<li>Tutup browser<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Search Product Methods \/ Keywords<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>@Keyword\n\tdef searchProductName(String productName) {\n\t\tWebUI.click(findTestObject('Product Page\/txt_search'))\n\t\tWebUI.setText(findTestObject('Product Page\/txt_search'), productName)\n\t\tWebUI.click(findTestObject('Product Page\/btn_search'))\n\t}<\/code><\/pre>\n\n\n\n<p>Keyword &#8220;searchProductName()&#8221; digunakan untuk mensimplifikasikan proses search produk dengan menggunakan parameter productName (nama produk). Proses ini di simplifikasikan ke dalam method \/ keyword agar lebih mudah di baca di dalam report view.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Search Product Objects<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>btn_firstProduct_viewProductDetails<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(\/\/div&#91;@class='product-image-wrapper'])&#91;1]\/\/li<\/code><\/pre>\n\n\n\n<p>XPath ini akan mengambil tombol &#8220;View Detail Product&#8221; pada product pertama yang muncul di dalam list<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34-1024x516.png\" alt=\"\" class=\"wp-image-173\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34-1024x516.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34-300x151.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34-768x387.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34-1536x774.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-21-34.png 1822w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/div&#91;@class='product-image-wrapper']<\/code><\/pre>\n\n\n\n<p>XPath ini mengarah kepada div setiap produk, dan ada 34 produk dalam halaman ini. Maka kita perlu mengambil div pertama (produk pertama), dengan menambahkan pada XPath sebelumnya, menjadi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(\/\/div&#91;@class='product-image-wrapper'])&#91;1]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15-1024x516.png\" alt=\"\" class=\"wp-image-174\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15-1024x516.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15-300x151.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15-768x387.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15-1536x774.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/Screenshot-from-2025-12-11-18-24-15.png 1822w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Untuk mendapatkan tombol &#8220;View Product&#8221; yang berada di dalam div produk, XPath yang digunakan adalah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(\/\/div&#91;@class='product-image-wrapper'])&#91;1]\/\/li<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38-1024x521.png\" alt=\"\" class=\"wp-image-175\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38-1024x521.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38-300x153.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38-768x391.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38-1536x781.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_18-38.png 1821w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>btn_search<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/button&#91;@type='button' and @id='submit_search']<\/code><\/pre>\n\n\n\n<p>XPath ini mengarah kepada tombol Search di Search bar, yang di klik saat mencari produk.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lbl_firstProduct_productName<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>((\/\/div&#91;@class='product-image-wrapper'])&#91;1]\/\/p)&#91;1]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"522\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2-1024x522.png\" alt=\"\" class=\"wp-image-176\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2-1024x522.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2-300x153.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2-768x392.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2-1536x783.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-2.png 1822w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>XPath ini mengarah kepada nama produk pertama. Berikut adalah contoh cara mengambil nama produk pertama dan memverifikasikannya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String firstProductName = WebUI.getText(findTestObject('Product Page\/lbl_firstProduct_productName'))\n\nWebUI.verifyMatch(firstProductName, 'Blue Top', false)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lbl_productByPosition_productName<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>((\/\/div&#91;@class='product-image-wrapper'])&#91;${position}]\/\/p)&#91;1]<\/code><\/pre>\n\n\n\n<p>XPath ini adalah XPath dynamic. Saat memanggil object ini, kita harus memberikan value pada variable ${position}. Sebagai contoh, jika variable diberikan value = 2, maka XPath akan menjadi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>((\/\/div&#91;@class='product-image-wrapper'])&#91;2]\/\/p)&#91;1]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3-1024x527.png\" alt=\"\" class=\"wp-image-177\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3-1024x527.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3-300x154.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3-768x395.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3-1536x790.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-3.png 1793w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Maka XPath akan mengarah ke nama produk kedua dari list produk. Jadi, kita dapat mengatur value &#8220;position&#8221; untuk mengarahkan ke nama produk sesuai dengan posisinya di dalam list.<\/p>\n\n\n\n<p>Cara memanggil dynamic object di dalam Test Case adalah sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String valuePosition = '2'\n\nWebUI.verifyElementPresent(findTestObject('Product Page\/lbl_productByPosition_productName', &#91;('position') : valuePosition]), 5)<\/code><\/pre>\n\n\n\n<p>&#8220;(&#8216;position&#8217;)&#8221; -> nama variable di dalam object<br>&#8220;valuePosition&#8221; -> nama variable yang berisikan value position<br>&#8220;5&#8221; -> adalah lama maximal timeout untuk verify elemen present<\/p>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lbl_productName<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(\/\/div&#91;@class='product-image-wrapper']\/\/p&#91;contains(text(),'${productName}')])&#91;1]<\/code><\/pre>\n\n\n\n<p>XPath lbl_productName juga merupakan dynamic object, yang mempunyai parameter ${productName}. Sebagai contoh, jika parameter ini diberikan value &#8220;Sleeveless Dress&#8221;, maka XPath akan mengarah ke produk &#8220;Sleeveless Dress&#8221; yang exist di dalam list produk. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01-1024x523.png\" alt=\"\" class=\"wp-image-178\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01-1024x523.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01-300x153.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01-768x392.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01-1536x784.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/2025-12-11_19-01.png 1777w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Untuk memanggil dynamic object ini di dalam Test Case, bisa dengan cara:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WebUI.verifyElementPresent(findTestObject('Product Page\/lbl_productName', &#91;('productName'):productName]), 5)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>txt_Search<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/input&#91;@type='text' and @id='search_product']<\/code><\/pre>\n\n\n\n<p>XPath ini mengarah kepada textbox Search yang berada di halaman Produk.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Untuk mempelajari lebih dalam tentang Dynamic Object, bisa cek blog berikut: <strong><a href=\"https:\/\/blog.kerjarapi.com\/id\/2025\/09\/09\/mengambil-elemen-menggunakan-xpath-untuk-automation-di-katalon-studio\/\" data-type=\"post\" data-id=\"151\">Mengambil Elemen Menggunakan XPath untuk Automation di Katalon Studio<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Search Product Test Suite &amp; Report View<\/h3>\n\n\n\n<p>Berikut contoh hasil running Test Suite, Report View dalam format HTML.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"398\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5-1024x398.png\" alt=\"\" class=\"wp-image-182\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5-1024x398.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5-300x117.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5-768x299.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5-1536x597.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-5.png 1875w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4-1024x521.png\" alt=\"\" class=\"wp-image-181\" srcset=\"https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4-1024x521.png 1024w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4-300x153.png 300w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4-768x390.png 768w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4-1536x781.png 1536w, https:\/\/blog.kerjarapi.com\/wp-content\/uploads\/2025\/12\/image-4.png 1853w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Test Data<\/h2>\n\n\n\n<p>Login dan Search Product menggunakan data ready-to-use yang disediakan di dalam folder Data Files. Terdapat 3 Test Data, yaitu:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>loginCredentialsData-CSV<\/li>\n\n\n\n<li>loginCredentialsData-EXCEL<\/li>\n\n\n\n<li>productNameData-EXCEL  <\/li>\n<\/ol>\n\n\n\n<p>Ketiga file ini digunakan di dalam Test Case Login dan Search Product. Tujuan menggunakan Test Data, adalah supaya data dapat di-manage dengan mudah tanpa harus mengakses Test Case dan mengubahnya satu persatu.<\/p>\n\n\n\n<p>Contoh pemanggilan Test Data dalam Test Case Login:<\/p>\n\n\n\n<p>String email_valid = <em>findTestData<\/em>(&#8216;loginCredentialsData-EXCEL&#8217;).getValue(1,1)<\/p>\n\n\n\n<p>Contoh pemanggilan Test Data dalam Test Case Search Product:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String productName = findTestData('productNameData-CSV').getValue('Product Name', 1)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Pada Test Case &#8220;Login&#8221;, value diambil dari kolom 1, dan baris 1.<\/p>\n\n\n\n<p>Pada Test Case &#8220;Search Product&#8221;, value diambil dari kolom &#8220;Product Name&#8221;, dan baris 1.<\/p>\n\n\n\n<p>Kolom bisa dipilih berdasarkan posisi kolom atau dengan nama kolom.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Berikut adalah dokumentasi untuk template &#8220;Katalon Professional Foundation&#8221;, yaitu template siap pakai yang didalamnya termasuk: \u2713 Folder rapih, siap scale\u2713 Profiles: SIT \/ UAT \/ Prod\u2713 Test Data: CSV &amp; Excel\u2713 Parameterized Objects\u2713 Custom Keywords\u2713 Test Suites siap run\u2713 Readable reporting ready di export ke HTML\/PDF Untuk cek template-nya, silahkan klik disini. Login Login Test [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":200,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,25],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-id-id","category-katalon-auto-id"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=166"}],"version-history":[{"count":10,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":187,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions\/187"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=\/wp\/v2\/media\/200"}],"wp:attachment":[{"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kerjarapi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}