Appium การตั้งค่า Maven Dependency: ตั้งค่าด้วย Eclipse ตัวอย่างโครงการ
⚡ สรุปอย่างชาญฉลาด
Appium ระบบจัดการการพึ่งพาของ Maven ช่วยให้โปรเจ็กต์การทำงานอัตโนมัติบนมือถือสามารถประกาศอาร์ติแฟกต์ java-client ในไฟล์ pom.xml ได้ ทำให้ Maven ค้นหาไฟล์ jar ทุกไฟล์โดยอัตโนมัติ และสามารถสร้างบิลด์เดียวกันได้บนเครื่องใดก็ได้โดยไม่ต้องดาวน์โหลดด้วยตนเอง
ความหมายของ Apache Maven?
Apache Maven คือ Java-based การจัดการโครงการและเครื่องมืออัตโนมัติ โดยมีเฟรมเวิร์กการทำงานหลายอย่างพร้อมกันสำหรับนักพัฒนา เพื่อลดความยุ่งยากในวงจรการสร้างที่สมบูรณ์ Java การใช้งาน Maven ถูกกำหนดไว้ล่วงหน้าและประกาศในรูปแบบ XML ที่เรียกว่า POM (Project Object Model) และเรียกว่า 'pom.xml' นอกจากนี้ยังสามารถใช้กับภาษาอื่น ๆ เช่น C#, Scala, Ruby เป็นต้น
ด้วยการใช้เฟรมเวิร์ก Maven คุณสามารถจัดการงานต่อไปนี้ในโปรเจ็กต์ใดๆ ได้อย่างง่ายดาย:
- วงจรการสร้าง
- เอกสารโครงการ
- รายงานการตรวจสอบ
- การจัดการการต่อสู้
- ข้อมูลการเผยแพร่
การใช้งานพื้นฐานของ Maven มีดังนี้:
- บังคับใช้โครงสร้างไดเร็กทอรีมาตรฐาน
- จัดทำโครงสร้างโครงการที่นำมาใช้ใหม่และบำรุงรักษาง่าย
- แก้ไขการขึ้นต่อกันของแพ็คเกจ
- จัดทำกรอบการจัดการการกำหนดค่า
ความสามารถในการแก้ไขปัญหาการพึ่งพาอาศัยกันนั้น คือสิ่งที่... Appium ความต้องการของโครงการ เนื่องจาก Java ลูกค้าดึงห่วงโซ่เข้ามา Selenium ไฟล์ JAR ที่ไม่มีใครอยากดาวน์โหลดด้วยตนเอง
ดาวน์โหลด Appium การพึ่งพา Maven
ก่อนที่คุณจะเริ่มเขียน Appium การทดสอบการพึ่งพาด้วย Maven คุณต้องดาวน์โหลดไฟล์ Appium การพึ่งพาของ Maven — the Appium ไฟล์ดาวน์โหลด JAR — จาก เว็บไซต์คลังกลางของ Mavenภาพหน้าจอด้านล่างแสดงรายการอาร์ติแฟกต์ java-client บน Maven Central ซึ่งมีทุกเวอร์ชันที่เผยแพร่และโค้ดตัวอย่างสำเร็จรูปให้ใช้งานได้
หรือเพิ่มไฟล์ POM.xml ที่กล่าวถึงด้านล่างนี้โดยตรง:
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>3.4.1</version> </dependency>
⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: 3.4.1 พิกัดด้านบนคือตัวอย่างดั้งเดิมและยังคงแสดงรูปร่างที่ถูกต้องของบล็อก มันมีมาก่อนโปรโตคอล W3C WebDriver ดังนั้นโครงการใหม่ควรเพิ่มเวอร์ชันให้สูงขึ้น ณ เวลาที่เขียนบทความนี้ เวอร์ชันปัจจุบันบน Maven Central คือ 10.1.1ซึ่งต้องใช้ Selenium 4.42.0 หรือใหม่กว่า
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency>
กรุณาผ่านของเรา กวดวิชามาเวน เพื่อเรียนรู้วิธีกำหนดค่า Maven ด้วย Eclipse.
Appium โครงสร้างโปรเจ็กต์ Maven และส่วนประกอบที่จำเป็น
Maven กำหนดโครงสร้างที่ตายตัว และการรู้โครงสร้างนี้จะช่วยป้องกันความสับสนส่วนใหญ่ที่จะเกิดขึ้นในคำแนะนำนี้ต่อไป โปรเจ็กต์ที่สร้างขึ้นจะมีสี่ส่วนที่สำคัญ:
- pom.xml — โมเดลอ็อบเจ็กต์ของโปรเจ็กต์ (Project Object Model) ที่ระดับรากของโปรเจ็กต์ ซึ่งเป็นที่ที่ประกาศการพึ่งพาและปลั๊กอินทั้งหมด
- src / main / java — คลาสสำหรับแอปพลิเคชันและตัวช่วย
- ซอร์สโค้ด/เทสต์/จาวา — คลาสทดสอบ และเป็นไดเร็กทอรีเดียวที่ปลั๊กอิน Surefire สแกนเมื่อคุณเรียกใช้การสร้าง
- เป้า — ผลลัพธ์ที่รวบรวมและรายงานการทดสอบ จะถูกสร้างขึ้นใหม่ทุกครั้งที่มีการสร้างระบบ
การขอ Appium java-client เป็น dependency ที่จำเป็นเพียงอย่างเดียว เนื่องจากเป็นตัวประกาศ Selenium API, ไดรเวอร์ระยะไกล และส่วนประกอบสนับสนุนต่างๆ ถูกนำมาใช้โดยทางอ้อม หลายทีมยังคงยึดติดอยู่กับสิ่งเดิมๆ Selenium ระบุเวอร์ชันอย่างชัดเจนเพื่อให้เห็นได้ในที่เดียว และเพิ่มตัวเรียกใช้การทดสอบ:
<dependencies> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.42.0</version> </dependency> </dependencies>
รักษาความเข้ากันได้ของทั้งสองเวอร์ชัน การเผยแพร่ java-client ระบุว่า Selenium ช่วงที่รองรับ และการผสมผสานไคลเอนต์รุ่นเก่ากับรุ่นใหม่กว่ามาก Selenium เป็นสาเหตุที่พบบ่อยที่สุดที่ทำให้เกิดข้อผิดพลาด NoSuchMethodError ในระหว่างการทำงาน ที่เก็บ java-client เอกสารนี้บันทึกการจับคู่สำหรับทุกเวอร์ชันที่วางจำหน่าย
การทดสอบแอปพลิเคชันด้วย Appium และมาเวน
เมื่อมีการกำหนดความสัมพันธ์ดังกล่าวแล้ว Eclipse ขั้นตอนการทำงานด้านล่างนี้จะสร้างโปรเจ็กต์ที่สามารถใช้งานได้ตั้งแต่เริ่มต้น หลังจากกำหนดค่าเสร็จแล้ว Appium Java ปลั๊กอิน Maven ใน Eclipseพื้นที่ทำงานพร้อมสำหรับการทดสอบทุกอย่างแล้ว Android .apk สมัครด้วย Appium และ Maven ดังที่แสดงใน Appium ตัวอย่างโครงการ Maven ด้านล่าง
ขั้นตอน 1) ในขั้นตอนนี้
- ไปที่ใหม่ >> เลือกโครงการ Maven
- คลิกที่ปุ่ม 'ถัดไป'
วิซาร์ดการสร้างโปรเจ็กต์ใหม่จะเปิดขึ้นโดยไฮไลต์ Maven Project ดังที่แสดงในภาพนี้
ขั้นตอน 2) จากนั้นในหน้าต่าง 'สร้างโปรเจ็กต์ Maven ใหม่' ให้ป้อน 'Appium ระบุ 'Test' ในคอลัมน์ Group Id และ Artifact Id ในขั้นตอนนี้ คุณต้องป้อน:
- รหัสกลุ่ม
- รหัสอาร์ติแฟกต์
- เวอร์ชั่น
- บรรจุภัณฑ์
- ชื่อและ Descriptไอออน
- เสร็จสิ้น
แบบฟอร์มสร้างโปรเจ็กต์ Maven ใหม่เมื่อกรอกข้อมูลเสร็จสมบูรณ์จะมีลักษณะดังภาพหน้าจอข้างล่าง
การคลิกปุ่มเสร็จสิ้นจะเปิดคลาสใหม่ภายใต้ Group Id ที่กำหนดไว้ (Appiumทดสอบ) ชื่อ
ขั้นตอน 3) ในการเริ่มต้นด้วย Appium สำหรับการสร้างสคริปต์ ให้คลิกขวาที่ 'src/main/java' ในหน้าต่าง Explorer ด้านซ้าย จากนั้นเลือก New >> class เขียนโค้ดต่อไปนี้ Appium รหัสภายในคลาสที่เลือก
เมนูบริบทที่ใช้ในการสร้างคลาสนั้นแสดงอยู่ด้านล่าง
ขั้นตอน 4) ในโปรเจ็กต์เดียวกัน ให้คลิกที่ pom.xml ในเมนูสำรวจด้านซ้าย ส่วนประกอบต่างๆ ทั้งหมดจะปรากฏให้เห็นโดยอัตโนมัติในแท็บ 'pom.xml' ดูภาพประกอบด้านล่าง
ถ้าไฟล์ pom.xml เริ่มต้นไม่มีอยู่ ให้เพิ่มโค้ด Maven ทั้งหมดเข้าไป Appium การพึ่งพา เช่นtracคัดลอกมาจากเว็บไซต์ Maven Central Repository:
https://central.sonatype.com/artifact/io.appium/java-client
ไฟล์ pom.xml ที่แก้ไขแล้วพร้อมด้วย Appium ส่วนประกอบที่เพิ่มเข้ามาแสดงอยู่ด้านล่าง
ขั้นตอน 5) ตอนนี้ คลิกขวาที่ 'pom.xml' ในแถบสำรวจด้านซ้าย หรือที่โค้ด XML สำหรับ 'Appiumเลือกโปรเจ็กต์ 'Test' จากนั้นคลิกตัวเลือก 'Run As >> Maven Clean' ดังแสดงในภาพด้านล่าง
ขณะที่กำลังทำงาน คุณจะเห็นไฟล์ jar ที่เกี่ยวข้องกับ Maven ทั้งหมดและข้อความแสดงความสำเร็จ ดังเช่นในเอาต์พุตคอนโซลด้านล่าง นี่คือวิธีการเรียกใช้งาน Appium Java การทดสอบการพึ่งพาของ Maven ฝั่งไคลเอ็นต์ในสภาพแวดล้อมที่กำหนดค่าด้วย Maven
วิธีการเรียกใช้ Appium การทดสอบด้วยคำสั่ง Maven
การขอ Eclipse เมนูนั้นสะดวกก็จริง แต่การสร้างบิลด์เดียวกันนี้จะต้องทำงานโดยอัตโนมัติบนเซิร์ฟเวอร์บิลด์ และในกรณีนั้น บรรทัดคำสั่งเป็นเพียงตัวเลือกเดียว เปิดเทอร์มินัลในโฟลเดอร์ที่มีไฟล์ pom.xml และใช้คำสั่งเหล่านี้
mvn clean mvn clean test mvn clean install mvn test -Dtest=LoginTest
แต่ละคนมีหน้าที่เฉพาะของตนเอง:
- เอ็มวีเอ็น คลีน ลบ
targetไดเร็กทอรีนี้จึงไม่มีข้อมูลเก่าหลงเหลืออยู่ในการสร้างครั้งถัดไป นี่คือคำสั่งที่ใช้ Eclipse คำแนะนำข้างต้นเกี่ยวกับตัวกระตุ้น (trigger) - mvn การทดสอบที่สะอาด คอมไพล์โปรเจ็กต์และรันคลาสทดสอบ ปลั๊กอิน Maven Surefire จะตรวจจับคลาสเหล่านั้นโดยอัตโนมัติ
src/test/javaโดยใช้รูปแบบการรวมเริ่มต้นTest*.java,*Test.java,*Tests.javaและ*TestCase.java. - mvn ล้างการติดตั้ง ทำการทดสอบแล้วนำไฟล์ที่บรรจุแล้วไปไว้ในที่เก็บข้อมูลในเครื่องของคุณ เพื่อให้โปรเจกต์อื่นสามารถพึ่งพาไฟล์นั้นได้
- mvn test -Dtest=LoginTest ช่วยจำกัดการทำงานให้เหลือเพียงคลาสเดียวขณะที่คุณกำลังดีบั๊ก
มีสองประเด็นที่ทำให้คนพลาดพลั้ง ประการแรกคือ... Appium เซิร์ฟเวอร์ต้องทำงานอยู่แล้ว และต้องเชื่อมต่ออุปกรณ์หรืออีมูเลเตอร์ก่อนเริ่มการสร้าง เนื่องจาก Maven จะไม่ทำการเรียกใช้งานทั้งสองอย่าง — โปรดตรวจสอบอุปกรณ์ด้วยคำสั่ง `npm run build` ADB ตรวจสอบก่อน จากนั้นจึงบันทึกผลลัพธ์ลงในระบบ target/surefire-reportsซึ่งเป็นโฟลเดอร์ที่งาน CI ควรจัดเก็บไว้ คู่มือการใช้งาน Surefire ครอบคลุมตัวเลือกการกำหนดค่าโดยละเอียด และคำสั่งเดียวกันนี้ยังใช้ในการควบคุมอีกด้วย Appium ห้องชุดจาก Jenkins.
ร่วมกัน Appium ข้อผิดพลาดของ Maven และวิธีแก้ไข
ความล้มเหลวส่วนใหญ่ใน Appium ปัญหาการตั้งค่า Maven มักเกิดจากสาเหตุที่พบได้ซ้ำๆ เพียงไม่กี่อย่าง มากกว่าที่จะเกิดจากโค้ดทดสอบเอง ตารางด้านล่างแสดงความสัมพันธ์ระหว่างแต่ละอาการกับวิธีแก้ไขที่พบได้ทั่วไป
| อาการ | สาเหตุน่าจะ | แก้ไขปัญหา |
| ไม่สามารถแก้ไขการพึ่งพาสำหรับ io.appium:java-client ได้ | ระบุเวอร์ชันไม่ถูกต้อง หรือไม่สามารถเข้าถึง Maven Central ผ่านเครือข่ายได้ | คัดลอกพิกัดจากรายการใน Maven Central โดยตรง แล้วรันการสร้างใหม่อีกครั้ง |
| ข้อผิดพลาด NoSuchMethodError หรือ NoClassDefFoundError จาก Selenium ชั้น | เวอร์ชัน java-client และ selenium-java ไม่เข้ากัน | ตรงกับ Selenium เวอร์ชันในช่วงที่การประกาศรุ่น java-client ระบุไว้ |
| การทดสอบคอมไพล์สำเร็จ แต่ไม่มีการทดสอบใดทำงานได้ | คลาสทดสอบจะอยู่ใน src/main/java หรือชื่อคลาสไม่ตรงกับรูปแบบ include ของ Surefire | ย้ายไฟล์เหล่านั้นไปไว้ใน src/test/java และตั้งชื่อคลาสให้ลงท้ายด้วย Test |
| การเชื่อมต่อถูกปฏิเสธบนพอร์ต 4723 | การขอ Appium เซิร์ฟเวอร์ไม่ได้ทำงาน | เริ่มต้น Appium เซิร์ฟเวอร์ก่อนการสร้าง |
| ความสามารถไม่ถูกต้องหรือไม่รองรับ | ชื่อความสามารถแบบดั้งเดิมที่ใช้กับไดรเวอร์สมัยใหม่ | Revดูปัจจุบัน ความสามารถที่ต้องการ สำหรับแพลตฟอร์มของคุณ |
| เวอร์ชันหลักของไฟล์คลาสที่ไม่รองรับ | JDK ที่ Maven ใช้แตกต่างจากระดับคอมไพเลอร์ในไฟล์ pom.xml | ปรับค่าคุณสมบัติ maven.compiler.source และ target ให้ตรงกับการติดตั้งของคุณ JDK |
เมื่อการสร้างล้มเหลว ให้อ่านข้อผิดพลาดแรกที่ Maven แสดงออกมา แทนที่จะเป็นข้อผิดพลาดสุดท้าย บรรทัดหลังๆ มักเป็นผลมาจากไฟล์ต้นฉบับที่หายไปในครั้งแรก








