Tutorial Apache SEMUT
⚡ Ringkasan Cerdas
Apache Ant adalah perangkat lunak sumber terbuka, Java-alat pembuatan berbasis yang mengotomatiskan kompilasi, pengujian, pengemasan, dan penyebaran melalui satu file build.xml. Terintegrasi dengan Selenium ke TestNGHal ini membuat eksekusi pengujian dapat diulang, terorganisir, dan mudah dijalankan di mana saja.

Apa itu Semut Apache?
Saat membuat produk perangkat lunak yang lengkap, kita perlu mengurus API pihak ketiga yang berbeda, classpath mereka, membersihkan file biner yang dapat dieksekusi sebelumnya, mengkompilasi kode sumber kita, mengeksekusi kode sumber, membuat laporan dan menerapkan basis kode, dll. Jika tugas-tugas ini adalah Jika dilakukan satu per satu secara manual, akan memakan waktu yang sangat lama, dan prosesnya rawan kesalahan.
Inilah pentingnya alat pembangunan seperti Ant. Ia menyimpan, mengeksekusi, dan mengotomatiskan semua proses dalam urutan berurutan yang disebutkan dalam file konfigurasi Ant (biasanya build.xml).
Manfaat build Ant
- Ant menciptakan siklus hidup aplikasi yaitu membersihkan, mengkompilasi, mengatur ketergantungan, mengeksekusi, melaporkan, dll.
- Ketergantungan API pihak ketiga dapat diatur oleh Ant yaitu jalur kelas file Jar lainnya diatur oleh file build Ant.
- Aplikasi lengkap dibuat untuk pengiriman dan penerapan ujung ke ujung.
- Ini adalah alat pembuatan sederhana di mana semua konfigurasi dapat dilakukan menggunakan file XML dan dapat dijalankan dari baris perintah.
- Itu membuat kode Anda bersih karena konfigurasi terpisah dari logika aplikasi sebenarnya.
Cara menginstal Ant
Langkah-langkah untuk menginstal Ant di Windows adalah sebagai berikut
Langkah 1) Pergi ke https://ant.apache.org/bindownload.cgi Atau Unduh file .zip dari apache-ant-1.9.4-bin.zip
Langkah 2) Buka zip folder dan buka dan salin jalur ke akar folder yang tidak di-zip
Langkah 3) Buka Mulai -> Komputer -> klik kanan di sini dan pilih 'Properti' lalu klik Pengaturan Sistem Lanjutan
Langkah 4) Jendela baru terbuka. Klik tombol 'Variabel Lingkungan…'.
Langkah 5) Klik tombol 'Baru…' dan tetapkan nama variabel sebagai 'ANT_HOME' dan nilai variabel sebagai jalur root ke folder yang tidak di-zip dan klik OK.
Langkah 6) sekarang pilih variabel 'Jalur' dari daftar dan klik 'Edit' dan tambahkan; %ANT_HOME%\bin.
Mulai ulang sistem satu kali dan Anda siap menggunakan alat Ant build sekarang.
Langkah 7) Untuk memeriksa versi Ant Anda menggunakan baris perintah:
Semut –versi
Memahami Build.xml
Build.xml adalah komponen terpenting dari alat Ant build. Untuk sebuah Java proyek, semua tugas terkait pembersihan, pengaturan, kompilasi, dan penerapan disebutkan dalam file ini dalam format XML. Saat kami menjalankan file XML ini menggunakan baris perintah atau plugin IDE apa pun, semua instruksi yang ditulis ke dalam file ini akan dieksekusi secara berurutan.
Mari kita pahami kode dalam contoh build.XML
-
Tag proyek digunakan untuk menyebutkan nama proyek dan atribut berdasarkannya. Basedir adalah direktori root suatu aplikasi
<project name="YTMonetize" basedir=".">
- Tag properti digunakan sebagai variabel dalam file build.XML untuk digunakan pada langkah selanjutnya
<property name="build.dir" value="${basedir}/build"/> <property name="external.jars" value=".\resources"/> <property name="ytoperation.dir" value="${external.jars}/YTOperation"/> <property name="src.dir"value="${basedir}/src"/>
- Target tag yang digunakan sebagai langkah yang akan dijalankan secara berurutan. Atribut nama adalah nama target. Anda dapat memiliki beberapa target dalam satu build.xml
<target name="setClassPath"> - tag jalur digunakan untuk menggabungkan semua file secara logis yang berada di lokasi umum
<path id="classpath_jars"> - tag pathelement akan mengatur jalur ke root lokasi umum tempat semua file disimpan
<pathelement path="${basedir}/"/> - tag pathconvert digunakan untuk mengonversi jalur semua file umum di dalam tag jalur ke format jalur kelas sistem
<pathconvert pathsep=";" property="test.classpath" refid="classpath_jars"/>
- tag fileset digunakan untuk mengatur classpath untuk jar pihak ketiga yang berbeda di proyek kami
<fileset dir="${ytoperation.dir}" includes="*.jar"/>
- Tag gema digunakan untuk mencetak teks di konsol
<echo message="deleting existing build directory"/>
- Tag hapus akan membersihkan data dari folder tertentu
<delete dir="${build.dir}"/>
- tag mkdir akan membuat direktori baru
<mkdir dir="${build.dir}"/>
- tag javac digunakan untuk mengkompilasi kode sumber java dan memindahkan file .class ke folder baru
<javac destdir="${build.dir}" srcdir="${src.dir}"> <classpath refid="classpath_jars"/> </javac>
- tag jar akan membuat file jar dari file .class
<jar destfile="${ytoperation.dir}/YTOperation.jar" basedir="${build.dir}">
- tag manifes akan mengatur kelas utama Anda untuk dieksekusi
<manifest> <attribute name="Main-Class" value="test.Main"/> </manifest>
- Atribut 'depends' digunakan untuk membuat satu target bergantung pada target lainnya
<target name="run" depends="compile">
- Tag java akan menjalankan fungsi utama dari toples yang dibuat di bagian target kompilasi
<java jar="${ytoperation.dir}/YTOperation.jar" fork="true"/>
Jalankan Ant menggunakan Eclipse Plugin
Untuk menjalankan Ant dari eclipse, masuk ke file build.xml -> klik kanan pada file -> Run as… -> klik Build file
Example
Kami akan mengambil contoh program kecil yang akan menjelaskan fungsionalitas Ant dengan sangat jelas. Struktur proyek kami akan terlihat seperti –
Di sini, dalam contoh ini kita memiliki 4 target
- Tetapkan jalur kelas untuk toples eksternal,
- Bersihkan kode yang telah dipenuhi sebelumnya
- Kompilasi kode Java yang ada
- Jalankan kodenya
Guru99AntClass.class
package testAnt; import java.util.Date; public class Guru99AntClass { public static void main(String...s){ System.out.println("HELLO GURU99 ANT PROGRAM"); System.out.println("TODAY's DATE IS->"+ currentDate() ); } public static String currentDate(){ return new Date().toString(); } }
Bangun.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Project tag used to mention the project name, and basedir attribute will be the root directory of the application--> <project name="YTMonetize" basedir="."> <!--Property tags will be used as variables in build.xml file to use in further steps--> <property name="build.dir" value="${basedir}/build"/> <property name="external.jars" value=".\resources"/> <property name="ytoperation.dir" value="${external.jars}/YTOperation"/> <property name="src.dir"value="${basedir}/src"/> <!--Target tags used as steps that will execute in sequential order. name attribute will be the name of the target and < a name=OLE_LINK1 >'depends' attribute used to make one target to depend on another target --> <target name="setClassPath"> <path id="classpath_jars"> <pathelement path="${basedir}/"/> </path> <pathconvert pathsep=";"property="test.classpath" refid="classpath_jars"/> </target> <target name="clean"> <!--echo tag will use to print text on console--> <echo message="deleting existing build directory"/> <!--delete tag will clean data from given folder--> <delete dir="${build.dir}"/> </target> <target name="compile" depends="clean,setClassPath"> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--mkdir tag will create new director--> <mkdir dir="${build.dir}"/> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--javac tag used to compile java source code and move .class files to a new folder--> <javac destdir="${build.dir}" srcdir="${src.dir}"> <classpath refid="classpath_jars"/> </javac> <!--jar tag will create jar file from .class files--> <jar destfile="${ytoperation.dir}/YTOperation.jar"basedir="${build.dir}"> <!--manifest tag will set your main class for execution--> <manifest> <attribute name="Main-Class" value="testAnt.Guru99AntClass"/> </manifest> </jar> </target> <target name="run" depends="compile"> <!--java tag will execute main function from the jar created in compile target section--> <java jar="${ytoperation.dir}/YTOperation.jar"fork="true"/> </target> </project>
Cara Mengeksekusi TestNG kode menggunakan Ant
Di sini kita akan membuat kelas dengan Pengujian metode dan mengatur jalur kelas untuk pengujian di build.xml.
Sekarang untuk menjalankan metode testng kita akan membuat file testng.xml lain dan memanggil file ini dari file build.xml.
Langkah 1) Kami membuat "Guru99AntClass.class” dalam paket tesAnt
Guru99AntClass.class
package testAnt; import java.util.Date; import org.testng.annotations.Test; public class Guru99AntClass { @Test public void Guru99AntTestNGMethod(){ System.out.println("HELLO GURU99 ANT PROGRAM"); System.out.println("TODAY's DATE IS->"+ currentDate() ); } public static String currentDate(){ return new Date().toString(); } }
Langkah 2) Buat target untuk memuat kelas ini di Build.xml
<!-- Load testNG and add to the class path of application --> <target name="loadTestNG" depends="setClassPath"> <!—using taskdef tag we can add a task to run on the current project. In below line, we are adding testing task in this project. Using testing task here now we can run testing code using the ant script --> <taskdef resource="testngtasks" classpath="${test.classpath}"/> </target>
Langkah 3) Buat testng.xml
pengujian.xml
<?xml version="1.0"encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="YT"thread-count="1"> <test name="GURU99TestNGAnt"> <classes> <class name="testAnt.Guru99AntClass"> </class> </classes> </test> </suite>
Langkah 4) membuat Target di Build.xml untuk menjalankan ini TestNG kode
<target name="runGuru99TestNGAnt" depends="compile"> <!-- testng tag will be used to execute testng code using corresponding testng.xml file. Here classpath attribute is setting classpath for testng's jar to the project--> <testng classpath="${test.classpath};${build.dir}"> <!—xmlfileset tag is used here to run testng's code using testing.xml file. Using includes tag we are mentioning path to testing.xml file--> <xmlfileset dir="${basedir}" includes="testng.xml"/> </testng>
Langkah 5) Build.xml lengkap
<?xml version="1.0"encoding="UTF-8"standalone="no"?> <!--Project tag used to mention the project name, and basedir attribute will be the root directory of the application--> <project name="YTMonetize" basedir="."> <!--Property tags will be used as variables in build.xml file to use in further steps--> <property name="build.dir"value="${basedir}/build"/> <!-- put testng related jar in the resource folder --> <property name="external.jars" value=".\resource"/> <property name="src.dir" value="${basedir}/src"/> <!--Target tags used as steps that will execute in sequential order. name attribute will be the name of the target and 'depends' attribute used to make one target to depend on another target--> <!-- Load testNG and add to the class path of application --> <target name="loadTestNG"depends="setClassPath"> <taskdef resource="testngtasks"classpath="${test.classpath}"/> </target> <target name="setClassPath"> <path id="classpath_jars"> <pathelement path="${basedir}/"/> <fileset dir="${external.jars}" includes="*.jar"/> </path> <pathconvert pathsep=";"property="test.classpath"refid="classpath_jars"/> </target> <target name="clean"> <!--echo tag will use to print text on console--> <echo message="deleting existing build directory"/> <!--delete tag will clean data from given folder--> <delete dir="${build.dir}"/> </target> <target name="compile"depends="clean,setClassPath,loadTestNG"> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--mkdir tag will create new director--> <mkdir dir="${build.dir}"/> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--javac tag used to compile java source code and move .class files to a new folder--> <javac destdir="${build.dir}"srcdir="${src.dir}"> <classpath refid="classpath_jars"/> </javac> </target> <target name="runGuru99TestNGAnt"depends="compile"> <!-- testng tag will be used to execute testng code using corresponding testng.xml file --> <testng classpath="${test.classpath};${build.dir}"> <xmlfileset dir="${basedir}"includes="testng.xml"/> </testng> </target> </project>
Langkah 6) Keluaran
Dengan Ant yang mengelola pembangunan dan TestNG Setelah terhubung dengan kabel, langkah selanjutnya menghubungkan Ant secara langsung ke Selenium Pengemudi Web.
Semut dengan Selenium Driver web
Sejauh ini, kita telah mempelajari bahwa dengan menggunakan Ant, kita dapat menempatkan semua jar pihak ketiga di lokasi tertentu dalam sistem dan mengatur jalurnya untuk proyek kita. Dengan metode ini, kita mengatur semua dependensi proyek kita di satu tempat dan membuatnya lebih andal untuk kompilasi, eksekusi, dan penyebaran.
Demikian pula, untuk proyek pengujian kami menggunakan Selenium, kami dapat dengan mudah menyebutkan ketergantungan Selenium di build.xml dan kami tidak perlu menambahkan jalur kelasnya secara manual di aplikasi kami.
Jadi sekarang Anda dapat mengabaikan cara tradisional yang disebutkan di bawah untuk mengatur jalur kelas untuk proyek.
Contoh:
Kami akan memodifikasi contoh sebelumnya
Langkah 1) Setel properti Selenium.jars ke toples terkait Selenium di folder sumber daya
<property name="selenium.jars" value=".\selenium"/>
Langkah 2) Di setClassPath target, tambahkan file Selenium
<target name="setClassPath"> <path id="classpath_jars"> <pathelement path="${basedir}/"/> <fileset dir="${external.jars}" includes="*.jar"/> <!-- selenium jar added here --> <fileset dir="${selenium.jars}" includes="*.jar"/> </path>
Langkah 3) Selesaikan Build.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Project tag used to mention the project name, and basedir attribute will be the root directory of the application--> <project name="YTMonetize" basedir="."> <!--Property tags will be used as variables in build.xml file to use in further steps--> <property name="build.dir" value="${basedir}/build"/> <!-- put testng related jar in the resource folder --> <property name="external.jars" value=".\resource"/> <!-- put selenium related jar in resource folder --> <property name="selenium.jars" value=".\selenium"/> <property name="src.dir" value="${basedir}/src"/> <!--Target tags used as steps that will execute in sequential order. name attribute will be the name of the target and 'depends' attribute used to make one target to depend on another target--> <!-- Load testNG and add to the class path of application --> <target name="loadTestNG" depends="setClassPath"> <taskdef resource="testngtasks" classpath="${test.classpath}"/> </target> <target name="setClassPath"> <path id="classpath_jars"> <pathelement path="${basedir}/"/> <fileset dir="${external.jars}" includes="*.jar"/> <!-- selenium jar added here --> <fileset dir="${selenium.jars}"includes="*.jar"/> </path> <pathconvert pathsep=";" property="test.classpath" refid="classpath_jars"/> </target> <target name="clean"> <!--echo tag will use to print text on console--> <echo message="deleting existing build directory"/> <!--delete tag will clean data from given folder--> <delete dir="${build.dir}"/> </target> <target name="compile" depends="clean,setClassPath,loadTestNG"> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--mkdir tag will create new director--> <mkdir dir="${build.dir}"/> <echo message="classpath:${test.classpath}"/> <echo message="compiling.........."/> <!--javac tag used to compile java source code and move .class files to new folder--> <javac destdir="${build.dir}"srcdir="${src.dir}"> <classpath refid="classpath_jars"/> </javac> </target> <target name="runGuru99TestNGAnt" depends="compile"> <!-- testng tag will be used to execute testng code using corresponding testng.xml file --> <testng classpath="${test.classpath};${build.dir}"> <xmlfileset dir="${basedir}" includes="testng.xml"/> </testng> </target> </project>
Langkah 4) Sekarang ubah kelas yang telah dibuat sebelumnya. Guru99AntClass.java dengan kode baru.
Di sini, di contoh ini, langkah-langkah kami menggunakan Selenium adalah:
- Pergi ke https://demo.guru99.com/test/guru99home/
- Baca semua tautan kursus satu per satu
- Cetak semua hyperlink kursus di konsol.
Guru99AntClass.java:
package testAnt; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; public class Guru99AntClass { @Test public void Guru99AntTestNGMethod(){ WebDriver driver = new FirefoxDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); List<WebElement> listAllCourseLinks = driver.findElements(By.xpath("//div[@class='canvas-middle']//a")); for(WebElement webElement : listAllCourseLinks) { System.out.println(webElement.getAttribute("href")); } } }
Langkah 5) Setelah eksekusi berhasil, outputnya akan terlihat seperti:















