Hoppscotch, Postman ve Insomnia'ya açık bir alternatif olarak tanımlanan, açık kaynaklı bir API ekosistemidir; web uygulaması, masaüstü uygulaması, CLI ve kendi kendine barındırılabilen bir arka uç. Hoppscotch CLI, bu ekosistemde oluşturduğunuz koleksiyonları alıp bir terminalden çalıştıran parçadır ve CI/CD için tam olarak ihtiyacınız olan şey budur.
Bu kılavuz, Hoppscotch CLI'nin ne olduğunu, nasıl kurulacağını ve hopp test komutunun gerçek bayraklarla ve çalışan bir CI örneğiyle nasıl çalıştığını açıklamaktadır. Diğer çalıştırıcılarla karşılaştırmayı düşünüyorsanız, en iyi Hoppscotch CLI alternatifleri yazısı seçenekleri karşılaştırır ve Apidog CLI vs Hoppscotch CLI doğrudan bir karşılaştırmadır.
Hoppscotch CLI nedir
Hoppscotch CLI, @hoppscotch/cli npm paketi olarak gelir. İşi dar ve kullanışlıdır: bir Hoppscotch koleksiyonunu alır, içindeki her isteği çalıştırır, bu isteklere bağlı test betiklerini yürütür ve pipeline'ınızın okuyabileceği bir geçme/kalma koduyla çıkar.

Bu onu, Postman için Newman veya Insomnia için inso ile aynı kategoride bir koleksiyon çalıştırıcısı yapar. API tasarlamaz, uç noktaları taklit etmez veya belge oluşturmaz. İstekleri çalıştırır ve iddiaları kontrol eder. Kendi kendine barındırabileceğiniz ücretsiz, açık kaynaklı bir araç için bu odak noktasıdır.
Hoppscotch açık kaynaklı olduğu için tüm yığını kendiniz çalıştırabilir ve CLI'yi kendi örneğinize yönlendirebilirsiniz. İstek verilerinin bir satıcı bulutunda oturmasını istemeyen ekipler bunu sever. Bunun karşılığı ise barındırmanın size ait olmasıdır.
Hoppscotch CLI'yi Kurma
Npm'den global olarak kurun:
npm i -g @hoppscotch/cli
Dikkat etmeniz gereken bir gereksinim: mevcut CLI, Node.js v22 veya daha yenisine ihtiyaç duyar. Hala Node 20 kullanıyorsanız, CLI v0.26.0'da kalabilirsiniz, ancak en son sürümler v22+ gerektirir. Bir derleme aracısına bağlamadan önce sürümünüzü kontrol edin:
node --version
hopp --version
CI görüntünüz eski bir Node ile geliyorsa, pipeline'da çalışma zamanını v22'ye sabitleyin, aksi takdirde testlerinizle ilgisiz görünen bir kurulum veya çalışma zamanı hatasıyla karşılaşırsınız.
hopp test komutu
Her şey hopp test aracılığıyla çalışır. Temel şekli onu bir koleksiyon dosyasına yönlendirir:
hopp test ./my-collection.json
Bir ortam dosyası ve istekler arasında bir gecikme geçirebilirsiniz:
hopp test ./my-collection.json -e ./staging.env.json -d 500
Burada -e (veya --env) ortamı sağlar ve -d (veya --delay) istekler arasında verilen milisaniye kadar bekler, bu da hız sınırlı bir API'ye istek gönderirken yardımcı olur.
Koleksiyonlarınız yerel bir dosyada değil de bir Hoppscotch örneğinde (bulut veya kendi kendine barındırılan) yaşıyorsa, bunları kimliğe göre referans alırsınız ve kişisel bir erişim belirteciyle kimlik doğrulaması yaparsınız:
hopp test <collection-id> --token <access_token> --server https://hoppscotch.your-company.com
--token kişisel erişim belirtecinizi taşır ve --server kendi kendine barındırılan URL'nizi işaret eder. Barındırılan Hoppscotch bulutundaysanız --server seçeneğini çıkarın.
Veri odaklı çalıştırmalar ve raporlama
İki bayrak, hopp test komutunu tek bir geçişten CI dostu bir şeye dönüştürür.
Veri odaklı test için, bir CSV besleyin ve kaç yineleme çalıştırılacağını ayarlayın:
hopp test ./my-collection.json --iteration-data ./users.csv --iteration-count 3
--iteration-data, sütunları her çalıştırmada değişken haline gelen bir CSV alır ve --iteration-count koleksiyonun kaç kez tekrar edeceğini kontrol eder. Bu, Newman'ın -d'si ile aynı fikirdir ve "bu oturum açma akışını 50 hesaba karşı çalıştır" gibi yaygın durumları kapsar.
Raporlama için, CLI, çoğu CI sisteminin test sonuçlarını yerel olarak göstermek için alabileceği JUnit XML yazar:
hopp test ./my-collection.json --reporter-junit ./report.xml
JUnit, CLI'nin ürettiği tek yapılandırılmış rapor formatıdır. HTML yapılarına veya barındırılan, bağlantı kurulabilir raporlara ihtiyacınız varsa, bu, taahhüt etmeden önce bilinmesi gereken bir eksikliktir. Apidog CLI gibi araçlar, karşılaştırma için CLI, HTML ve JSON raporları yayar.
Bir çalıştırma sırasında fiilen ne yürütülür
hopp test komutunu çalıştırdığınızda, CLI koleksiyonu sırayla dolaşır ve her istek için:
- ön-istek betiğini çalıştırır,
- isteği gönderir,
- test betiğini çalıştırır ve her iddiayı değerlendirir.
Test betikleri Hoppscotch'un betikleme API'sini kullanır: pw.test() bir test bloğu tanımlar ve pw.expect() içinde iddialar yapar. Bir isteğe bağlı küçük bir örnek şöyle görünür:
pw.test("Durum 200", () => {
pw.expect(pw.response.status).toBe(200);
});
Herhangi bir iddia başarısız olursa, komut sıfır olmayan bir kodla çıkar. Her şey geçerse, 0 ile çıkar. Bu çıkış kodu davranışı, CI ile tüm sözleşmedir: sıfır olmayan bir çıkış derlemeyi başarısız kılar, ki tam olarak istediğiniz budur.
Bir GitHub Actions örneği
hopp test komutunu CI'ya bağlamak kısadır. Bu iş akışı, bir Node 22 çalıştırıcısına CLI'yi yükler ve her push işleminde bir koleksiyonu çalıştırır:
name: API tests
on: [push]
jobs:
hopp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm i -g @hoppscotch/cli
- run: hopp test ./collection.json -e ./ci.env.json --reporter-junit ./report.xml
setup-node adımının v22'yi sabitlemesi, insanların unuttuğu kısımdır. Bu olmadan, varsayılan çalıştırıcı Node, mevcut CLI için çok eski olabilir.
Akılda tutulması gereken sınırlamalar
Hoppscotch CLI, yaptığı işte iyidir ve kapsamı konusunda dürüsttür:
- Bu bir koleksiyon çalıştırıcısıdır, bir platform değildir. Tasarım, alay veya belgeleme yok. Bunları başka yerden getiriyorsunuz.
- Koleksiyonları kendiniz dışa aktarırsınız veya barındırırsınız. CLI, bir koleksiyon dosyasını çalıştırır veya işaret ettiğiniz bir örnekten çeker.
- JUnit, tek yapılandırılmış rapordur. Yerleşik HTML veya barındırılan rapor yok.
- Node v22+. Güncel sürümlerde kesin bir gereksinim.
Bunların hiçbiri bir eleştiri değildir; küçük, ücretsiz, açık kaynaklı bir aracın maliyetidir. İhtiyaçlarınız "bir koleksiyonu CI'da çalıştırmak"tan tasarım, alay, daha zengin raporlarla veri odaklı çalıştırmalar ve API kaynaklarını kod olarak yönetmeye doğru büyürse, entegre bir platform burada devreye girer. Apidog tüm API yaşam döngüsünü kapsar ve Apidog CLI kapsamlı kılavuzu terminal tarafını gösterir. Doğrudan karşılaştırmak için Apidog'u indirebilir ve bir Hoppscotch koleksiyonunu içe aktarabilir veya geçiş rehberini okuyabilirsiniz.
Sıkça Sorulan Sorular
Hoppscotch CLI ücretsiz mi? Evet. Hoppscotch projesi altında açık kaynaklıdır ve tüm ekosistemi kendiniz barındırabilirsiniz. Resmi CLI belgelerine ve GitHub deposuna bakın.
Hopp test ile Newman arasındaki fark nedir? Her ikisi de veri odaklı yinelemelere sahip koleksiyon çalıştırıcılarıdır. Newman, Postman koleksiyonlarını çalıştırır; hopp test, Hoppscotch koleksiyonlarını çalıştırır. CSV yineleme verileri ve çıkış koduna dayalı geçme/kalma dahil olmak üzere kavramlar yakından eşleşir.
Hoppscotch CLI, kendi kendine barındırılan bir sunucudan koleksiyonları çalıştırabilir mi? Evet. Kendi örneğinizden bir koleksiyonu çekip çalıştırmak için hopp test <collection-id> --token <access_token> --server <your-url> kullanın.
HTML raporları üretir mi? Doğrudan üretmez. --reporter-junit aracılığıyla JUnit XML yazar. CLI, HTML ve JSON raporlarını bir arada almak için Apidog CLI test raporları ile karşılaştırın.
Hoppscotch CLI, özellikle Hoppscotch kullanıyorsanız veya kendi kendine barındırıyorsanız, API koleksiyonlarını CI'da çalıştırmanın temiz ve ücretsiz bir yoludur. Kapsamını bilin, Node v22'yi sabitleyin ve JUnit çıktısına güvenin; tek işini iyi yapar.
