Dalam skenario uji stres aktual, Anda dapat mengekstrak parameter output dari respons suatu permintaan dan menggunakan informasi tersebut sebagai input untuk permintaan berikutnya. Anda dapat mendefinisikan beberapa parameter output dalam satu API. Topik ini menjelaskan cara mengekstrak parameter output.
Konfigurasikan parameter output
Tabel berikut menjelaskan elemen-elemen dalam parameter output.
Element | Description |
|
Output Parameter Name |
Nama parameter output. Nama dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-). Nama harus dimulai dengan huruf. |
|
Source |
Metode penguraian respons. Anda dapat memilih salah satu metode penguraian berikut:
|
|
Parsing Expression |
Ekspresi penguraian yang digunakan untuk mengekstrak konten yang ingin Anda gunakan sebagai parameter output dari respons. |
|
Nth match |
Parameter ini hanya berlaku ketika Source diatur ke Body : TEXT. Jika ekspresi penguraian menemukan beberapa kecocokan, gunakan parameter ini untuk memilih salah satu. Pengindeksan dimulai dari 0. Angka negatif, seperti -n, memilih kecocokan ke-n dari akhir. Nilainya harus berada dalam rentang [-99, 99]. Untuk memilih kecocokan acak, masukkan random. |
Metode penguraian Body : JSON
Tipe sumber Body : JSON mendukung respons dengan header Content-Type berupa application/json dan text/json.
PTS mendukung sintaks JSONPath versi baru maupun lama. Untuk menyoroti perbedaan antara ekspresi JSONPath versi baru dan lama, bagian berikut menyajikan struktur contoh JSONPath serta sintaks dan deskripsi ekspresi JSONPath untuk kedua versi tersebut.
Kami menyarankan agar Anda menggunakan sintaks JSONPath versi baru.
Ekspresi JSONPath (versi baru)
Kode contoh berikut memberikan struktur JSONPath versi baru. Tabel berikut menjelaskan sintaks dan deskripsi ekspresi JSONPath versi baru.
Sintaks JSONPath | Description |
$ | Objek root. Misalnya, jika Anda menentukan ekspresi |
[num] | Pengambilan elemen dalam array. Variabel num menentukan angka. Misalnya, jika Anda menentukan ekspresi |
[num0,num1,num2...] | Pengambilan beberapa elemen dalam array. Variabel num menentukan angka. Dalam kasus ini, beberapa elemen dalam array dikembalikan. Misalnya, jika Anda menentukan ekspresi |
[start:end] | Pengambilan rentang elemen yang didefinisikan oleh elemen awal dan elemen akhir dalam array. Misalnya, jika Anda menentukan ekspresi |
[?(@.key)] | Pengambilan atribut objek yang tidak kosong. Misalnya, jika Anda menentukan ekspresi |
[?(@.key > 123)] | Pengambilan atribut objek bertipe numerik melalui operasi perbandingan. Operator perbandingan yang didukung meliputi sama dengan (=), tidak sama dengan (!=), lebih besar dari (>), lebih besar dari atau sama dengan (>=), kurang dari (<), dan kurang dari atau sama dengan (<=). Misalnya, jika Anda menentukan ekspresi |
[?(@.key = '123')] | Pengambilan atribut objek bertipe string melalui operasi perbandingan. Operator perbandingan yang didukung meliputi sama dengan (=), tidak sama dengan (!=), lebih besar dari (>), lebih besar dari atau sama dengan (>=), kurang dari (<), dan kurang dari atau sama dengan (<=). Misalnya, jika Anda menentukan ekspresi |
[?(@.key like 'aa%')] | Pengambilan atribut objek bertipe string melalui klausa like. Anda hanya dapat menggunakan tanda persen (%) sebagai wildcard. Klausa not like juga didukung. Misalnya, jika Anda menentukan ekspresi |
[?(@.key rlike 'regexpr')] | Pengambilan atribut objek bertipe string melalui ekspresi reguler. Sintaks Java Development Kit (JDK) digunakan dan klausa not rlike juga didukung. Misalnya, jika Anda menentukan ekspresi |
[?(@.key in ('v0', 'v1'))] | Pengambilan atribut objek melalui klausa in. Objek bertipe string dan numerik didukung. Klausa not in juga didukung. Misalnya, jika Anda menentukan ekspresi |
[?(@.key between 234 and 456)] | Pengambilan atribut objek melalui klausa between. Objek bertipe numerik didukung. Klausa not between juga didukung. Misalnya, jika Anda menentukan ekspresi |
length() atau size() | Pengambilan jumlah elemen dalam array. Misalnya, jika Anda menentukan ekspresi |
.. | Pengambilan atribut tertentu. Misalnya, jika Anda menentukan ekspresi |
* | Pengambilan semua atribut dalam objek. Misalnya, jika Anda menentukan ekspresi |
randomIndex() | Pengambilan elemen acak dalam array. Misalnya, jika Anda menentukan ekspresi |
['key'] | Pengambilan atribut. Misalnya, jika Anda menentukan ekspresi |
['key0','key1'] | Pengambilan beberapa atribut. Misalnya, jika Anda menentukan ekspresi |
Makna semantik dari ekspresi $.store.book[0].title dan $['store']['book'][0]['title'] adalah sama.
Ekspresi JSONPath (versi lama)
Kode contoh berikut memberikan struktur JSONPath versi lama. Tabel berikut menjelaskan sintaks dan deskripsi ekspresi JSONPath versi lama.
{
"info": "success",
"message": "Succeeded.",
"data": {
"id":13509, "code":0,
"items": [
{"name": "name1", "value": "1234"},
{"name": "name2", "value": "8448"},
{"name": "name3", "value": "1298"},
{"name": "name4", "value": "3049"},
{"name": "name5", "value": "7648"}
]
}
}
Nilai parameter output | Ekspresi penguraian versi lama | Ekspresi penguraian versi baru (untuk perbandingan) |
Nilai objek info. |
|
|
Nilai ID dalam array data. |
|
|
Nilai elemen pertama dalam array items. Posisi relatif didukung. |
|
|
Nilai elemen kedua dari belakang dalam array items. Posisi relatif didukung. |
| Tidak didukung |
Seluruh array items. |
|
|
Elemen acak dalam array items. |
|
|
Body : Metode Penguraian TEKS
Tipe sumber Body : TEXT mendukung format teks apa pun dan menggunakan ekspresi reguler untuk mengekstrak data. Jika ekspresi reguler menghasilkan beberapa kecocokan, Anda dapat menentukan kecocokan mana yang akan digunakan berdasarkan indeksnya. Indeks default adalah 0, yang memilih kecocokan pertama.
Kode contoh berikut menunjukkan respons API:
<input name="id" value="34729XXXX">
<input name="token" value="acdfo4dfopasdf44dXXXX">
...
<script>
var planId=4587;
var planId=5689;
var planId=8906;
</script>
|
Nilai yang diinginkan |
Parsing Expression |
Nth match |
Nilai yang namanya id. |
| 0 |
Nilai yang namanya token. |
| 0 |
Nilai elemen PlanID ketiga. |
| 2 |
Nilai elemen PlanID acak. |
| random |
Konvensi format:
-
Pemindaian dimulai dari awal badan respons. Nilai pertama yang cocok dengan ekspresi digunakan, dan pemindaian berhenti. Oleh karena itu, pastikan ekspresi penguraian Anda cukup spesifik untuk mencocokkan hanya nilai yang diinginkan, kecuali jika salah satu dari beberapa kecocokan dapat diterima.
Teks yang cocok tidak boleh mengandung karakter khusus, seperti kurung kurawal ({}) dan tanda kurung biasa (()).
Saat menggunakan ekspresi reguler untuk mengekstrak informasi dari respons JSON, Anda tidak perlu menambahkan spasi setelah tanda titik dua antara kunci dan nilai dalam pasangan kunci-nilai. Anda dapat menambahkan spasi setelah tanda titik dua antara kunci dan nilai di setiap pasangan kunci-nilai untuk mengoptimalkan efek visual data JSON.
Metode penguraian Cookie : K/V dan Header : K/V
Metode penguraian Cookie : K/V dan Header : K/V digunakan untuk mengekstrak bidang Cookie dan bidang Header, masing-masing. Anda dapat menentukan kunci yang ingin diekstrak dalam ekspresi penguraian. Misalnya, jika bidang Cookie berisi token=1234;path=/ dan Anda ingin mengekstrak nilai token, masukkan token dalam ekspresi penguraian.
Metode penguraian Status Code
Anda dapat menggunakan metode penguraian Status Code untuk mengekstrak kode status respons permintaan. Dalam kebanyakan kasus, metode ini digunakan untuk titik pemeriksaan atau lompatan kondisional, karena halaman informasi yang berbeda dikembalikan untuk kode status yang berbeda.
Parameter output node JDBC
Untuk mengekstrak parameter output dari hasil kueri SQL, pilih sumber Body : JSON. Hasilnya disusun sebagai objek JSON berikut:
{
"data": [
{
"Column 1": "value",
"Column 2": "value"
},
{
"Column 1": "value",
"Column 2": "value"
}
...
]
}
Sebagai contoh, tabel berikut menunjukkan hasil kueri SQL. Asumsikan Anda ingin mengurai nilai name1 dalam kolom name pada baris pertama sebagai parameter output.
id | name |
1 | name1 |
2 | name2 |
Gunakan ekspresi penguraian berikut:
$.data[0].nameDebug parameter output
Jika Anda tidak yakin apakah ekspresi penguraian sudah benar, Anda dapat melakukan debug terhadap ekspresi penguraian dan parameter output terkait dalam debugging skenario. Lakukan langkah-langkah berikut:
-
Pada halaman PTS Scenario, klik Debug di bagian bawah. Pada kotak dialog Debug Scenario yang muncul, klik nama skenario tersebut. Di panel detail di sebelah kanan, pilih API dan klik Click to test the regular expression for the output parameter.
-
Pada kotak dialog yang muncul, pilih tipe sumber, masukkan ekspresi penguraian, tentukan nth match, dan masukkan nama parameter output. Klik Test Expression. Periksa hasil kecocokan terhadap detail respons untuk memverifikasi bahwa konten yang diekstrak sudah benar.
-
Untuk menyimpan konfigurasi, klik Sync Output Parameter untuk menambahkan ekspresi ini ke daftar parameter output API tersebut.
CatatanSetelah debugging skenario selesai, jika Anda telah menyinkronkan parameter output apa pun, kembali ke tab Scenario settings pada uji stres. Pada tab Output Parameter Definition untuk API tersebut, Anda harus menetapkan nama untuk parameter output yang telah disinkronkan.
Contoh: Konfigurasikan parameter output
Dalam bisnis manajemen keuangan, Anda ingin merekomendasikan layanan yang sesuai berdasarkan kemampuan konsumsi pelanggan. Dalam hal ini, Anda harus mengekstrak tingkat kemampuan konsumsi setiap pelanggan sebagai parameter output dan menggunakan parameter tersebut untuk merekomendasikan layanan.
Lakukan langkah-langkah berikut:
-
Masuk ke PTS console, pilih , lalu klik PTS.
-
Pada halaman PTS Scenario, tambahkan API untuk mengambil daya belanja dan merekomendasikan produk. Misalnya, beri nama Spending Power (with output parameter) dan Product Recommendation, lalu masukkan URL masing-masing.
-
Untuk API Spending Power (with output parameter), konfigurasikan parameter output untuk mengekstrak informasi daya belanja dari respons. Masukkan nama parameter output (misalnya,
output) dan ekspresi penguraian (misalnya,data.items[0].value). -
Di pojok kiri bawah halaman PTS Scenario, klik Parameter list. Pada tab Custom parameters, Anda dapat melihat parameter output yang telah dibuat. Klik nama parameter (misalnya,
output) atau ikon copy
untuk menyalin referensi parameter ke clipboard Anda. -
Dalam konfigurasi API Product Recommendation, buka tab Body Definition. Tempel referensi parameter yang telah disalin ke dalam body.

Anda juga dapat mengedit konten body, seperti menggabungkan string, parameter, atau fungsi.