Testnizer

HTTP / REST

Testnizer'da HTTP istekleri için eksiksiz referans — metodlar, auth, gövde modları, scriptler ve assertion'lar.

HTTP editörü, yaygın kullanımdaki her HTTP metodunu, her gövde türünü, her auth şemasını ve tarayıcı sandbox’ınızda değil, Node ana sürecinde çalışan bir script katmanını kapsar.

Metodlar

GET · POST · PUT · PATCH · DELETE · HEAD · OPTIONS · QUERY · CONNECT · TRACE ve metod seçicide yazdığınız herhangi bir özel metod dizesi.

QUERY, istek gövdesi taşıyan güvenli ve idempotent metoddur — parametreleri bir URL’ye sığmayan okumalar için “GET’e gövde mi, yoksa POST mu?” sorusunun standart yanıtı. Kendi rozetine sahiptir ve mock sunucularda da seçilebilir.

URL çubuğu

Değişkenler gerçek zamanlı olarak çözülür. {{baseUrl}}/users yazın ve Testnizer çözülmüş URL’yi çubuğun altında bir ipucu olarak gösterir. Bir değişken tanımsızsa alan turuncu renkle vurgulanır.

Sorgu parametreleri şu şekillerde girilebilir:

  • Doğrudan URL dizesinde (?limit=10&offset=0)
  • Params sekmesinde anahtar-değer tablosu olarak (bir satırı devre dışı bırakmak parametreyi silmeden kapatır)

URL’deki kodlanmış karakterler Params tablosunda otomatik olarak çözülür.

Auth sekmesi

ŞemaTestnizer’ın yaptığı
Auth yokAuthorization header göndermez
Üstten devralEn yakın auth yapılandırılmış üst öğeye ulaşana kadar koleksiyon ağacını yukarı doğru tarar
Basicuser:pass’ı Base64 ile kodlar, Authorization: Basic ... ayarlar
BearerAuthorization: Bearer <token> ayarlar
API KeyAnahtar/değeri header’a, sorgu dizesine veya cookie’ye ekler — yapılandırılabilir
DigestTam MD5/SHA-256 digest challenge-response, 401 yeniden deneme dahil
NTLMWindows domain / IIS uç noktaları için NTLM handshake
Hawkİstek başına HMAC imzası (Hapi tarzı)
AWS Signature v4Herhangi bir AWS servisi için istekleri imzalar — erişim anahtarı, gizli anahtar, bölge, servis adı
OAuth 1.0HMAC-SHA1 / RSA-SHA1 imzaları, nonce + zaman damgası
OAuth 2.0Yerleşik redirect handler ile tam yetkilendirme kodu akışı, ayrıca client-credentials ve password grant

Değişkenler her auth alanında çalışır. Token’ları bir ortamda saklayın ve {{accessToken}} olarak başvurun.

Headers sekmesi

Yaygın header adlarında otomatik tamamlamalı anahtar-değer tablosu. Satırlar tek tek devre dışı bırakılabilir. Testnizer, eklediğiniz header’ları Host, Content-Length veya User-Agent dahil hiçbirini kaldırmaz.

Body sekmesi

none

Gövde yok. Content-Type header otomatik olarak eklenmez.

raw

Araç çubuğunda content-type seçici bulunan Monaco editörü:

  • application/json — söz dizimi vurgulama, parantez eşleştirme, otomatik biçimlendirme
  • application/xml — XML ağaç renklendirme
  • text/plain — düz metin
  • application/javascript — JS söz dizimi
  • text/html — HTML söz dizimi
  • custom — herhangi bir content-type dizesi yazın, editör metin modunda kalır

form-data

multipart/form-data kodlaması. Her satır Text veya File olabilir. Dosya satırları yerel işletim sistemi dosya seçiciyi açar; dosya adı ve MIME türü parça header’larında gönderilir.

x-www-form-urlencoded

URL-encoded anahtar-değer tablosu. Değerler gönderilmeden önce yüzde olarak kodlanır.

binary

Tüm istek gövdesi diskten tek bir dosyadır. Testnizer, dosya uzantısına göre Content-Type ayarlar (gerekirse Headers sekmesinde geçersiz kılın).

Ön istek scripti

İstek gönderilmeden önce çalışır. Şunlar için kullanın:

  • Ortam değişkenlerini ayarlama veya güncelleme (pm.environment.set(...))
  • Dinamik değerler oluşturma (pm.variables.set('ts', Date.now()))
  • Diğer değişkenlerden imza veya HMAC oluşturma
  • İsteği koşullu olarak atlama (pm.execution.skipRequest())
// Örnek: her göndermeden önce HMAC hesapla
const crypto = require('crypto')
const secret = pm.environment.get('signingSecret')
const body    = pm.request.body.raw
const sig     = crypto.createHmac('sha256', secret).update(body).digest('hex')
pm.request.headers.add({ key: 'X-Signature', value: sig })

Ön istek scriptleri, require() erişimiyle ana süreçte çalışır. Tam pm API’si için Scriptler kılavuzuna bakın.

Tests sekmesi

Yanıt geldikten sonra çalışır. pm.test / pm.expect API’si Postman’inkini yansıtır, böylece mevcut Postman test takımları minimum değişiklikle yapıştırılabilir.

pm.test('status 200', () => {
  pm.response.to.have.status(200)
})

pm.test('yanıt JSON', () => {
  const body = pm.response.json()
  pm.expect(body).to.have.property('id')
  pm.expect(body.id).to.be.a('number')
})

// Bir sonraki istekte kullanmak için ortama değer yaz
pm.environment.set('userId', pm.response.json().id)

Geçti/başarısız sonuçlar yanıt panosundaki Tests sütununda görünür ve geçmişe kaydedilir.

Yanıt paneli

Sekmeİçerik
BodyMonaco editörü — JSON otomatik biçimlendirilir, XML güzel basılır, görüntüler satır içinde önizlenir
HeadersArama özellikli yanıt header tablosu
CookiesYanıt tarafından ayarlanan cookie’ler, domain/path/bayraklarıyla birlikte
ConsoleHam istek + ham yanıt (yönlendirmeleri veya beklenmeyen header’ları hata ayıklarken kullanışlı)
Actual RequestDeğişken ikamesi ve ön istek scripti çalıştırıldıktan sonra son çözülmüş URL, header’lar ve gövde

Sekmelerin üzerindeki durum satırı HTTP durum kodunu (sınıfa göre renklendirilmiş), yanıt süresini (ms) ve yanıt boyutunu gösterir.

Cookie’ler

Testnizer otomatik, proje kapsamlı bir cookie kavanozu (cookie jar) tutar. Bir yanıt Set-Cookie taşıdığında cookie saklanır ve aynı projede cookie’nin domain’i ile path’ine uyan sonraki isteklerde otomatik olarak — Cookie header’ı şeklinde — gönderilir. Bir login isteğinin ardından gelen kimlik doğrulamalı istek, tarayıcıda olduğu gibi sıfır yapılandırmayla çalışır.

Proje başına tek kavanoz, her yolda:

  • Send, Collection Runner, test suite’leri, zamanlanmış çalıştırmalar ve script kaynaklı pm.sendRequest(...) çağrıları aynı kavanozu paylaşır — Send ile yapılan bir login Run’da görünür ve pm.sendRequest ile yapılan bir login sonraki isteklere yarar.
  • Farklı projeler birbirinden izoledir: bir projede saklanan oturum cookie’si, aynı host için bile başka bir projeden asla gönderilmez.
  • Quick Test tasarım gereği ayrı, kapsamsız bir kavanoz kullanır.

Kavanoz bellekte yaşar — Testnizer’ı yeniden başlatmak onu temizler. Geçerli yanıtın ayarladığı cookie’ler, yanıt panelinin Cookies sekmesinde domain’i, path’i ve bayraklarıyla listelenir; uzun değerler (JWT boyutundaki token’lar) kendi sütunlarında sarılır ve kopyalamak için seçilebilir kalır.

Kod snippet oluşturma

Yapıştırmaya hazır snippet oluşturmak için istek araç çubuğundaki </> simgesine tıklayın:

  • cURL
  • JavaScript (fetch)
  • JavaScript (axios)
  • Python (requests)
  • Go (net/http)
  • Java (OkHttp)

Snippet’ler mevcut header’ları, auth’u ve gövdeyi içerir — değişkenler oluşturma anındaki mevcut değerlerine çözülür.

Yönlendirmeleri takip et

Varsayılan olarak etkin. Bir yönlendirme yanıtını incelemek için URL çubuğundaki istek ayarları panelinde (dişli simgesi) Yönlendirmeleri takip et seçeneğini kapatın.

TLS / mTLS

İstemci sertifikaları Ayarlar → Sertifikalar bölümünde proje başına yapılandırılır. Testnizer, belirttiğiniz hostname desenine göre doğru sertifikayı seçer. Sertifikalar kılavuzuna bakın.

İşletim sistemi güven deposunu değiştirmeden öz imzalı bir CA’yı kabul etmek için aynı panelde CA sertifikasını ekleyin.