Các khẳng định trong SoapUI: Tập lệnh, XQuery, Kiểu dữ liệu XPath

⚡ Tóm tắt thông minh

Các khẳng định trong SoapUI Chúng là các điểm kiểm tra quyết định xem phản hồi của dịch vụ web có chính xác hay không, biến một yêu cầu chỉ đơn thuần thực thi thành một bài kiểm tra thực sự thành công hay thất bại trên nội dung thực tế, có thể kiểm chứng được.

  • 🔘 DANH MỤC: Nội dung tài sản, Tuân thủ/Trạng thái/Tiêu chuẩn, Kịch bản, Thỏa thuận mức dịch vụ (SLA), Hệ thống quản lý tập tin (JMS) và Bảo mật.
  • ☑️ Thông tin: Xác nhận chuỗi ký tự có tồn tại trong phản hồi, có hỗ trợ biểu thức chính quy.
  • Không bao gồm: Xác nhận chuỗi ký tự không tồn tại, hữu ích cho các mã lỗi và các trường bị rò rỉ.
  • 🧪 Đối sánh XPath: Trước tiên hãy khai báo không gian tên, sau đó chọn một nút và so sánh giá trị của nó.
  • 🛠️ Đối sánh XQuery: Công cụ này xác thực các tập hợp nút lặp lại, nếu không sẽ cần đến hàng trăm lần kiểm tra XPath.
  • 📊 Kịch bản: Groovy Các câu lệnh khẳng định xử lý các phản hồi động và logic thiết lập hoặc gỡ bỏ.
  • 🔍 Xử lý Sự cố: Sai không gian tên và cú pháp dấu chấm thay vì dấu hai chấm là nguyên nhân gây ra hầu hết các lỗi.

Các khẳng định trong SoapUI

Khẳng định là gì?

Khẳng định có nghĩa là hành động khẳng định hoặc nêu rõ điều gì đó. Nó cũng có thể được hiểu là điểm kiểm tra hoặc điểm xác nhận.

Khi một yêu cầu được gửi đến máy chủ web, một phản hồi sẽ được nhận. Chúng ta cần xác thực xem phản hồi có chứa dữ liệu mà chúng ta mong đợi hay không. Để xác thực phản hồi, chúng ta cần sử dụng các khẳng định (assertion). Nếu không có khẳng định, một bước kiểm thử chỉ chứng minh rằng dịch vụ đã phản hồi, chứ không chứng minh rằng nó đã phản hồi chính xác, đó là lý do tại sao mọi bước kiểm thử đều yêu cầu xác thực. Kiểm thử API Nên mang theo ít nhất một cái.

Các loại khẳng định

Có nhiều cách để đưa ra phản hồi; tuy nhiên, chúng ta sẽ tập trung vào những cách thường dùng. SoapUI Các loại xác nhận khi xác thực phản hồi. Dưới đây là các danh mục có sẵn trong phiên bản mã nguồn mở của SoapUI.

  1. Nội dung thuộc tính
  2. Tiêu chuẩn tình trạng tuân thủ
  3. Script
  4. SLA
  5. J.M.S.
  6. Bảo mật

Hộp thoại này nhóm mọi khẳng định vào các danh mục đó, như ảnh chụp màn hình bên dưới cho thấy.

Các loại khẳng định được liệt kê trong SoapUI Thêm hộp thoại Xác nhận
Các loại khẳng định trong SoapUI

Ngoài những tính năng đã nêu ở trên, phiên bản Pro còn tích hợp sẵn chức năng JDBC Assertion, cho phép chúng ta kiểm tra xem dịch vụ web đã cập nhật cơ sở dữ liệu chính xác hay chưa.

Ghi chú phiên bản: hiện hành SoapUI tài liệu cũng liệt kê một JDBC danh mục (Trạng thái JDBC và Thời gian chờ JDBC) bên cạnh các danh mục ở trên, và một Nội dung tin nhắn Khẳng định bên trong Nội dung Thuộc tính để so sánh XML phong phú hơn. Phiên bản thương mại được gọi ở đây là “Pro” hiện được bán dưới dạng… ReadyAPI Do SmartBear phát triển, nên nhãn menu trong các bản dựng mới hơn có thể hiển thị khác nhau trong khi hành vi xác nhận vẫn giữ nguyên.

Chứa khẳng định

Tìm kiếm sự tồn tại của chuỗi được chỉ định. Nó cũng hỗ trợ biểu thức chính quy.

Chúng ta sẽ tiếp tục với ví dụ tương tự từ hướng dẫn trước với yêu cầu WSDL như http://www.dneonline.com/calculator.asmxNếu bạn chưa hoàn thành dự án đó, hãy tiếp tục thực hiện. Tạo dự án, bộ kiểm thử và trường hợp kiểm thử đầu tiên.

Bước 1: Theo mặc định, không có bất kỳ khẳng định nào.

  1. Số lượng Xác nhận được hiển thị trong Tab Xác nhận.
  2. Để thêm một khẳng định mới, hãy nhấp vào nút 'Thêm khẳng định mới'.

SoapUI Tab Khẳng định không hiển thị khẳng định nào và nút Thêm Khẳng định Mới.

Bước 2: Bây giờ,

  1. Chọn Danh mục khẳng định.
  2. Chọn Loại khẳng định.
  3. Nhấp vào 'Thêm'

Thêm hộp thoại Khẳng định với danh mục và loại khẳng định đã được chọn.

Bước 3: Hãy kiểm tra xem chuỗi '46' có tồn tại trong phản hồi hay không. Nhấn 'OK'.

Lưu ý: Chúng ta cũng có thể bỏ qua chữ hoa chữ thường và thêm biểu thức chính quy.

Chứa hộp thoại cấu hình Khẳng định với giá trị 46 đã nhập.

Bước 4: Sau khi thêm vào, quá trình xác nhận sẽ được thực thi ngay lập tức và hiển thị trạng thái HỢP LỆ hay KHÔNG HỢP LỆ.

Tab Assertions báo cáo khẳng định Contains là HỢP LỆ.

Bước 5: Bây giờ, giả sử chúng ta thay đổi nội dung của 'Contains Assertion in' SoapUI' đến '47' và xem điều gì sẽ xảy ra.

Chỉnh sửa nội dung Khẳng định Chứa từ 46 thành 47

Bước 6: Câu lệnh Assertion được thực thi và kết quả được hiển thị cho người dùng. Vì không có chuỗi '47' trong phản hồi, nên câu lệnh Assertion đã thất bại.

Tab Assertions báo cáo rằng khẳng định Contains đã thất bại.

Không chứa khẳng định

Chức năng ngược lại hoạt động theo chiều ngược lại. Nó tìm kiếm sự không tồn tại của chuỗi được chỉ định. Nó cũng hỗ trợ biểu thức chính quy.

Bước 1: Sau khi nhấp vào nút 'thêm khẳng định mới',

  1. Chọn Danh mục khẳng định.
  2. Chọn Loại xác nhận – Trong trường hợp này là 'KHÔNG Chứa'
  3. Nhấp vào 'Thêm'

Thêm hộp thoại Xác nhận với tùy chọn KHÔNG chứa đã chọn

Bước 2: Hãy kiểm tra xem chuỗi 'intA' có tồn tại trong phản hồi hay không. Nhập chuỗi 'FromCurrency' và nhấn 'OK'.

Hộp thoại "Không chứa xác nhận" với chuỗi "FromCurrency" đã nhập.

Bước 3: Ngay sau khi thêm một câu lệnh khẳng định, nó sẽ được thực thi và hiển thị kết quả. Cho đến nay chúng ta đã thêm hai câu lệnh khẳng định, do đó cả hai câu lệnh khẳng định đều được thực thi và hiển thị kết quả.

Tab Khẳng định hiển thị cả kết quả Chứa và Không Chứa.

Bước 4: Bây giờ chúng ta hãy thay đổi nội dung của 'Not Contains Assertion' và xem điều gì xảy ra. Chúng ta sẽ kiểm tra xem chuỗi “AddResult” có tồn tại hay không.

Hộp thoại "Không chứa xác nhận" kiểm tra mã thông báo AddResult

Bước 5: Chuỗi 'AddResult' thực sự có mặt trong phản hồi, do đó khẳng định 'NOT Contains' sẽ thất bại như hình bên dưới.

Lỗi xác nhận "Không chứa" xảy ra vì có AddResult.

Xác nhận khớp XPath

Việc so khớp chuỗi khá đơn giản, vì vậy câu lệnh tiếp theo sẽ nhắm mục tiêu vào một nút duy nhất. Nó sử dụng biểu thức XPath để chọn nút mục tiêu và các giá trị của nó. Xpathlà một ngôn ngữ truy vấn XML dùng để chọn các nút từ một tài liệu XML.

Bước 1: Sau khi nhấp vào nút 'Thêm khẳng định mới',

  1. Chọn Danh mục khẳng định.
  2. Chọn Loại xác nhận – Trong trường hợp này là 'XPath Match'
  3. Nhấp vào 'Thêm'

Thêm hộp thoại Xác nhận với tùy chọn Khớp XPath đã chọn

Bước 2: Thêm cửa sổ XPath sẽ mở ra.

Trước khi thêm SoapUI Trong XPath, chúng ta cần khai báo không gian tên. Không gian tên XML là một tập hợp các tên, được xác định bằng tham chiếu Định danh Tài nguyên Thống nhất (URI), được sử dụng trong các tài liệu XML làm tên phần tử và thuộc tính. Điều tương tự cũng được sử dụng trong... SoapUI Khẳng định XPath.

Để khai báo một không gian tên XML, chúng ta chỉ cần nhấp vào nút 'Khai báo', thao tác này sẽ tự động thực hiện hoặc chúng ta cũng có thể tự khai báo không gian tên theo cách thủ công.

Sau khi khai báo không gian tên, chúng ta cần tham chiếu đến XPath bằng cách sử dụng không gian tên đã tạo.

Sau khi nhấp vào nút 'Khai báo', hai không gian tên sẽ hiện ra vì chúng ta có hai URI. Một trong số đó là lược đồ. URL và cái còn lại tương ứng với dịch vụ web thực tế. URLChúng ta cần sử dụng không gian tên thực tế nơi dịch vụ web được đặt chứ KHÔNG phải không gian tên lược đồ khi tham chiếu XPath. Các dòng được khai báo xuất hiện ở đầu hộp XPath như hình bên dưới.

Khai báo các không gian tên soap và ns1 bên trong cửa sổ xác nhận XPath.

khai báo không gian tên xà phòng='http://schemas.xmlsoap.org/soap/envelope/';

khai báo không gian tên ns1='http://tempuri.org/';

Cửa sổ xác nhận XPath sẽ hiện ra ngay sau khi bạn nhấp vào "Khai báo".

Bước 3: Bây giờ chúng ta cần nhập XPath của nút XML mà chúng ta cần xác thực.

//ns1:AddResult Cung cấp cho chúng ta Giá trị của nút nằm giữa & và ns1 tương ứng với không gian tên được khai báo trỏ đến 'http://tempuri.org/'

Sau khi nhập XML, chúng ta cần nhấp vào 'Chọn từ hiện tại' để giá trị từ phản hồi hiện tại sẽ được chọn để so sánh trong tương lai.

Biểu thức XPath được nhập bằng cách chọn từ vùng được tô sáng hiện tại.

Bước 4: Cho đến nay,

  1. Sau khi khai báo các namespace, chúng ta đã nhập XPath của nút XML mà chúng ta cần Validate.
  2. Chúng ta cần nhấp vào 'Chọn từ hiện tại' để đặt giá trị hiện tại làm giá trị mong đợi.
  3. Giá trị hiện tại được hiển thị cho người dùng mà chúng tôi có thể sửa đổi nếu cần.
  4. Nhấp vào để lưu'.

Cấu hình khớp XPath hiển thị giá trị dự kiến ​​và nút Lưu.

Bước 5: Khẳng định bổ sung trong SoapUI Sẽ được hiển thị như hình bên dưới.

Tab Assertions hiển thị khẳng định XPath Match đã được thêm vào.

Xác nhận kịch bản

Kỹ thuật Xác nhận này là kỹ thuật được sử dụng rộng rãi nhất vì cực kỳ khó quản lý và duy trì hàng trăm xác nhận.

SoapUI sử dụng một trong hai Groovy Viết kịch bản hoặc JavaScript để lập trình các khẳng định. Kỹ thuật lập trình được áp dụng để phát triểnping Một khuôn khổ để kiểm thử SOAP. Các câu lệnh khẳng định được sử dụng trong các trường hợp sau.

  • Việc lập trình kịch bản cho phép người dùng thực hiện một số thao tác trước và sau khi thực thi trường hợp kiểm thử bằng cách sử dụng các phương thức thiết lập và gỡ bỏ tương ứng. Thiết lập là một thủ tục được thực thi trước khi thực thi một phương thức cụ thể (ví dụ: Tạo và Khởi tạo đối tượng), trong khi gỡ bỏ là một thủ tục được thực thi sau khi thực thi phương thức đó (ví dụ: Hủy đối tượng và dọn dẹp). Tính năng này không có sẵn trong các loại Khẳng định khác và chỉ có thể được thực hiện thông qua lập trình.
  • Nó cho phép người dùng thực hiện thao tác mở/đóng Dự án, để khởi tạo hoặc dọn dẹp các thiết lập liên quan đến Dự án và cũng để làm việc với các biến môi trường, điều này rất hữu ích trong quá trình lập trình kịch bản.
  • Nó giúp chúng tôi khẳng định nội dung Phản hồi động.
  • Các câu lệnh khẳng định được sử dụng để tạo ra các câu lệnh khẳng định do người dùng định nghĩa mà KHÔNG được định nghĩa trước bởi SoapUI.

Để minh họa một khẳng định Script trong SoapUIChúng ta sẽ sử dụng WSDL của máy tính, trường hợp kiểm thử 'Add' mà chúng ta đã tạo trước đó.

Bước 1: Các bước thêm script Groovy cũng tương tự như các bước thêm câu lệnh khẳng định khác, ngoại trừ việc câu lệnh khẳng định này không phải là câu lệnh được định nghĩa sẵn. Thay vào đó, nó là một câu lệnh khẳng định do người dùng định nghĩa, mang lại tính linh hoạt cao hơn so với các câu lệnh tích hợp sẵn.

Chọn bước Kiểm tra mà xác nhận phải được thêm vào.

Bước kiểm thử được chọn trong SoapUI trình điều hướng trước khi thêm một khẳng định

Nhấp vào nút 'Thêm xác nhận' như hiển thị bên dưới.

Nút Thêm Khẳng định trên thanh công cụ khẳng định của bước kiểm thử

Bước 2: Bây giờ hãy chọn danh mục Khẳng định.

  1. Trong trường hợp này là Script.
  2. Chọn SoapUI Khẳng định tập lệnh và không có kiểu phụ nào liên kết với nó.
  3. Nhấp vào 'Thêm'.

Thêm hộp thoại Xác nhận với danh mục Kịch bản đã được chọn

Bước 3: Hộp thoại Lập trình sẽ mở ra, nơi người dùng có thể viết kịch bản do người dùng định nghĩa để xác thực XML phản hồi.

Trống SoapUI hộp thoại trình chỉnh sửa xác nhận tập lệnh

Bước 4: Bây giờ chúng ta hãy viết một đoạn mã Groovy để xác thực Tỷ lệ chuyển đổi. Đoạn mã được đính kèm bên dưới với các chú thích được nhúng sẵn. Nên có kiến ​​thức về... Java Kịch bản hoặc Groovy Script trước khi thử viết script của riêng bạn.

//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"}
  1. Nhấp vào nút 'Thực thi' để kích hoạt thực thi.
  2. Đầu ra của Tập lệnh được hiển thị trong khung Đầu ra. Nó đã in cả Giá trị chuyển đổi cũng như kết quả cuối cùng (Đạt hoặc Không đạt)
  3. Thông tin được hiển thị là 'Xác nhận tập lệnh đã được thông qua'. Bấm vào đồng ý.

Lưu ý: Cửa sổ bật lên Thông tin cuối cùng sẽ luôn hiển thị với thông báo 'Xác nhận tập lệnh đã được thông qua' miễn là tập lệnh đúng về mặt cú pháp. Nó không có mối tương quan nào với khẳng định của bạn trong kịch bản.

Khung hiển thị kết quả xác nhận tập lệnh sẽ in giá trị kết quả và Pass.

nhấn OK

Bước 5: Giờ đây, tab Khẳng định sẽ hiển thị tất cả các khẳng định mà chúng ta đã thêm cho bộ kiểm thử này cùng với Trạng thái của từng khẳng định.

Tab "Assertions" liệt kê mọi khẳng định đã được thêm vào bộ kiểm thử.

Bước 6: Bây giờ

  1. Chọn Bộ thử nghiệm từ cây Điều hướng
  2. Nhấp vào nút 'Chạy'
  3. Kết quả sẽ được hiển thị cho toàn bộ bộ thử nghiệm.

Kết quả chạy bộ kiểm thử sau khi thực thi tất cả các khẳng định.

XQuery Match Assertion

Nó sử dụng biểu thức XQuery để chọn nội dung từ thuộc tính mục tiêu. Chúng ta cần một XML phản hồi lớn hơn nhiều để hiểu rõ hơn về khẳng định XQuery. SoapUIChúng ta hãy nhập thêm một tệp WSDL khác như hình bên dưới: http://www.webservicex.net/medicareSupplier.asmx?WSDL

Lưu ý: Các điểm cuối demo webservicex.net công khai được sử dụng trong hướng dẫn này hiện không còn truy cập được một cách đáng tin cậy, vì vậy các ảnh chụp màn hình yêu cầu và phản hồi bên dưới được giữ lại làm ví dụ tham khảo. Bất kỳ WSDL nào trả về một tập hợp nút lặp lại sẽ thực thi khẳng định XQuery theo cùng một cách.

Bước 1: Nhấp chuột phải vào dự án hiện có và chọn 'Thêm WSDL'.

Menu chuột phải trên SoapUI Dự án minh họa cách thêm WSDL

Bước 2: Hộp thoại Thêm WSDL sẽ mở ra. Giữ nguyên các tùy chọn khác ở chế độ mặc định và nhấn nút 'OK'.

Thêm hộp thoại WSDL với các tùy chọn nhập mặc định

Bước 3: Tất cả các thao tác được liệt kê như hình bên dưới.

Các hoạt động WSDL của nhà cung cấp Medicare được liệt kê trong cây điều hướng.

Bước 4: Bây giờ chúng ta hãy thêm một Trường hợp thử nghiệm trong cùng bộ thử nghiệm mà chúng tôi đã tạo cho Kiểm tra người chuyển đổi tiền tệ.

Thêm tùy chọn TestCase mới vào bộ kiểm thử hiện có.

Bước 5: Nhập tên trường hợp kiểm thử và nhấn nút 'OK'.

Nhập tên trường hợp kiểm thử vào hộp thoại Trường hợp kiểm thử mới

Bước 6: Trường hợp kiểm thử được tạo như hình bên dưới.

Trường hợp kiểm thử mới được tạo trong SoapUI cây định hướng

Bước 7: Thêm một bước kiểm thử mới thuộc loại 'Yêu cầu kiểm thử SOAP' như hình bên dưới.

Thêm menu Bước với tùy chọn Yêu cầu Kiểm thử SOAP đã chọn

Bước 8: Nhập tên của bước kiểm thử. Ví dụ: Supplier_by_City, tên này sẽ có ý nghĩa hơn. Nhấp vào 'OK'.

Đặt tên cho bước kiểm thử mới là Supplier_by_City

Bước 9: Chọn Operamà chúng tôi muốn xác thực. Trong trường hợp này là 'MedicareSupplierSoap -> GetSupplierByCity'. Nhấp vào 'OK'.

Chọn thao tác GetSupplierByCity cho bước kiểm thử

Bước 10: Nhập Tên của trường hợp kiểm thử và nhấn 'OK'.

Xác nhận tên yêu cầu kiểm thử SOAP

Bước 11: Bản phác thảo XML yêu cầu sẽ được hiển thị như hình bên dưới.

Bản phác thảo XML của yêu cầu GetSupplierByCity được tạo ra

Bước 12: Bây giờ chúng ta hãy tìm tất cả thông tin nhà cung cấp cho thành phố 'New York'.

Để thực hiện việc này, hãy thêm các dòng sau vào mã của bạn.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

WSDL ở bên dưới URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Yêu cầu XML đã được chỉnh sửa với giá trị Thành phố là New York.

Bước 13: Sau khi thực hiện kiểm tra, chúng ta nhận được phản hồi bên dưới.

Phản hồi GetSupplierByCity chứa các bản ghi nhà cung cấp trùng lặp.

Bước 14: Giả sử chúng ta cần xác thực tất cả các Mã số Nhà cung cấp. Chúng ta không thể sử dụng XPath Assertion vì cần đến hàng trăm XPath Assertion. Do đó, việc sử dụng XQuery là không thể tránh khỏi trong trường hợp này.

Xác nhận XQuery giúp chúng tôi xác thực một nhóm phản hồi XML có tính chất lặp lại.

Các nút SupplierData lặp lại mà XQuery sẽ lặp qua.

Bước 15: Bây giờ hãy nhấp vào 'Thêm một khẳng định'.

  1. Chọn 'Danh mục xác nhận' - Nội dung thuộc tính trong trường hợp này.
  2. Chọn Loại Khẳng định là 'Khẳng định XQuery'
  3. Nhấp vào 'Thêm'.

XQuery Assertion được chọn trong danh mục Nội dung thuộc tính.

Bước 16: Tương tự như XPath Assertion, chúng ta cần khai báo không gian tên.

  1. Nhấp vào nút 'Khai báo' để tự động cho phép. SoapUI Để khai báo không gian tên. Sau khi nhấp vào nút "Khai báo", một cửa sổ bật lên với thông báo "Hãy khai báo không gian tên từ lược đồ thay vì từ lược đồ" sẽ hiển thị cho người dùng. Nhấp vào "Có" để tiếp tục như hình bên dưới.
  2. Để truy xuất tất cả Mã số nhà cung cấp, chúng tôi cần viết Truy vấn XPath và chúng tôi sẽ đặt nó trong <ProvideNumber> và Thẻ.
  3. Nhấp vào 'Chọn từ hiện tại' sẽ thực thi từ phản hồi hiện tại.
  4. Sau khi nhấp vào 'Chọn từ danh sách hiện tại', tất cả mã số nhà cung cấp sẽ được liệt kê.
  5. Nhấp vào để lưu'.

Khai báo không gian tên từ cửa sổ bật lên xác nhận lược đồ.

Lưu ý: Sau khi nhấn nút 'Khai báo', bạn có thể nhận được kết quả khác. URLMặc dù 's' được dùng làm khai báo không gian tên, nhưng không gian tên vị trí thực tế của dịch vụ web mới là thứ được xem xét khi lập trình.

Biểu thức XQuery hoàn chỉnh, cùng với các khai báo không gian tên, trông như thế này.

// 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)}
}

Cửa sổ biểu thức XQuery hiển thị danh sách mọi số nhà cung cấp.

Bước 17: Câu lệnh XQuery Assertion được thực thi và hiển thị kết quả cuối cùng trong bảng 'Assertion' như hình bên dưới. Giờ đây, chúng ta đã thêm thành công một câu lệnh XQuery assertion để xác thực tất cả thông tin về Mã số nhà cung cấp. Thông tin này sẽ được so sánh với số liệu thực tế mỗi khi yêu cầu được gửi đến máy chủ web.

Lưu ý: Giá trị thực tế sẽ không được hiển thị. Nếu tất cả các giá trị thực tế giống với giá trị mong đợi thì nó sẽ hiển thị HỢP LỆ, nếu không nó sẽ hiển thị 'Không thành công'.

Bảng xác nhận hiển thị kết quả xác nhận XQuery.

Khi nào nên sử dụng xác nhận sẵn có?

Với cả hai tùy chọn thao tác bằng chuột và lập trình, câu hỏi thực tế đặt ra là nên chọn phương pháp nào.

  • Khi một Phản hồi ngắn đến mức nó có thể được xác thực bằng cách sử dụng một trong những xác nhận sẵn có đó.
  • Chúng tôi cũng có thể sử dụng Xác nhận sẵn có nếu phản hồi được gửi từ máy chủ web luôn ở trạng thái tĩnh. Nếu nó là động, chúng ta sẽ không thể xác nhận nó bằng cách sử dụng các xác nhận sẵn có.
  • Khi việc sử dụng các xác nhận sẵn có như xác nhận Hết thời gian chờ và xác nhận bảo mật trở nên không thể tránh khỏi.
  • Các xác nhận sẵn có hoạt động khá tốt khi sử dụng một lần khi không cần phải lặp lại các thử nghiệm.

Tùy chọn xác nhận

Các xác nhận đã tạo có thể được kiểm soát tốt nhất với sự trợ giúp của bảng điều khiển được đánh dấu bên dưới.

bảng điều khiển hộp công cụ xác nhận trong SoapUI

Các khẳng định được tạo cho phép người kiểm tra cấu hình những thứ sau từ hộp công cụ khẳng định.

Tùy chọn Mô tả Chi tiết
Di chuyển biểu tượng khẳng định lên trên Xác nhận đã chọn sẽ di chuyển lên thứ tự.
Di chuyển biểu tượng xác nhận xuống Xác nhận đã chọn sẽ di chuyển xuống thứ tự.
Xóa biểu tượng xác nhận Xóa xác nhận đã chọn
Cấu hình hoặc chỉnh sửa biểu tượng xác nhận Định cấu hình lại/Chỉnh sửa Xác nhận đã chọn.

Dưới đây là các tính năng chỉ có trong phiên bản Pro của SoapUI, hiện được vận chuyển dưới dạng ReadyAPIPhiên bản Pro cũng giúp chúng ta nhóm các khẳng định lại với nhau để có thể thêm một lớp xác thực nữa cho các khẳng định đã tạo.

  • VÀ: Tất cả các khẳng định đều được đánh giá là khẳng định HỢP LỆ, dẫn đến điều kiện nhóm ĐÃ VƯỢT QUA.
  • OR: Ít nhất một trong các khẳng định trong nhóm phải HỢP LỆ để khẳng định điều kiện ĐÃ ĐẠT của nhóm.
  • Phiên bản Pro cũng cho phép Nhân bản các xác nhậnTùy chọn này cho phép người kiểm thử sao chép một khẳng định sang một bước kiểm thử khác trong cùng hoặc khác dự án.
  • Vô hiệu hóa/Kích hoạt các khẳng định: Tùy chọn này cho phép vô hiệu hóa hoặc kích hoạt bất kỳ khẳng định nào, dù được nhóm hay không được nhóm. Nếu một khẳng định bị vô hiệu hóa, nó sẽ được tô màu xám và khi một trường hợp kiểm thử được thực thi, các khẳng định bị vô hiệu hóa sẽ không được thực thi.
  • Tách nhóm các khẳng định: Bất kỳ khẳng định nào được nhóm lại đều có thể được tách nhóm nếu người kiểm thử quyết định làm như vậy.

Danh sách đầy đủ các phương thức có sẵn trong các loại xác nhận khác nhau

Bảng dưới đây tập hợp tất cả các khẳng định đã thảo luận ở trên, được nhóm theo danh mục mà chúng xuất hiện trong hộp thoại Thêm Khẳng định.

Cơ chế khẳng định Mô tả Chi tiết
NỘI DUNG TÀI SẢN
Thông tin Tìm kiếm sự tồn tại của chuỗi được chỉ định. Nó cũng hỗ trợ biểu thức chính quy.
Không chứa Tìm kiếm sự không tồn tại của chuỗi được chỉ định. Nó cũng hỗ trợ biểu thức chính quy.
Kết hợp XPath Sử dụng biểu thức XPath để chọn nút đích và các giá trị của nó.
Kết hợp XQuery Sử dụng biểu thức XQuery để chọn nội dung từ thuộc tính mục tiêu.
Tuân thủ, Tình trạng, Tiêu chuẩn
HTTP Tải xuống tất cả tài nguyên Xác thực Tài liệu HTML sau khi tải xuống và nó phù hợp với mọi thuộc tính có chứa HTML.
Trạng thái HTTP không hợp lệ Codes Xác minh xem phản hồi HTML có chứa mã trạng thái không có trong danh sách mã được xác định hay không.
Không phải lỗi SOAP Xác minh xem tin nhắn nhận được cuối cùng có phải là Lỗi SOAP hay không. Rõ ràng là nó chỉ áp dụng cho các Bước kiểm tra SOAP.
Tuân thủ lược đồ Xác minh xem tin nhắn nhận được cuối cùng có tuân thủ định nghĩa lược đồ tiêu chuẩn WSDL hoặc WADL hay không. Phù hợp với các bước kiểm tra SOAP và REST.
Lỗi SOAP Xác minh xem tin nhắn nhận được cuối cùng có phải là Lỗi SOAP hay không. Nó là nghịch đảo của Xác nhận lỗi 'KHÔNG SOAP'.
Phản hồi SOAP Xác minh xem phản hồi nhận được cuối cùng có phải là Phản hồi SOAP hợp lệ hay không và chỉ phù hợp với các Bước yêu cầu kiểm tra SOAP.
Trạng thái HTTP hợp lệ Codes Kiểm tra xem phản hồi HTML có chứa mã trạng thái nằm trong danh sách các mã đã được định nghĩa hay không. Đây là thao tác ngược lại với 'Trạng thái HTTP không hợp lệ'. CodeKhẳng định của s.
Yêu cầu địa chỉ WS Xác minh xem yêu cầu nhận được cuối cùng có chứa Tiêu đề địa chỉ WS thích hợp hay không.
Phản hồi địa chỉ WS Xác minh xem phản hồi nhận được cuối cùng có chứa Tiêu đề địa chỉ WS thích hợp hay không.
Trạng thái bảo mật WS Xác thực xem tin nhắn nhận được cuối cùng có chứa các tiêu đề WS-Security hợp lệ và chỉ phù hợp với các Yêu cầu SOAP hay không.
Script
Xác nhận tập lệnh Cho phép người dùng thực thi tập lệnh tùy chỉnh để thực hiện xác thực do người dùng xác định.
SLA
SLA phản hồi Xác thực xem thời gian phản hồi của phản hồi nhận được cuối cùng có nằm trong giới hạn đã xác định hay không.
J.M.S.
Trạng thái JMS Xác minh xem yêu cầu JMS của Bước kiểm tra có được thực thi thành công hay không và phù hợp với các Bước kiểm tra có điểm cuối JMS.
Hết giờ JMS Xác minh xem phản hồi JMS của bước kiểm tra có mất nhiều thời gian hơn thời lượng đã chỉ định hay không.
Bảo mật
Tiếp xúc thông tin nhạy cảm Xác minh xem thông báo phản hồi có tiết lộ thông tin nhạy cảm về hệ thống đích hay không. Chúng ta có thể sử dụng xác nhận này cho các bước kiểm tra REST, SOAP và HTTP.

TẢI XUỐNG DỰ ÁN SOAPUI CHỨA NHỮNG Khẳng định TRÊN

Các lỗi thường gặp và xử lý sự cố

Hầu hết các lỗi khẳng định tracHãy quay lại với một vài lỗi nhỏ, vì vậy hãy kiểm tra chúng trước khi viết lại biểu thức.

  • Hãy sử dụng đúng không gian tên. Không gian tên phải là URL nơi đặt dịch vụ web.
  • Nếu xảy ra lỗi trong quá trình phát triểnping Trong một câu lệnh kiểm tra, hãy sử dụng 'log.info' để in nội dung của các biến.
  • Nếu bạn không nhận được kết quả mong muốn, hãy kiểm tra xem dữ liệu đầu vào có hợp lệ được truyền vào yêu cầu hay không.

Ví dụ, trong bộ chuyển đổi tiền tệ, nếu bạn nhập 'intA' là 'x', một giá trị không phải là số nguyên, thì kết quả sẽ hiển thị mã lỗi 'SOAP-Client', có nghĩa là vấn đề nằm ở tham số được truyền từ phía máy khách. Yêu cầu mang giá trị không hợp lệ sẽ được hiển thị trước.

SoapUI yêu cầu truyền một giá trị không hợp lệ không phải số nguyên cho intA

Thay vì trả về kết quả, phản hồi sẽ trả về mã lỗi, như hình bên dưới.

Mã lỗi SOAP-Client được trả về trong SoapUI biên tập viên phản hồi

Hãy đảm bảo bạn sử dụng cú pháp chính xác khi dùng XPath và XQuery assertion. Bạn KHÔNG được dùng dấu chấm (.) thay cho dấu hai chấm (:) khi dùng assertion ở trên. Cú pháp đúng là //namespace:Tagname chứ KHÔNG phải //namespace.tagname. Nếu làm vậy, bạn có thể nhận được thông báo 'NO match in current response' ngay cả khi tên thẻ (tag name) là chính xác.

Lỗi "Không khớp" trong phản hồi hiện tại do cú pháp XPath không chính xác.

Câu Hỏi Thường Gặp

Bất kỳ số nào. SoapUI Nó áp dụng mọi khẳng định được đính kèm vào bước kiểm thử mẫu sau khi bước đó thực thi, và bước đó được đánh dấu là thất bại trong chế độ xem trường hợp kiểm thử nếu ngay cả một trong những khẳng định đó thất bại.

Nó so sánh thông điệp XML với tài liệu dự kiến ​​từng nút một, do đó các trường được chọn có thể bị bỏ qua hoặc so khớp một cách lỏng lẻo thay vì coi toàn bộ dữ liệu là một chuỗi ký tự đơn giản.

Mã nguồn mở SoapUI Bao gồm Nội dung Tài sản, Tuân thủ, Kịch bản, SLA, JMS và Bảo mật. ReadyAPI thêm nhómping, sao chép, kiểm tra JDBC và bật hoặc tắt điều khiển.

Các mô hình AI đọc một phản hồi mẫu và đề xuất các biểu thức XPath hoặc XQuery, đề xuất các giá trị giới hạn và đánh dấu các trường thay đổi trong mỗi lần chạy — giúp giảm đáng kể công việc viết thủ công tên không gian và biểu thức.

Vâng. Phi công phụ tự động hoàn thành GroovyMã mẫu cho các tiện ích và XmlHolder. Luôn luôn thực thi tập lệnh trước, vì một tập lệnh hợp lệ về mặt cú pháp sẽ báo cáo "Script Assertion Passed" bất kể phép so sánh của bạn như thế nào.

Đúng vậy. Các trường nội dung khẳng định hỗ trợ mở rộng thuộc tính, do đó giá trị mong đợi có thể được lấy từ thuộc tính của dự án hoặc trường hợp kiểm thử thay vì một giá trị cố định, điều này giúp cho một khẳng định có thể được sử dụng lại trên nhiều môi trường khác nhau.

Một khẳng định thất bại sẽ đánh dấu bước kiểm thử đó là thất bại trong cửa sổ xem trường hợp kiểm thử và ghi một mục FAILED tương ứng, cùng với chi tiết lỗi, vào Nhật ký thực thi kiểm thử ở cuối cửa sổ.

Chứa, Không chứa, Khớp XPath, Khớp XQuery, SLA phản hồi, Tập lệnh, mã trạng thái HTTP hợp lệ và không hợp lệ, Lộ thông tin nhạy cảm và Tuân thủ lược đồ so với WADL hoặc lược đồ suy luận.

Tóm tắt bài viết này với: