Belajar SOAP - Testing dengan SoapUI & Postman
Episode 6 of 23

Belajar SOAP - Testing dengan SoapUI & Postman

Menguasai workflow testing SOAP: mengimpor WSDL ke SoapUI, menyusun request dari operasi, assertions otomatis, dan MockService untuk pengembangan paralel, plus menggunakan Postman untuk raw SOAP/XML dan validasi terhadap WSDL dan XSD.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 5 kita bisa memanggil SOAP dari empat bahasa, sekarang kita kuasai senjatanya untuk testing: SoapUI dan Postman. Service SOAP yang baik bukan hanya berjalan — ia harus bisa diuji, divalidasi, dan disimulasikan sebelum produksi.

Mengapa tool ini penting? Karena SOAP itu kaku: satu namespace salah, satu elemen kurang, dan request ditolak. Manual testing dengan curl bisa, tetapi melelahkan. SoapUI mengotomasi sebagian besar pekerjaan: ia membaca WSDL, membangkitkan request, menjalankan assertions, dan bisa berpura-pura menjadi server (MockService). Postman berguna untuk uji cepat dan integrasi dengan collection API kalian.

Mengimpor WSDL ke SoapUI

Langkah pertama adalah membuat project dari WSDL. Pastikan service episode 4 masih berjalan, lalu buka SoapUI:

Alur di SoapUI
File > New SOAP Project
Project Name : BankService
Initial WSDL : http://localhost:8080/bank?wsdl

SoapUI membaca WSDL dan membangkitkan struktur lengkap: Bindings (list operasi), Requests, dan Test Suites. Setiap operasi di portType muncul sebagai request siap-isi.

Tip

SoapUI juga bisa membuat request tanpa WSDL (lengkap dari nol) lewat template raw. Ini berguna saat WSDL belum tersedia atau saat kalian ingin menguji pemrosesan pesan yang tidak valid — sesuatu yang tidak bisa dilakukan client hasil generate.

Menyusun Request dan Menjalankan Assertions

Buka request getBalance, isi nilainya, lalu jalankan:

Request di SoapUI
<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:bank="urn:example:bank">
  <soapenv:Body>
    <bank:getBalance>
      <bank:accountNo>ACC-001</bank:accountNo>
    </bank:getBalance>
  </soapenv:Body>
</soapenv:Envelope>

SoapUI menampilkan response di panel kanan. Tapi yang membuat SoapUI kuat adalah assertions — aturan otomatis yang memvalidasi response tanpa baca manual. Tambahkan di tab Assertions:

AssertionKegunaan
ContainsMemastikan string tertentu muncul (mis. 2750000)
Not ContainsMemastikan string error tidak muncul
Validates Against WSDLMemvalidasi response terhadap definisi WSDL
Schema ComplianceValidasi terhadap XSD di dalam types
SOAP FaultMemastikan response bukan Fault (atau sebaliknya)
XPath MatchMemeriksa nilai di node XML tertentu

Dengan assertions, kalian bisa menjalankan ratusan request dalam satu test suite dan mendapat satu hasil: lulus atau gagal. Ini fondasi untuk test automation di pipeline CI.

MockService: Server Palsu untuk Pengembangan Paralel

MockService membuat SoapUI berperan sebagai server SOAP berdasarkan WSDL. Client yang sedang dikembangkan bisa mengarah ke mock ini — tanpa menunggu server asli selesai. Cara kerjanya:

  1. Klik kanan project → Generate MockService.
  2. Pilih operasi yang ingin disimulasikan (misal getBalance).
  3. Definisikan response default (nilai statis atau dinamis via Mock Response).
Alur MockService
MockService : http://localhost:9090/bank
  ├── getBalance
  │    ├── Request
  │    └── MockResponse : 2750000.00

Sekarang tim frontend/backend lain bisa mengembangkan client terhadap http://localhost:9090/bank sementara kalian mengembangkan server asli secara paralel. Saat server asli siap, cukup ganti endpoint di konfigurasi client.

Postman untuk SOAP/XML

Postman bukan tool SOAP khusus, tetapi sangat mumpuni untuk uji cepat raw XML — terutama jika tim sudah terbiasa dengan koleksi Postman:

Request SOAP di Postman
POST http://localhost:8080/bank
Headers:
  Content-Type: text/xml; charset=utf-8
Body (raw, XML):
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bank="urn:example:bank">
    <soap:Body>
      <bank:getBalance><bank:accountNo>ACC-001</bank:accountNo></bank:getBalance>
    </soap:Body>
  </soap:Envelope>

Gunakan Tests di Postman untuk assertions sederhana berbasis JavaScript:

JSTests Postman
pm.test("Status 200", () => pm.response.to.have.status(200));
const xml = pm.response.text();
pm.test("Balance ada", () => pm.expect(xml).to.include("2750000"));

Debugging Envelope dan Namespace

Saat request ditolak, kesalahan hampir selalu di salah satu dari tiga area ini — periksa berurutan:

  1. Namespace SOAP — apakah soapenv (1.1, schemas.xmlsoap.org) atau soap (1.2, www.w3.org/2003/05)? Harus cocok dengan WSDL.
  2. Namespace bisnis — elemen body harus memakai namespace targetNamespace WSDL (contoh urn:example:bank), bukan namespace SOAP.
  3. Urutan elemen — XSD sequence mensyaratkan urutan elemen sesuai definisi; menukar <accountNo> dan elemen lain menyebabkan invalid.

Untuk melihat pesan mentah yang lewat di jaringan, gunakan TCP/IP Monitor di SoapUI (tab Tools) — ia menampilkan request dan response HTTP mentah, persis seperti yang diterima server. Kita dalami ini di episode 13.

Warning

Jangan pernah "menaklukkan" server yang menolak request dengan mengubah WSDL/XSD di SoapUI. Kalau validasi XSD gagal, masalahnya biasanya di request kalian — bukan di kontrak. Perbaiki request, jangan melemahkan kontrak.

Penutup

Inti yang harus dibawa pulang:

  • SoapUI mengimpor WSDL, membangkitkan request, dan mengotomasi validasi dengan assertions.
  • MockService memungkinkan pengembangan paralel tanpa server asli.
  • Postman cocok untuk uji cepat raw SOAP/XML dan integrasi dengan collection API.
  • Debug namespace (SOAP 1.1 vs 1.2) dan urutan elemen XSD adalah skill diagnosis utama.
  • TCP/IP Monitor menampilkan pesan mentah — dasar troubleshooting di episode 13.

Di episode 7 selanjutnya kita akan membedah namespace, XSD, dan data types — cara kerja xmlns dan qualified names, complex types, sequence, restriction, nillable, hingga serialisasi Date, Decimal, dan Base64 yang sering menjadi biang masalah integrasi. Sampai jumpa di episode 7!

Belajar SOAP - Testing dengan SoapUI & Postman | Belajar SOAP