Dalam skenario pengujian stres yang sebenarnya, Anda dapat mengekstrak parameter output dari respons permintaan dan menggunakannya sebagai input untuk permintaan berikutnya. Anda juga 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.
Elemen | Deskripsi |
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 tersedia ketika Anda mengatur parameter Source ke Body : TEXT. Jika ekspresi penguraian yang ditentukan memiliki lebih dari satu kecocokan dalam respons, gunakan parameter ini untuk menentukan nomor urut string yang ingin Anda gunakan sebagai parameter output. Nomor urut dimulai dari 0. Nilai negatif menentukan string ke-N dari akhir. Nilai valid: -99 hingga 99. Jika Anda ingin menggunakan string acak sebagai parameter output, masukkan random. |
Metode penguraian Body : JSON
Jenis respons berikut didukung: application/json dan text/json.
PTS mendukung sintaks JSONPath versi baru dan lama. Untuk membedakan antara kedua versi, bagian berikut menyediakan struktur JSONPath sampel serta deskripsi sintaks dan ekspresi JSONPath untuk masing-masing versi.
Disarankan menggunakan sintaks JSONPath versi baru.
Ekspresi JSONPath (Versi Baru)
Kode sampel berikut menunjukkan contoh struktur JSONPath versi baru. Tabel berikut menjelaskan sintaks dan deskripsi ekspresi JSONPath versi baru.
Sintaks JSONPath | Deskripsi |
$ | 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 hal 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 termasuk 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 termasuk 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 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 didukung. Misalnya, jika Anda menentukan ekspresi |
[?(@.key between 234 and 456)] | Pengambilan atribut objek melalui klausa between. Objek bertipe numerik didukung. Klausa not between didukung. Misalnya, jika Anda menentukan ekspresi |
length() or 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 |
Semantik ekspresi $.store.book[0].title dan $['store']['book'][0]['title'] adalah sama.
Ekspresi JSONPath (Versi Lama)
Kode sampel berikut menunjukkan contoh 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 | Versi lama ekspresi penguraian | Versi baru ekspresi penguraian (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. |
|
|
Metode penguraian Body : TEXT
Semua format teks didukung. Anda dapat menggunakan ekspresi reguler untuk mengekstrak informasi. Jika ekspresi reguler memiliki beberapa kecocokan, Anda dapat menentukan kecocokan mana yang digunakan. Secara default, 0 menunjukkan kecocokan pertama.
Kode sampel berikut menunjukkan contoh respons API:
<input name="id" value="34729XXXX">
<input name="token" value="acdfo4dfopasdf44dXXXX">
...
<script>
var planId=4587;
var planId=5689;
var planId=8906;
</script>
Output parameter value | Parsing expression | Nth match |
Nilai yang namanya adalah id. |
| 0 |
Nilai yang namanya adalah token. |
| 0 |
Nilai elemen PlanID ketiga. |
| 2 |
Nilai elemen PlanID acak. |
| random |
Konvensi Format:
Order matching principle: Ekspresi penguraian dicocokkan dengan badan respons berdasarkan urutan teks dalam badan respons. Jika ditemukan kecocokan, teks yang cocok ditetapkan ke parameter output dan teks berikutnya diabaikan. Pastikan bahwa ekspresi penguraian yang digunakan dapat secara tepat mencocokkan teks yang diinginkan. Jika hanya perlu memilih kecocokan pertama dari beberapa kecocokan, tidak perlu menentukan kecocokan mana yang digunakan.
Teks yang cocok tidak boleh mengandung karakter khusus seperti kurung kurawal ({}) dan tanda kurung (()).
Saat menggunakan ekspresi reguler untuk mengekstrak informasi dari respons JSON, tidak perlu menambahkan spasi setelah titik dua antara kunci dan nilai dalam pasangan kunci-nilai. Namun, Anda dapat menambahkan spasi setelah titik dua untuk meningkatkan 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 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 Kode Status
Anda dapat menggunakan metode penguraian Kode Status untuk mengekstrak kode status respons permintaan. Dalam banyak kasus, gunakan metode penguraian ini untuk poin pemeriksaan atau lompatan bersyarat. Informasi halaman yang berbeda dikembalikan untuk kode status yang berbeda.
Parameter output node JDBC
Untuk mengekstrak parameter output dari hasil kueri SQL, pilih metode penguraian Body : JSON parsing method yang dijelaskan dalam bagian sebelumnya. Kode sampel berikut menunjukkan contoh struktur data JSON:
{
"data": [
{
"Kolom 1": "nilai",
"Kolom 2": "nilai"
},
{
"Kolom 1": "nilai",
"Kolom 2": "nilai"
}
...
]
}Misalnya, tabel berikut menunjukkan hasil kueri SQL. Anggaplah Anda ingin mengurai nilai (name1) dalam kolom nama baris pertama sebagai parameter output.
id | nama |
1 | name1 |
2 | name2 |
Gunakan ekspresi penguraian berikut:
$.data[0].nameDebug parameter output
Jika Anda tidak yakin apakah ekspresi penguraian benar, Anda dapat men-debug ekspresi penguraian dan parameter output terkait dalam skenario debugging. Ikuti langkah-langkah berikut:
Di bagian bawah halaman PTS Scenario, klik Debug. Di kotak dialog Debug Scenario, klik nama skenario. Detail skenario ditampilkan di sisi kanan kotak dialog. Pilih API dari detail skenario dan klik Click to test the output parameter regular expression.
Di kotak dialog yang muncul, pilih format sumber, masukkan ekspresi reguler, tentukan nilai untuk parameter Kecocokan ke-N, masukkan nama untuk parameter output, dan kemudian klik Test Expression. Hasil kecocokan diperoleh berdasarkan detail respons, yang memprediksi apakah konten yang diekstrak sesuai dengan harapan.
Jika ingin menyetel ulang parameter output, klik Sync Output Parameter untuk menyinkronkan ekspresi reguler ke daftar parameter output API.
CatatanSetelah debugging skenario selesai, kembali ke tab Scenario Settings jika skenario memiliki parameter output yang disinkronkan. Pada tab Output Parameter Definition dari API yang sesuai, tentukan nama untuk setiap parameter output yang 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.
Ikuti langkah-langkah berikut:
Masuk ke Konsol PTS, pilih , dan klik PTS.
Di halaman PTS Scenario, tambahkan API bernama Consumption Capability (including the output parameter) dan Product Recommendation dan masukkan URL yang sesuai.
Dalam API bernama Consumption Capability (including the output parameter), informasi tentang kemampuan konsumsi diekstrak sebagai parameter output berdasarkan detail respons permintaan. Masukkan nama parameter output seperti output dan ekspresi penguraian seperti
data.items[0].value.Di pojok kiri bawah halaman PTS Scenario, klik Parameters. Pada tab Custom Parameters panel yang muncul, lihat parameter output yang dibuat. Klik nama parameter output, seperti output, atau klik ikon
yang sesuai dengan parameter output. Sistem akan menyalin isi parameter secara otomatis.Dalam body API bernama Product Recommendation, tentukan parameter output yang diekstrak. Di editor teks tab Body Definition, tempel isi parameter.

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