การยืนยันใน SoapUI: สคริปต์, XQuery, บทช่วยสอนประเภท XPath
การยืนยันคืออะไร?
การยืนยันหมายถึงการกระทำที่ยืนยันหรือระบุบางสิ่งบางอย่าง นอกจากนี้ยังสามารถตีความได้ว่าเป็นจุดตรวจสอบหรือจุดตรวจสอบ
เมื่อคำขอถูกส่งไปยังเว็บเซิร์ฟเวอร์ก็จะได้รับการตอบกลับ เราจำเป็นต้องตรวจสอบว่าคำตอบมีข้อมูลที่เราคาดหวังหรือไม่ เพื่อที่จะตรวจสอบคำตอบ เราจำเป็นต้องใช้การยืนยัน
ประเภทของการยืนยัน
มีหลายวิธีในการยืนยันคำตอบ อย่างไรก็ตาม เราจะมุ่งเน้นไปที่ประเภท SoapUI Assertions ที่ใช้กันทั่วไปในขณะที่ตรวจสอบคำตอบ ด้านล่างนี้คือรายการที่มีอยู่ใน SoapUI เวอร์ชันโอเพ่นซอร์ส
- เนื้อหาทรัพย์สิน
- มาตรฐานสถานะการปฏิบัติตาม
- ต้นฉบับ
- SLA
- จส
- ความปลอดภัย
นอกเหนือจากที่ระบุไว้ข้างต้น รุ่น PRO ยังมี JDBC Assertion ในตัวซึ่งเราสามารถยืนยันได้ว่าบริการเว็บได้อัปเดตฐานข้อมูลอย่างถูกต้องหรือไม่
มีการยืนยัน
ค้นหาการมีอยู่ของสตริงที่ระบุ นอกจากนี้ยังรองรับการแสดงออกปกติด้วย
เราจะดำเนินการต่อด้วยตัวอย่างเดียวกันจากบทช่วยสอนก่อนหน้านี้โดยมีคำขอ WSDL เป็น http://www.dneonline.com/calculator.asmx.
ขั้นตอนที่ 1: โดยค่าเริ่มต้นไม่มีการยืนยัน
- จำนวนการยืนยันจะแสดงอยู่ในแท็บการยืนยัน
- หากต้องการเพิ่มการยืนยันใหม่ ให้คลิกที่ปุ่ม 'เพิ่มการยืนยันใหม่'
ขั้นตอนที่ 2: ตอนนี้
- เลือกหมวดหมู่การยืนยัน
- เลือกประเภทการยืนยัน
- คลิก 'เพิ่ม'
ขั้นตอนที่ 3: ให้เราตรวจสอบว่ามีสตริง '46' ในการตอบกลับหรือไม่ คลิก 'ตกลง'
หมายเหตุ: นอกจากนี้เรายังสามารถละเว้นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และเพิ่มนิพจน์ทั่วไปได้
ขั้นตอนที่ 4: เมื่อเพิ่มเข้าไป การยืนยันจะถูกดำเนินการทันทีและแสดงว่า VALID หรือ INVALID
ขั้นตอนที่ 5: ตอนนี้สมมติว่าเราเปลี่ยนเนื้อหาของ 'Contains Assertion in SoapUI' เป็น '47' และดูว่าเกิดอะไรขึ้น
ขั้นตอนที่ 6: การยืนยันจะถูกดำเนินการและผลลัพธ์จะถูกส่งไปยังผู้ใช้ เนื่องจากเราไม่มีสตริง '47' ในการตอบกลับ การยืนยันจึงล้มเหลว
ไม่มีการยืนยัน
ค้นหาการไม่มีอยู่ของสตริงที่ระบุ นอกจากนี้ยังรองรับการแสดงออกปกติด้วย
ขั้นตอนที่ 1: ตอนนี้หลังจากคลิกที่ปุ่ม 'เพิ่มการยืนยันใหม่'
- เลือกหมวดหมู่การยืนยัน
- เลือกประเภทการยืนยัน - ในกรณีนี้ 'ไม่มี'
- คลิก 'เพิ่ม'
ขั้นตอนที่ 2: ให้เราตรวจสอบว่ามีสตริง 'intA' ในการตอบกลับหรือไม่ ป้อนสตริง 'FromCurrency' และคลิก 'ตกลง'
ขั้นตอนที่ 3: ทันทีที่มีการเพิ่มคำยืนยัน ระบบจะดำเนินการและแสดงผลลัพธ์ จนถึงตอนนี้ เราได้เพิ่มคำยืนยันสองรายการ ดังนั้นคำยืนยันทั้งสองรายการจึงถูกดำเนินการและแสดงผลลัพธ์
ขั้นตอนที่ 4: ตอนนี้ให้เราเปลี่ยนเนื้อหาของ 'ไม่มีการยืนยัน' และดูว่าเกิดอะไรขึ้น เราจะตรวจสอบการไม่มีสตริง “AddResult”
ขั้นตอนที่ 5: จริงๆ แล้วสตริง 'AddResult' ปรากฏอยู่ในการตอบกลับ ดังนั้นการยืนยัน 'NOT ประกอบด้วย' จะล้มเหลวดังที่แสดงด้านล่าง
การยืนยันการจับคู่ XPATH
การใช้งาน XPath นิพจน์เพื่อเลือกโหนดเป้าหมายและค่าของมัน XPath เป็นภาษาคิวรี XML สำหรับการเลือกโหนดจากเอกสาร XML
ขั้นตอนที่ 1: ตอนนี้หลังจากคลิกที่ปุ่ม 'เพิ่มการยืนยันใหม่'
- เลือกหมวดหมู่การยืนยัน
- เลือกประเภทการยืนยัน – ในกรณีนี้คือ 'XPath Match'
- คลิก 'เพิ่ม'
ขั้นตอนที่ 2: หน้าต่างเพิ่ม XPath จะเปิดขึ้น
ก่อนที่จะเพิ่ม SoapUI XPath เราจำเป็นต้องประกาศ NameSpace เนมสเปซ XML คือชุดของชื่อที่ระบุโดยการอ้างอิง Uniform Resource Identifier (URI) ซึ่งใช้ในเอกสาร XML เป็นชื่อองค์ประกอบและแอตทริบิวต์ เช่นเดียวกับที่ใช้ใน SOAP UI XPath Assertion
สำหรับการประกาศเนมสเปซ XML เราเพียงแค่ต้องคลิกที่ปุ่ม 'ประกาศ' ซึ่งจะทำหน้าที่แทนเรา ไม่เช่นนั้น เราก็สามารถประกาศเนมสเปซด้วยตนเองได้
หลังจากประกาศเนมสเปซแล้ว เราจำเป็นต้องอ้างอิง XPath โดยใช้เนมสเปซที่สร้างขึ้น
เมื่อคลิกปุ่ม 'ประกาศ' เนมสเปซสองรายการจะปรากฏขึ้นเนื่องจากเรามี URI สองรายการ หนึ่งในนั้นคือ URL ของสคีมาและอีกอันหนึ่งสอดคล้องกับ URL ของบริการเว็บจริง เราจำเป็นต้องใช้เนมสเปซจริงที่มีบริการเว็บตั้งอยู่ และไม่ใช่เนมสเปซสคีมาในขณะที่อ้างอิง XPath
ประกาศสบู่เนมสเปซ = 'http://schemas.xmlsoap.org/soap/envelope/';
ประกาศเนมสเปซ ns1='http://tempuri.org/';
ขั้นตอนที่ 3: ตอนนี้เราต้องป้อน XPath ของโหนด XML ที่เราต้องตรวจสอบ
//ns1:AddResult ให้ค่าของโหนดที่อยู่ระหว่างนั้นแก่เรา - และ ns1 สอดคล้องกับเนมสเปซที่ประกาศซึ่งชี้ไปที่ 'http://tempuri.org/'
หลังจากป้อน XML แล้ว เราจะต้องคลิกที่ 'เลือกจากปัจจุบัน' เพื่อให้ค่าจากการตอบกลับปัจจุบันถูกหยิบขึ้นมาเพื่อการเปรียบเทียบในอนาคต
ขั้นตอนที่ 4: เพื่อให้ห่างไกล
- หลังจากประกาศเนมสเปซแล้ว เราได้ป้อน XPath ของโหนด XML ที่เราจำเป็นต้องตรวจสอบ
- เราจำเป็นต้องคลิก 'เลือกจากปัจจุบัน' เพื่อให้ค่าปัจจุบันเป็นค่าที่คาดหวัง
- ค่าปัจจุบันจะแสดงให้ผู้ใช้เห็นซึ่งเราสามารถแก้ไขได้หากจำเป็น
- คลิก 'บันทึก'
ขั้นตอนที่ 5: Assertion ที่เพิ่มเข้ามาใน SoapUI จะแสดงดังที่แสดงด้านล่าง
การยืนยันสคริปต์
เทคนิคการยืนยันนี้เป็นเทคนิคที่ใช้กันอย่างแพร่หลายที่สุด เนื่องจากเป็นเรื่องยากมากที่จะจัดการและรักษาการยืนยันหลายร้อยรายการ
SOAP UI ใช้ทั้ง Groovy การเขียนสคริปต์หรือ Javaต้นฉบับ สำหรับการยืนยันสคริปต์ เทคนิคการเขียนสคริปต์ถูกนำมาใช้เพื่อพัฒนากรอบงานสำหรับการทดสอบ SOAP การยืนยันสคริปต์จะใช้ภายใต้สถานการณ์ต่อไปนี้
การเขียนสคริปต์ช่วยให้ผู้ใช้สามารถดำเนินการบางอย่างก่อนและหลังการดำเนินการ TestCase โดยใช้เมธอด set up และ teardown ตามลำดับ Set up เป็นกระบวนการที่ดำเนินการก่อนดำเนินการเมธอดเฉพาะ (ตัวอย่าง – การสร้างอ็อบเจ็กต์และการเริ่มต้น) ในขณะที่ teardown เป็นกระบวนการที่ดำเนินการหลังจากดำเนินการเมธอดแล้ว (ตัวอย่าง: การทำลายอ็อบเจ็กต์และการทำความสะอาด) คุณลักษณะนี้ไม่มีใน Assertion ประเภทอื่นและสามารถทำได้โดยการเขียนโค้ดเท่านั้น
อนุญาตให้ผู้ใช้ดำเนินการเปิด/ปิดโปรเจ็กต์ เพื่อเริ่มต้นหรือล้างการตั้งค่าที่เกี่ยวข้องกับโปรเจ็กต์ และยังทำงานกับตัวแปรสภาพแวดล้อมซึ่งมีประโยชน์มากในระหว่างการเขียนสคริปต์
ช่วยเราในการยืนยันเนื้อหาการตอบสนองแบบไดนามิก
การยืนยันสคริปต์ใช้สำหรับการสร้างการยืนยันที่ผู้ใช้กำหนดซึ่งไม่ได้กำหนดไว้ล่วงหน้าโดย SOAP UI
สำหรับการสาธิตการยืนยันสคริปต์ใน SoapUI เราจะใช้เครื่องคิดเลข WSDL ซึ่งเป็นกรณีทดสอบ 'เพิ่ม' ที่เราสร้างไว้ก่อนหน้านี้
ขั้นตอนที่ 1: ขั้นตอนในการเพิ่มสคริปต์ Groovy จะเหมือนกับการยืนยันอื่นๆ ยกเว้นว่าการยืนยันนั้นไม่ใช่การยืนยันที่กำหนดไว้ล่วงหน้า แต่เป็นการยืนยันที่ผู้ใช้กำหนดซึ่งให้ความยืดหยุ่นมากกว่าการยืนยันที่มีอยู่
เลือกขั้นตอนการทดสอบที่จะต้องเพิ่มการยืนยัน
คลิกปุ่ม 'เพิ่มการยืนยัน' ดังที่แสดงด้านล่าง
ขั้นตอนที่ 2: ตอนนี้เลือกหมวดการยืนยัน
- ในกรณีนี้คือสคริปต์
- เลือก SoapUI Script Assertion และไม่มีประเภทย่อยที่เกี่ยวข้อง
- คลิก 'เพิ่ม'
ขั้นตอนที่ 3: กล่องโต้ตอบการเขียนสคริปต์จะเปิดขึ้นโดยที่ผู้ใช้จะสามารถเขียนสคริปต์ที่ผู้ใช้กำหนดเพื่อตรวจสอบความถูกต้องของ XML ตอบกลับ
ขั้นตอนที่ 4: ตอนนี้ให้เราเขียนสคริปต์ที่น่าสนใจเพื่อตรวจสอบอัตราการแปลง สคริปต์ที่แนบมาด้านล่างพร้อมกับความคิดเห็นที่ฝังอยู่ แนะนำให้มีความรู้เกี่ยวกับ Java สคริปต์หรือ Groovy สคริปต์ก่อนที่จะพยายามเขียนสคริปต์ของคุณเอง
//Define Groovy Utils and holder for validating the XML reponse content def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) //Define the NameSpace holder.namespaces["ns1"] = "http://tempuri.org/" //Get the Value of the Node 'AddResult' and assign to a variable def addResult = holder.getNodeValue("//ns1:AddResult") //print the value of the result in the Output panel log.info "The result value for integers is " + addResult //Comparing the value to print 'Pass' or 'Fail' if(addResult=="46") { log.info "Pass" } else { log.info "fail"}
- คลิกปุ่ม 'ดำเนินการ' เพื่อเริ่มการดำเนินการ
- ผลลัพธ์ของสคริปต์จะแสดงในบานหน้าต่างผลลัพธ์ มีการพิมพ์ทั้งมูลค่า Conversion และผลลัพธ์สุดท้าย (ผ่านหรือล้มเหลว)
- ระบบจะแสดงข้อมูลว่า 'Script Assertion Passed' คลิก OK
หมายเหตุ: ป๊อปอัปข้อมูลสุดท้ายจะแสดงพร้อมข้อความ 'Script Assertion Passed' เสมอ ตราบใดที่สคริปต์มีไวยากรณ์ที่ถูกต้อง ไม่มีความสัมพันธ์กับการยืนยันของคุณภายในสคริปต์
คลิกตกลง
ขั้นตอนที่ 5: ตอนนี้แท็บการยืนยันจะแสดงการยืนยันทั้งหมดที่เราได้เพิ่มสำหรับชุดการทดสอบนี้พร้อมสถานะเทียบกับแต่ละรายการ
ขั้นตอนที่ 6:
- เลือกชุดทดสอบจากแผนผังเนวิเกเตอร์
- คลิกปุ่ม 'เรียกใช้'
- ผลลัพธ์จะแสดงสำหรับชุดการทดสอบทั้งหมด
การยืนยันการจับคู่ Xquery
ใช้นิพจน์ Xquery เพื่อเลือกเนื้อหาจากคุณสมบัติเป้าหมาย เราต้องการ XML ตอบกลับที่ใหญ่กว่ามากเพื่อที่จะเข้าใจการยืนยัน XQuery ใน SoapUI ได้ดียิ่งขึ้น ให้เรานำเข้า WSDL อื่นหนึ่งรายการดังที่แสดงด้านล่าง: http://www.webservicex.net/medicareSupplier.asmx?WSDL
ขั้นตอนที่ 1: ทำการคลิกขวาที่โปรเจ็กต์ที่มีอยู่แล้วเลือก 'เพิ่ม WSDL'
ขั้นตอนที่ 2: ทำการคลิกขวาที่โปรเจ็กต์ที่มีอยู่แล้วเลือก 'เพิ่ม WSDL' ปล่อยให้ตัวเลือกอื่นเป็นค่าเริ่มต้นและคลิกปุ่ม 'ตกลง'
ขั้นตอนที่ 3: การดำเนินการทั้งหมดแสดงดังแสดงด้านล่างนี้
ขั้นตอนที่ 4: ตอนนี้ให้เราเพิ่มก กรณีทดสอบ ภายในชุดทดสอบเดียวกันกับที่เราสร้างขึ้น การทดสอบ ตัวแปลงสกุลเงิน
ขั้นตอนที่ 5: ป้อนชื่อของกรณีทดสอบและคลิกปุ่ม 'ตกลง'
ขั้นตอนที่ 6: กรณีทดสอบถูกสร้างขึ้นตามที่แสดงด้านล่าง
ขั้นตอนที่ 7: เพิ่ม
ขั้นตอนการทดสอบใหม่ประเภท 'Soap Test Request' ดังที่แสดงด้านล่าง
ขั้นตอนที่ 8: ป้อนชื่อของขั้นตอนการทดสอบ ให้เราพูดว่า – Supplier_by_City ซึ่งจะมีความหมายมากกว่า คลิก 'ตกลง'
ขั้นตอนที่ 9: เลือก Operaข้อมูลที่เราต้องการตรวจสอบ ในกรณีนี้คือ 'MedicareSupplierSoap -> GetSupplierByCity' คลิก 'ตกลง'
ขั้นตอนที่ 10: ป้อนชื่อของกรณีทดสอบแล้วคลิก 'ตกลง'
ขั้นตอนที่ 11: โครงร่างคำขอ XML จะแสดงดังที่แสดงด้านล่าง
ขั้นตอนที่ 12: ตอนนี้ให้เราค้นหาข้อมูลซัพพลายเออร์ทั้งหมดสำหรับ 'นิวยอร์ก' ซิตี้
เมื่อต้องการทำเช่นนี้ ให้เพิ่มบรรทัดต่อไปนี้ลงในโค้ดของคุณ
<GetSupplierByCity xmlns="http://www.webservicex.net/"> <City>New York</City> </GetSupplierByCity>
WSDL ใน URL ด้านล่าง – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
ขั้นตอนที่ 13: เมื่อดำเนินการทดสอบ เราจะได้รับคำตอบด้านล่าง
ขั้นตอนที่ 14: สมมติว่าเราจำเป็นต้องตรวจสอบหมายเลขซัพพลายเออร์ทั้งหมด เราไม่สามารถใช้ XPath Assertion ได้ เนื่องจากเราจำเป็นต้องมี XPath Assertion หลายร้อยรายการ ดังนั้นการใช้งาน XQuery จึงหลีกเลี่ยงไม่ได้ในกรณีนี้
XQuery Assertion ช่วยให้เราตรวจสอบกลุ่มการตอบสนอง XML ที่มีลักษณะซ้ำกัน
ขั้นตอนที่ 15: ตอนนี้คลิกที่ 'เพิ่มการยืนยัน'
- เลือก 'หมวดหมู่การยืนยัน' – เนื้อหาทรัพย์สินในกรณีนี้
- เลือกประเภทการยืนยันเป็น 'การยืนยัน XQuery'
- คลิก 'เพิ่ม'
ขั้นตอนที่ 16: เช่นเดียวกับ XPath Assertion เราจำเป็นต้องประกาศเนมสเปซ
-
คลิกปุ่ม "ประกาศ" เพื่อให้ SOAP UI ประกาศเนมสเปซโดยอัตโนมัติ เมื่อคลิกปุ่มประกาศ จะปรากฏ "ป็อปอัป" พร้อมข้อความ "ประกาศเนมสเปซจากสคีมาแทน" แก่ผู้ใช้ คลิก "ใช่" เพื่อดำเนินการต่อตามที่แสดงด้านล่าง
หมายเหตุ เมื่อกดปุ่ม 'ประกาศ' คุณอาจพบว่า URL ที่แตกต่างกันเป็นการประกาศเนมสเปซ อย่างไรก็ตาม เนมสเปซตำแหน่งบริการเว็บจริงคือสิ่งที่จะได้รับการพิจารณาสำหรับการเข้ารหัส
- ในการเรียกข้อมูล Supplier Number ทั้งหมด เราจำเป็นต้องเขียน XPath Query และเราจะวางไว้ภายใน < SupplierNumber> และ แท็ก
- คลิก 'เลือกจากปัจจุบัน' ซึ่งจะดำเนินการจากการตอบกลับปัจจุบัน
- เมื่อคลิก 'เลือกจากปัจจุบัน' หมายเลขซัพพลายเออร์ทั้งหมดจะแสดงอยู่ในรายการ
- คลิก 'บันทึก'
// Namespace declaration declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; declare namespace x = ''; // Placing the result in Myresult Tags{ // Iterating through all the supplier number for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData //Return all the Supplier number within ‘SupplierNumber’ Tags. return {data($x/ns1:SupplierNumber)} }
ขั้นตอนที่ 17: XQuery Assertion ดำเนินการและแสดงผลลัพธ์สุดท้ายในแผง 'Assertion' ดังที่แสดงด้านล่าง ตอนนี้เราได้เพิ่มการยืนยัน Xquery สำเร็จแล้ว ซึ่งเราได้ตรวจสอบข้อมูลหมายเลขซัพพลายเออร์ทั้งหมดแล้ว สิ่งเดียวกันนี้จะถูกเปรียบเทียบกับของจริงทุกครั้งที่ส่งคำขอไปยังเว็บเซิร์ฟเวอร์
หมายเหตุ: ค่าจริงจะไม่ปรากฏ หากค่าจริงทั้งหมดตรงกับค่าที่คาดไว้ ระบบจะแสดงเป็น VALID มิฉะนั้นระบบจะแสดงเป็น 'Failed'
เมื่อใดจึงจะใช้การยืนยันแบบ Inbuilt?
- เมื่อการตอบกลับสั้นจนสามารถตรวจสอบได้โดยใช้การยืนยันที่มีอยู่อย่างใดอย่างหนึ่ง
- นอกจากนี้เรายังสามารถใช้ Inbuilt Assertion ได้หากการตอบกลับที่ส่งจากเว็บเซิร์ฟเวอร์มีลักษณะคงที่อยู่เสมอ หากเป็นแบบไดนามิก เราจะไม่สามารถยืนยันโดยใช้การยืนยันแบบฝังได้
- เมื่อการใช้การยืนยันในตัว เช่น การยืนยันการหมดเวลา และการยืนยันความปลอดภัยกลายเป็นเรื่องที่หลีกเลี่ยงไม่ได้
- Inbuilt Assertions ถือว่าค่อนข้างดีสำหรับการใช้งานครั้งเดียวโดยไม่จำเป็นต้องทำการทดสอบซ้ำ
ตัวเลือกการยืนยัน
การยืนยันที่สร้างขึ้นสามารถควบคุมได้ดีที่สุดด้วยความช่วยเหลือของแผงควบคุมที่ไฮไลต์ด้านล่าง
ข้อความยืนยันที่สร้างขึ้นช่วยให้ผู้ทดสอบสามารถกำหนดค่าสิ่งต่าง ๆ ต่อไปนี้ได้จากกล่องเครื่องมือข้อความยืนยัน
ตัวเลือกเสริม (Option) | Descriptไอออน |
---|---|
|
การยืนยันที่เลือกจะเลื่อนขึ้นตามลำดับ |
|
การยืนยันที่เลือกจะเลื่อนลงตามลำดับ |
|
ลบการยืนยันที่เลือก |
|
กำหนดค่าใหม่/แก้ไขการยืนยันที่เลือก |
- ด้านล่างนี้เป็นคุณสมบัติที่มีเฉพาะใน SOAP UI เวอร์ชัน PRO เท่านั้น เวอร์ชัน PRO ยังช่วยเราจัดกลุ่มการยืนยัน เพื่อให้เราสามารถเพิ่มการตรวจสอบความถูกต้องอีกหนึ่งชั้นให้กับการยืนยันที่สร้างขึ้น
- เวอร์ชัน Pro ยังอนุญาต การโคลนการยืนยัน: ตัวเลือกนี้ช่วยให้ผู้ทดสอบอนุญาตให้คัดลอกการยืนยันไปยังขั้นตอนการทดสอบอื่นในโปรเจ็กต์เดียวกันหรือโปรเจ็กต์อื่น
- ปิดใช้งาน/เปิดใช้งานการยืนยัน: ตัวเลือกนี้ช่วยให้สามารถปิดใช้งานหรือเปิดใช้งานการยืนยันแบบกลุ่มหรือไม่ได้จัดกลุ่มใดๆ ได้ หากปิดใช้งานการยืนยัน การยืนยันนั้นจะกลายเป็นสีเทา และเมื่อดำเนินการกรณีทดสอบ การยืนยันที่ปิดใช้งานจะไม่ถูกดำเนินการ
- ยกเลิกการยืนยันการจัดกลุ่ม: การยืนยันที่จัดกลุ่มใดๆ สามารถยกเลิกการจัดกลุ่มได้หากผู้ทดสอบตัดสินใจทำเช่นนั้น
และ: การยืนยันทั้งหมดได้รับการประเมินว่าเป็นการยืนยันที่ถูกต้อง ซึ่งจะส่งผลให้มีเงื่อนไขกลุ่มผ่าน หรือ: การยืนยันภายในกลุ่มอย่างน้อยหนึ่งรายการจะต้องถูกต้องจึงจะยืนยันเงื่อนไขกลุ่มผ่านได้
รายการวิธีการทั้งหมดที่มีอยู่ในการยืนยันประเภทต่างๆ
กลไกการยืนยัน |
Descriptไอออน |
เนื้อหาเกี่ยวกับทรัพย์สิน | |
ประกอบด้วย | ค้นหาการมีอยู่ของสตริงที่ระบุ นอกจากนี้ยังรองรับการแสดงออกปกติด้วย |
ไม่มี | ค้นหาการไม่มีอยู่ของสตริงที่ระบุ นอกจากนี้ยังรองรับการแสดงออกปกติด้วย |
การแข่งขัน XPath | ใช้นิพจน์ XPath เพื่อเลือกโหนดเป้าหมายและค่าของมัน |
การแข่งขัน XQuery | ใช้นิพจน์ Xquery เพื่อเลือกเนื้อหาจากคุณสมบัติเป้าหมาย |
การปฏิบัติตาม สถานะ มาตรฐาน | |
HTTP ดาวน์โหลดทรัพยากรทั้งหมด | ตรวจสอบเอกสาร HTML หลังจากดาวน์โหลดและถือเป็นคุณสมบัติที่ดีกับคุณสมบัติใด ๆ ที่มี HTML |
รหัสสถานะ HTTP ไม่ถูกต้อง | ตรวจสอบว่าการตอบสนอง HTML มีรหัสสถานะที่ไม่อยู่ในรายการรหัสที่กำหนดหรือไม่ |
ไม่ใช่ความผิดของสบู่ | ตรวจสอบว่าข้อความที่ได้รับล่าสุดไม่ใช่ SOAP Fault หรือไม่ เห็นได้ชัดว่าใช้ได้กับขั้นตอนการทดสอบ SOAP เท่านั้น |
การปฏิบัติตามสคีมา | ตรวจสอบว่าข้อความที่ได้รับล่าสุดเป็นไปตามข้อกำหนดสคีมามาตรฐาน WSDL หรือ WADL หรือไม่ เหมาะสำหรับขั้นตอนการทดสอบ SOAP และ REST |
ข้อผิดพลาดของสบู่ | ตรวจสอบว่าข้อความที่ได้รับล่าสุดเป็น SOAP Fault หรือไม่ มันเป็นสิ่งที่ตรงกันข้ามกับการยืนยันข้อผิดพลาด 'NOT SOAP' |
การตอบสนองของสบู่ | ตรวจสอบว่าการตอบสนองที่ได้รับล่าสุดเป็นการตอบกลับ SOAP ที่ถูกต้องหรือไม่ และใช้ได้กับขั้นตอนคำขอทดสอบ SOAP เท่านั้น |
รหัสสถานะ HTTP ที่ถูกต้อง | ตรวจสอบว่าการตอบสนอง HTML มีรหัสสถานะที่อยู่ในรายการรหัสที่กำหนดหรือไม่ มันเป็นสิ่งที่ตรงกันข้ามกับการยืนยัน 'รหัสสถานะ HTTP ไม่ถูกต้อง' |
คำขอที่อยู่ WS | ตรวจสอบว่าคำขอที่ได้รับครั้งล่าสุดมีส่วนหัว WS-Addressing ที่เหมาะสมหรือไม่ |
การตอบสนองที่อยู่ WS | ตรวจสอบว่าการตอบสนองที่ได้รับครั้งล่าสุดมีส่วนหัว WS-Addressing ที่เหมาะสมหรือไม่ |
สถานะความปลอดภัย WS | ตรวจสอบว่าข้อความที่ได้รับล่าสุดมีส่วนหัว WS-Security ที่ถูกต้องหรือไม่ และใช้ได้กับคำขอ SOAP เท่านั้น |
ต้นฉบับ | |
การยืนยันสคริปต์ | อนุญาตให้ผู้ใช้สามารถรันสคริปต์ที่กำหนดเองเพื่อทำการตรวจสอบที่ผู้ใช้กำหนด |
SLA | |
SLA การตอบสนอง | ตรวจสอบว่าเวลาตอบสนองของการตอบกลับที่ได้รับครั้งล่าสุดอยู่ภายในขีดจำกัดที่กำหนดไว้หรือไม่ |
จส | |
สถานะ JMS | ตรวจสอบว่าคำขอ JMS ของขั้นตอนการทดสอบดำเนินการสำเร็จหรือไม่ และถือว่าดีสำหรับขั้นตอนการทดสอบที่มีจุดสิ้นสุด JMS |
JMS หมดเวลา | ตรวจสอบว่าการตอบสนอง JMS ของขั้นตอนการทดสอบใช้เวลาไม่นานเกินระยะเวลาที่ระบุหรือไม่ |
ความปลอดภัย | |
การเปิดรับข้อมูลที่ละเอียดอ่อน | ตรวจสอบว่าข้อความตอบกลับไม่เปิดเผยข้อมูลที่ละเอียดอ่อนเกี่ยวกับระบบเป้าหมายหรือไม่ เราสามารถใช้การยืนยันนี้สำหรับขั้นตอนการทดสอบ REST, SOAP และ HTTP |
ดาวน์โหลดโครงการ SOAPUI ที่มีข้อยืนยันข้างต้น
ข้อผิดพลาดทั่วไปและการแก้ไขปัญหา
ใช้เนมสเปซที่ถูกต้อง พื้นที่ชื่อควรเป็น URL ที่บริการเว็บตั้งอยู่
หากมีข้อผิดพลาดเกิดขึ้นขณะพัฒนาการยืนยันสคริปต์ ให้ใช้ 'log.info' เพื่อพิมพ์เนื้อหาของตัวแปร
หากคุณไม่ได้รับผลลัพธ์ตามที่ต้องการ ให้ตรวจสอบว่ามีการส่งอินพุตที่ถูกต้องในการร้องขอหรือไม่
ตัวอย่างเช่น ในตัวแปลงสกุลเงิน หากคุณป้อน 'intA' เป็น 'x' ซึ่งไม่ใช่จำนวนเต็ม ผลลัพธ์จะแสดงรหัสข้อผิดพลาดเป็น 'SOAP-Client' ซึ่งหมายความว่าปัญหาเกิดขึ้นกับพารามิเตอร์ที่ถูกส่งผ่านจาก ด้านลูกค้า.
ตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์ที่ถูกต้องในขณะที่ใช้การยืนยัน XPATH และ XQuery คุณไม่ควรใช้ dot(.) แทนเครื่องหมายทวิภาค (:) ในขณะที่ใช้การยืนยันข้างต้น ไวยากรณ์คือ //namespace:Tagname และไม่ใช่ //namespace.tagname การทำเช่นนี้ คุณอาจได้รับข้อความว่า 'ไม่ตรงกันในการตอบกลับปัจจุบัน' แม้ว่าชื่อแท็กจะถูกต้องก็ตาม