JMeter 5.0: Gövde verileriyle birlikte HTTP İsteği nasıl gönderilir?


0

Bu bir yinelenen olabilir https://stackoverflow.com/questions/40514004/jmeter-how-to-send-get-request-with-body-data

Ancak iddiadaki soruya katılanlara JMeter'in 3.1 sürümünde çözüldüğü halde, JMeter 5.0'da beklendiği gibi çalışmıyor.

Ayrıca Content-Type: application / x-www-form-urlencoded komutunu HTTP İstek Örnekleyicisine bağlı bir HTTP İstek Yöneticisine ayarlamaya çalıştım, ancak gövde yalnızca POST isteklerine iletildi. Uygulamam güzel postacılardan alıyor ama JMeter'den değil.

EDIT: Bu, Postacı tarafından üretilen Kod pasajıdır: GET /api/patients/5c1e35351f68df799c0ad864/cases HTTP/1.1 Host: localhost:3080 Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InJ1YmVubWFycXVlczkxQGdtYWlsLmNvbSIsInVzZXJJZCI6IjVjMjNiZTJkNjU0YjIwMzhiNDQwY2ViZiIsImlhdCI6MTU0NjAxMjQ2NSwiZXhwIjoxNTQ2MDE2MDY1fQ.LqCV9eHByxQ0ubDIcJOwR0WGGXfMw49X0VLLurjbseM cache-control: no-cache Postman-Token: 2d8f4f4c-4ec6-428e-bf1a-cafd27fa98ed { "caseName": "TestName" }------WebKitFormBoundary7MA4YWxkTrZu0gW--

Yanıtlar:


1

Tam olarak ne işe yaramıyor? Örneğin, aşağıdaki Elastik arama yükü göz önüne alındığında:

{
  "index": {
    "_index": "shakespeare",
    "_type": "act",
    "_id": 0
  }
}
{
  "line_id": 1,
  "play_name": "Henry IV",
  "speech_number": "",
  "line_number": "",
  "speaker": "",
  "text_entry": "ACT I"
}

Aşağıdaki GET isteğini yerine getirdiğimde:

{
  "query": {
    "match": {
      "play_name": "Henry IV"
    }
  }
}

enter image description here

İstek gövdesini tam olarak tanımladığım şekilde görebilirim. Sonuçlar Ağacı'nı Görüntüle dinleyici

enter image description here

Yanıt, tüm alakalı arama sonuçlarını içerir:

enter image description here


Bu yüzden, Postman ve JMeter tarafından gönderilen istekleri karşılaştırmayı ve benzeri bir arama aracını kullanmanızı öneririm. kemancı veya Wireshark . Büyük olasılıkla JMeter konfigürasyonunda, muhtemelen yanlış olarak bağlanmış bir hata var. İçerik türü


Ayrıca Postman’dan gönderilen isteğin JMeter’i kullanarak da kaydedilmesinin mümkün olduğunu unutmayın. HTTP (S) Testi Script Kaydedici

  1. JMeter'i kayıt için hazırlayın. Bunu yapmanın en kolay yolu kullanıyor JMeter Şablonları özellik

    • JMeter'in ana menüsünden seçim yapın File -> Templates -> Recording ve "Oluştur" u tıklayın
    • HTTP (S) Test Komut Dosyası Kaydedicisini açın ve "Başlat" düğmesine tıklayın
  2. Postacı kayıt için hazırla

    • Postacı ana menüsünden seçim File -> Settings -> Proxy
    • ikisini de işaretleyin HTTP ve HTTPS protokolleri seçin ve proxy sunucusunu 127.0.0.1:8888

      enter image description here

  3. Postanede isteğinizi yerine getirin

  4. JMeter onu altında yakalamalıdır Kayıt denetleyicisi . Her şey yolunda giderse, herhangi bir sorun olmadan tekrar oynatmanız gerekir.

Sorun, isteğin gövdesinin sunucu tarafında boş olmasıdır. Ama postacı kullanırken değil ...
rmarques

Sorun JMeter'i farklı şekillerde yapılandırmanız ve aynı davranışı beklemenizdir. Aynı istekler aynı cevabı üretecektir.
Dmitri T

Biliyorum, farklı olarak ne yaptığımı gösteremiyorum. Kaydı talimatlara göre hazırladım, sanırım ve bu arada Kayıt Kontrol Cihazına hiçbir şey kaydetmedi.
rmarques

Click code Postacı butonuna basın ve soruyu istek ile güncelleyin: i.stack.imgur.com/851pU.png
Dmitri T

Tamam, soruyu güncelledim
rmarques

0

Sorun JMeter'in konfigürasyonundaydı. HTTP isteğinin Parametreler sekmesini kullanıyordum ve Ad sekmesine ve Değer sekmesindeki değerlere özellikler ekliyordum.

Aydınlatılmış bir kullanıcı bunu gönderdi: https://stackoverflow.com/a/51609079/3267330 .

İlk yaklaşımımın neden POST, PATCH ve PUT istekleri üzerinde çalıştığını ve özel olarak GET istekleri üzerinde çalıştığını bilmiyorum, ancak şimdi yalnızca tüm isteklerimin gövdesini Gövde Verileri sekmesine koyup bir Başlık oluşturmaya devam ediyorum. Content-Type: application/json çünkü bu işe yarıyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.