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.

  • 🐜 Peran utama: Ant menyimpan dan menjalankan langkah-langkah pembangunan secara berurutan dari file konfigurasi XML.
  • ⚙️ Siklus hidup pembangunan: Satu file menangani pembersihan, kompilasi, pengaturan classpath, eksekusi, dan pelaporan.
  • 📦 Struktur build.xml: Tag proyek, target, tugas, dan properti mendefinisikan setiap langkah pembangunan.
  • 🔧 instalasi: Atur variabel ANT_HOME dan tambahkan %ANT_HOME%\bin ke Path sistem.
  • 🧪 Selenium ke TestNG: Ant memanggil testng.xml sehingga suite berjalan selama proses build.
  • 🚀 Kontrol ketergantungan: Jalur JAR pihak ketiga dipusatkan, sehingga meningkatkan keandalan dan penyebaran.

Semut Apache dengan Selenium

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

Apache Semut

Manfaat build Ant

  1. Ant menciptakan siklus hidup aplikasi yaitu membersihkan, mengkompilasi, mengatur ketergantungan, mengeksekusi, melaporkan, dll.
  2. Ketergantungan API pihak ketiga dapat diatur oleh Ant yaitu jalur kelas file Jar lainnya diatur oleh file build Ant.
  3. Aplikasi lengkap dibuat untuk pengiriman dan penerapan ujung ke ujung.
  4. Ini adalah alat pembuatan sederhana di mana semua konfigurasi dapat dilakukan menggunakan file XML dan dapat dijalankan dari baris perintah.
  5. 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

Instal Semut

Langkah 2) Buka zip folder dan buka dan salin jalur ke akar folder yang tidak di-zip

Instal Semut

Langkah 3) Buka Mulai -> Komputer -> klik kanan di sini dan pilih 'Properti' lalu klik Pengaturan Sistem Lanjutan

Instal Semut

Langkah 4) Jendela baru terbuka. Klik tombol 'Variabel Lingkungan…'.

Instal Semut

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.

Instal Semut

Langkah 6) sekarang pilih variabel 'Jalur' dari daftar dan klik 'Edit' dan tambahkan; %ANT_HOME%\bin.

Instal Semut

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

Instal Semut

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

Jalankan Ant menggunakan Eclipse Plugin

Example

Kami akan mengambil contoh program kecil yang akan menjelaskan fungsionalitas Ant dengan sangat jelas. Struktur proyek kami akan terlihat seperti –

Jalankan Ant menggunakan Eclipse Plugin

Di sini, dalam contoh ini kita memiliki 4 target

  1. Tetapkan jalur kelas untuk toples eksternal,
  2. Bersihkan kode yang telah dipenuhi sebelumnya
  3. Kompilasi kode Java yang ada
  4. 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>				

Jalankan Ant menggunakan Eclipse Plugin

Cara Mengeksekusi TestNG kode menggunakan Ant

Eksekusi 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

Eksekusi TestNG kode menggunakan Ant

Unduh File di atas

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.

Semut dengan Selenium Driver web

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:

  1. Pergi ke https://demo.guru99.com/test/guru99home/
  2. Baca semua tautan kursus satu per satu
  3. 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:

Semut dengan Selenium Driver web

Download File Contoh Di Atas

Pertanyaan Umum Demo Slot

Ant adalah alat build prosedural di mana Anda membuat skrip setiap langkah secara manual, sedangkan Maven bersifat deklaratif dan mengelola dependensi secara otomatis melalui repositori pusat. Ant memberikan kontrol lebih; ​​Maven memberikan konvensi.

Ya. Banyak warisan Java ke Selenium Proyek-proyek lama masih mengandalkan Ant untuk proses build dan integrasi berkelanjutan. Proyek-proyek yang lebih baru sering memilih Maven atau GradleNamun, Ant tetap berguna untuk kontrol pembangunan yang lebih detail.

Apache Ant 1.10.x adalah seri yang terus dipelihara dan membutuhkan Java Versi 8 atau lebih baru. Versi 1.9.x yang lebih lama mendukung perangkat lama. JavaSelalu unduh file biner dari situs resmi ant.apache.org.

Ya. Asisten AI seperti ChatGPT atau Copilot menyusun target build.xml, menyarankan definisi tugas, dan menjelaskan kesalahan. RevPerhatikan XML yang dihasilkan dengan saksama, karena jalur dan versi dependensi masih perlu diverifikasi.

Alat bertenaga AI menghasilkan TestNG Mereka menyusun rangkaian pengujian, mengoptimalkan urutan pengujian, dan menandai pengujian yang tidak stabil yang dipicu melalui target Ant. Mereka mengurangi pemeliharaan dengan menyarankan perbaikan locator dan menganalisis laporan build secara otomatis.

Tidak. Ant dapat mengkompilasi dan menjalankan secara biasa. Java or JUnit tes juga. TestNG Ini menambahkan konfigurasi suite yang fleksibel melalui testng.xml, yang dipanggil oleh Ant menggunakan tugas testng selama proses build.

ANT_HOME memberi tahu sistem operasi di mana Ant diinstal sehingga perintah ant dapat dijalankan dari direktori mana pun. Anda menambahkan %ANT_HOME%\bin ke Path sistem selama instalasi. Windows.

Gradle Ant biasanya lebih disukai untuk proyek baru karena menggabungkan fleksibilitas Ant dengan manajemen dependensi Maven dan build inkremental yang lebih cepat. Pilih Ant terutama untuk memelihara skrip build yang sudah ada.

Ringkaslah postingan ini dengan: