Bu makale, Apidog CLI ile Claude Skills'i birleştirerek doğal dil odaklı API otomasyon testi için verimli bir iş akışı oluşturmayı tanıtmaktadır.
Bu iş akışında, terminalinizde Claude Code'a tek bir cümle söylemeniz yeterlidir, örneğin:
"Geliştirme ortamında kullanıcı sipariş akış testini çalıştır."
Claude Code niyetinizi otomatik olarak anlayacak, ilgili test senaryosunu veya test paketini bulacak, testleri yürütecek ve ardından sonuçları sizin için özetleyip yorumlayacaktır.

Araçlara Genel Bakış
Bu iş akışı üç araçtan oluşmaktadır:
1. Apidog CLI
Apidog tarafından sağlanan komut satırı arayüzü. Terminalden API otomasyon testlerini yürütmek ve test raporları oluşturmak için kullanılır.
2. Claude Code
Anthropic tarafından piyasaya sürülen bir komut satırı yapay zeka asistanı. Dosyalar üzerinde işlem yapabilir, komutlar çalıştırabilir, betikleri yürütebilir ve yerel geliştirme ortamınızla etkileşime girebilir.
3. Claude Skills
Aynı zamanda Agent Skills olarak da bilinir, Claude Code'un bir uzantı mekanizmasıdır. Bir Skill, Claude'un belirli bir görevi nasıl tamamlaması gerektiğini tanımlar, aslında yürütülebilir bir dizi operasyonel talimat görevi görür.
Bu iş akışında, Claude Code doğal dil talimatlarını anlamaktan sorumludur. Bir kullanıcının isteği, önceden tanımlanmış bir Claude Skill ile eşleştiğinde, Claude otomatik olarak ilgili Apidog CLI komutlarını yürütür ve sonuçları analiz eder.
Bu İş Akışı Neler Yapabilir?
Aşağıda, bu iş akışının pratikte nasıl kullanılabileceğini gösteren bazı gerçek dünya senaryoları bulunmaktadır.
Tek Bir Test Çalıştırın
Belirli bir test senaryosunu çalıştırmak istiyorsanız, adını açıkça belirtebilirsiniz. Örneğin:
"Geliştirme ortamında oturum açma testlerini çalıştır."
Test tamamlandıktan sonra, Claude sonuçları analiz eder ve bir özet sunar.

Mevcut Tüm Testleri Listele
Hangi test senaryolarının veya test paketlerinin mevcut olduğunu görmek için şunları söyleyebilirsiniz:
"Mevcut testleri göster."
Claude ilgili betiği yürütecek ve tüm testleri listeleyecektir.

Bir İş Modülü İçin Tüm Testleri Çalıştır
Belirli bir iş alanı için (örneğin ödeme ile ilgili testler) tüm testleri yürütmek isterseniz şunları söyleyebilirsiniz:
"Test ortamında tüm ödeme testlerini çalıştır."
Claude, tüm ilgili test dosyalarını otomatik olarak bulacak ve bunları sırayla veya paralel olarak yürütecektir.

Ortamlar Arası Test Sonuçlarını Karşılaştır
Ortamlar arası sonuçları karşılaştırmak için şunları söyleyebilirsiniz:
"Geliştirme ve test ortamlarında oturum açma testlerini çalıştır."
Claude, testleri her iki ortamda da yürütecek ve sonuçlardaki farklılıkları analiz edecektir.

Kod Değişikliklerine Göre Testleri Çalıştır
Kod değişikliklerinden sonra, Claude'dan yalnızca etkilenen testleri çalıştırmasını isteyebilirsiniz:
"Son kod değişikliklerine dayanarak, etkilenen API testlerini geliştirme ortamında çalıştır."
Claude, Git değişikliklerini analiz edecek, etkilenen test senaryolarını veya paketlerini belirleyecek ve yalnızca bu testleri yürüterek zaman ve kaynak tasarrufu sağlayacaktır.
Daha fazla senaryo keşfedilmeyi bekliyor.
Ardından, Apidog CLI, Claude Code ve Claude Skills'i nasıl kuracağımızı ve yapılandıracağımızı ve bunları tam bir iş akışında nasıl birleştireceğimizi anlatacağız.
Hazırlık
Ortam Gereksinimleri
Makinenizde Node.js'in kurulu olduğundan emin olun. Terminalinizde doğrulayın:
node -v
npm -vApidog CLI Kurulumu (npm aracılığıyla kurulum):
npm install -g apidog-cli
Kurulumu doğrulayın:
apidog --versionBir sürüm numarası görüntüleniyorsa, kurulum başarılı olmuştur.
Apidog → Testler → CI/CD bölümünden bir test senaryosu veya test paketi için bir CLI komutunu kopyalayabilir, Erişim Token'ınızı ekleyebilir ve terminalde çalıştırabilirsiniz.

Test çıktısı görünüyorsa, Apidog CLI doğru çalışıyordur.
Claude Kurulumu
Code (npm aracılığıyla kurulum):
npm install -g @anthropic-ai/claude-codeDoğrulayın:
claude --versionİlk çalıştırmada giriş yapmanız gerekecek:
claude
Yetkilendirme adımlarını takip edin. Bir Claude hesabı gereklidir. Giriş yaptıktan sonra, etkileşimli arayüze gireceksiniz ve temel sorular sorabilirsiniz.
Bu noktada, Claude henüz Apidog testlerini nasıl çalıştıracağını bilmiyor. Ardından, bunu Claude Skills kullanarak öğreteceğiz.
Claude Skills Oluşturma
Skills'in Nasıl Çalıştığını Anlama
Claude Code kullanırken, bir Skill'i manuel olarak seçmezsiniz. Ne yapmak istediğinizi doğal dilde açıklamanız yeterlidir.
İsteğiniz bir Skill'in açıklamasıyla eşleşiyorsa, Claude otomatik olarak o Skill'i yükler ve tanımlanan iş akışını yürütür.
Adım 1: Skill Klasörünü Oluşturun
Tüm Skill yapılandırmaları .claude/skills/ klasörünün altında yer alır. Her Skill'in kendi alt klasörü vardır.
Proje kökünde Apidog otomasyon testi için minimum bir Skill klasörü oluşturun:
mkdir -p .claude/skills/apidog-tests
Ortaya çıkan yapı:
.claude/skills/apidog-tests/Buraya yavaş yavaş giriş dosyaları ve betikler ekleyeceğiz.
Adım 2: SKILL.md Oluşturun
Her Skill, Skill tetiklendiğinde Claude'un görevi nasıl yürütmesi gerektiğini tanımlayan bir SKILL.md dosyası gerektirir.
Dosya, --- içine sarılmış YAML meta verileriyle başlar. name ve description alanları zorunludur.
description özellikle önemlidir – Claude'un bu Skill'i ne zaman etkinleştirmesi gerektiğini belirler.
YAML bloğunun altında, Markdown içeriği yürütme mantığını, karar kurallarını, çağrılacak betikleri ve kısıtlamaları tanımlar.
Apidog Otomasyon Testi için Örnek SKILL.md
---
name: apidog-tests
description: Apidog CLI aracılığıyla Apidog otomatik API testlerini yürütür ve yorumlar. Kullanıcı testleri, test senaryolarını veya test paketlerini çalıştırmayı açıkça istediğinde, özellikle dev, test veya prod gibi belirli bir ortamda testleri yürütme talepleri, kod değişikliklerinden sonra API davranışını doğrulamak, regresyon veya sürüm öncesi testler yapmak veya git commit, push veya merge öncesi API kontrollerini çalıştırmak için bu Skill'i tetikleyin. Kullanıcı açıkça "Apidog" veya "API"dan bahsetmese bile, test yürütmesi ima edildiğinde bu isteklerin Apidog otomatik testlerine atıfta bulunduğunu varsayın. Skill, uygun test senaryosunu veya test paketini seçmeli, testleri yürütmeli ve test tanımlarını veya komutlarını değiştirmeden sonuçları açıklamalıdır.
---
# Apidog Testleri
Apidog otomatik testlerini yürütür ve sonuçları yorumlar.
## İş Akışı
1. **Test Seçimi**:
- Kullanıcı açıkça şunları sağlıyorsa:
- Test dosyası yolu
- Test dosyası adı
- Veya açık, benzersiz bir şekilde eşleşen test adı
- Otomatik seçim yapmadan doğrudan o testi kullanın.
- Bilgi net değilse, tüm test dosyası yollarını ve açıklamalarını hızlıca almak için `node ./.claude/skills/apidog-tests/scripts/list-tests.js` betiğini çalıştırmaya öncelik verin.
- Büyük proje dizinlerinde körü körüne küresel aramalardan kaçının; bunun yerine, bu skill'e özel test dosyası dizini `./.claude/skills/apidog-tests/tests/` konumunu bulun.
2. **Çoklu Test Yürütme Kuralları**
- Varsayılan olarak, yalnızca bir test çalıştırın, ancak toplu yürütme seçeneğini sunun.
- Kullanıcı açıkça belirtirse:
- "Şu birkaçını çalıştır"
- "Hepsini çalıştır"
- **Toplu Yürütme Modu**'na girin.
Toplu Yürütme Modunda:
- Yürütülecek testleri açıkça listeleyin.
- **Yürütme yöntemini sorun**: Kullanıcının "Sıralı Yürütme" (daha iyi okunabilirlik) veya "Paralel Yürütme" (daha hızlı) arasında seçim yapmasına izin verin.
- **Sıralı Yürütme**: Testleri birer birer çalıştırın ve anında analiz edin, hata ayıklama için uygundur.
- **Paralel Yürütme**: Birden fazla testi aynı anda başlatın (`&` veya eşzamanlı betikler kullanarak), hızlı regresyon için uygundur, ancak günlükler karışabilir.
- Yürütme yöntemi ve test listesi için kullanıcı onayı isteyin (Evet / Hayır).
- Seçilen yönteme göre testleri yürütün.
- Son olarak, her testin sonuçlarını özetleyin veya ayrı ayrı açıklayın.
3. **Ortamı Onayla**:
- Desteklenen ortamlar şunları içerir:
- `dev`
- `test`
- `prod`
- Kullanıcı bir ortam belirtmemişse:
- Yukarıdaki ortam adlarını listeleyin.
- Kullanıcının hangisini kullanacağını onaylamasını sağlayın.
4. **Testi Yürüt**:
- Aşağıdaki bilgiler netleştiğinde testi yürütün:
- Test dosyası yolu
- Ortam adı (dev / test / prod)
```bash
node ./.claude/skills/apidog-tests/scripts/run-cli.js <test_file_path> <env_name>
```
5. **Sonuçları Yorumla**: Apidog CLI çıktısını analiz edin ve başarısızlık nedenlerini açıklayın.
## Hata Yönetimi
- Test dosyalarını değiştirmeyin.
- Yürütme komutlarını değiştirmeyin.
- Başarısızlık nedenlerini test adlarına, API semantiklerine ve CLI çıktısına göre açıklayın.
Adım 3: Destekleyici Dosyalar
Önceki adımlarda, bu Skill için tetikleme koşullarını ve genel yürütme iş akışını tanımlayan SKILL.md dosyasını oluşturduk.
Bu temele dayanarak, kalan tüm dosyalar yalnızca SKILL.md için destekleyici bileşenler olarak hizmet eder. Ek dosyalar yalnızca iş akışının çalışma zamanı ortamları, yürütme komutları veya test tanımları gibi ek bilgilere ihtiyaç duyması durumunda isteğe bağlı olarak tanıtılır.
Nihai klasör yapısı:
.claude/skills/apidog-tests/
├── SKILL.md
├── env/
│ ├── dev.env
│ ├── test.env
│ └── prod.env
├── scripts/
│ ├── list-tests.js
│ └── run-cli.js
└── tests/
├── payment-flow.md
└── refund-flow.md
Aşağıda, her bir destekleyici dosyayı amacını açıklayarak ve örnekler sunarak inceleyeceğiz.
Ortam Yapılandırması (env)
env/ klasörü, Apidog erişim token'ı ve ortam ID'si gibi ortam değişkeni yapılandırmalarını depolamak için kullanılır.
Ortam ID'sini bir değişkene çıkararak, test yürütme ortamını (örneğin geliştirme, test, üretim) herhangi bir komut veya betik değiştirmeden hızlıca değiştirebiliriz.
Örneğin, env/ klasörünün altına bir dev.env dosyası oluşturun:
APIDOG_ACCESS_TOKEN=APS-your-access-token
APIDOG_ENV_ID=your-environment-idBirden fazla ortam gerekiyorsa, aynı şekilde ek dosyalar oluşturabilirsiniz:
test.envprod.env- …
Her dosyanın yalnızca ilgili ortam için değişkenleri barındırması gerekir.

Ortam ID'si, Apidog CLI komutundaki -e parametresine geçirilen sayısal değere karşılık gelir. Her çalışma zamanı ortamı (geliştirme, test veya üretim gibi) Apidog'da benzersiz bir ortam ID'sine sahiptir.

env/ klasörünün altındaki .env dosyaları erişim token'larını içerir, bunlar hassas bilgilerdir ve Git'e kesinlikle commit edilmemelidir.Yürütme Betikleri (scripts)
scripts/ klasörü, test tanımlarını gerçekte çalıştırılabilir Apidog CLI komutlarına dönüştürmekten, ortam değişkenlerini enjekte etmekten ve testleri yürütmekten sorumlu yürütülebilir betikler içerir.
Bu Skill'de Node.js iki ana nedenden dolayı seçilmiştir:
- Apidog CLI'ın kendisi Node.js'e bağlıdırAynı çalışma zamanını yeniden kullanmak, Python gibi ek çalışma zamanları kurma ihtiyacını ortadan kaldırır.
- Bağlam genel giderini ve token tüketimini azaltırKomut ayrıştırma, değişken enjeksiyonu ve yürütme mantığını betiklerin içinde ele alarak, Claude'un konuşma sırasında tam CLI komutlarını tekrar tekrar oluşturmasına gerek kalmaz, bu da bağlam kullanımını önemli ölçüde azaltır.
Betik yazmaya aşina değilseniz, hiç betik kullanmamayı tercih edebilirsiniz. Bunun yerine, Claude'un CLI komutlarını doğrudan SKILL.md içinde birleştirmesine ve yürütmesine izin verebilirsiniz.
Ancak, bu yaklaşım daha yüksek bağlam ve token maliyetleri getirir.scripts/ klasörünün altına run-cli.js oluşturun. Temel sorumlulukları şunlardır:
- Belirtilen bir Markdown test dosyasından Apidog CLI komutunu çıkarın
- Seçilen ortama (örneğin
dev/test) göre ilgili.envdosyasını yükleyin - Ortam değişkenlerini enjekte edin ve testi yürütün
Kullanıma hazır bir örnek betik aşağıda gösterilmiştir:
import fs from "fs";
import path from "path";
import { execSync } from "child_process";
import dotenv from "dotenv";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// args
const mdPath = process.argv[2];
const envName = process.argv[3] || "local";
if (!mdPath) {
console.error("❌ Test .md dosyası yolu eksik");
process.exit(1);
}
// env yolu: her zaman skill klasörüne göreceli
const envPath = path.join(__dirname, "..", "env", `${envName}.env`);
if (!fs.existsSync(envPath)) {
console.error(`❌ Ortam yapılandırması bulunamadı: ${envPath}`);
process.exit(1);
}
dotenv.config({ path: envPath });
// Markdown dosyasını oku
const content = fs.readFileSync(mdPath, "utf-8");
const match = content.match(/```bash([\s\S]*?)```/);
if (!match) {
console.error("❌ Bash komut bloğu bulunamadı");
process.exit(1);
}
let command = match[1].trim();
// Değişken değişimi
command = command
.replaceAll("$APIDOG_ACCESS_TOKEN", process.env.APIDOG_ACCESS_TOKEN)
.replaceAll("$APIDOG_ENV_ID", process.env.APIDOG_ENV_ID);
console.log(`▶ Çalışıyor (${envName})`);
console.log(command);
// Yürüt
try {
execSync(command, { stdio: "inherit" });
} catch (e) {
// Testler başarısız olduğunda Apidog CLI çıkış kodu 1 döndürür
process.exit(1);
}
Ayrıca scripts/ klasörünün altına list-tests.js oluşturun. Bu dosya şunlar için kullanılır:
tests/klasörünü özyinelemeli olarak tarayın- Tüm Markdown test dosyalarını bulun
- İlk satırdan açıklamayı çıkarın
- Mevcut tüm Apidog otomatik testlerinin bir listesini çıktı olarak verin
Kullanıma hazır bir örnek betik aşağıda gösterilmiştir:
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const testsDir = path.join(__dirname, "..", "tests");
function scan(dir, relativePath = "") {
const items = fs.readdirSync(dir, { withFileTypes: true });
for (const item of items) {
const fullPath = path.join(dir, item.name);
const relPath = path.join(relativePath, item.name);
if (item.isfolder()) {
scan(fullPath, relPath);
} else if (item.name.endsWith(".md")) {
try {
const content = fs.readFileSync(fullPath, "utf-8");
const firstLine = content.split("\n")[0].trim();
const description = firstLine.startsWith(">")
? firstLine.replace(/^>\s*/, "").trim()
: "Açıklama yok";
const displayPath = path.join(
"./.claude/skills/apidog-tests/tests",
relPath
);
console.log(`[${displayPath}] - ${description}`);
} catch (err) {
console.log(`[${relPath}] - (Dosya okunamıyor)`);
}
}
}
}
console.log("🔍 Mevcut Apidog otomatik testleri:");
if (fs.existsSync(testsDir)) {
scan(testsDir);
} else {
console.log("❌ tests klasörü bulunamadı");
}Test Tanımları (tests)
tests/ klasörü, Markdown olarak yazılmış test tanımlarını depolar.
Tasarım İlkesi: Her Markdown dosyası, bir Apidog test senaryosuna veya test paketine karşılık gelir. Mevcut klasör yapılarını, test senaryosu adlarını, test paketi adlarını ve açıklamalarını Apidog otomasyon testinden doğrudan yeniden kullanabilirsiniz.
Her Markdown dosyasının yalnızca iki bölüm içermesi gerekir:
- Kısa bir test açıklaması
- Doğrudan yürütülebilecek tek bir Apidog CLI komutu
Apidog CLI komutunda:
- Erişim token'ı
$APIDOG_ACCESS_TOKENile değiştirilir -e'ye geçirilen ortam ID'si$APIDOG_ENV_IDile değiştirilir
Her iki değişken de merkezi olarak .env dosyalarında yapılandırılmıştır. Bu yaklaşım, token sızıntısını önler ve esnek ortam geçişine olanak tanır.
Örnek: login-auth-flow.md
> Oturum açma, token yenileme ve oturum kapatma gibi temel API'leri doğrular.
```bash
apidog run --access-token $APIDOG_ACCESS_TOKEN -t 5564xxx -e $APIDOG_ENV_ID -n 1 -r html,cli
```
Bu noktada, Skill tamamen inşa edilmiştir. Klasör yapısını gözden geçirebilir ve herhangi bir farklılığı belirlemek için kendi uygulamanızla karşılaştırabilirsiniz.

Claude Code'da İş Akışını Kullanma
Proje klasöründe claude'u çalıştırın. Claude otomatik olarak .claude/skills/ klasörünü tarar ve apidog-tests Skill'ini yükler.
Yüklenen Skills'leri /skills kullanarak listeleyebilirsiniz.

Ardından doğal dilde bir komut deneyin:
"Geliştirme ortamında oturum açma testlerini çalıştır."

Claude testi bulacak, Apidog CLI aracılığıyla yürütecek, çıktıyı analiz edecek ve sonuçları özetleyecektir.
Özet
Bu makale, Claude Code, Apidog CLI ve Claude Skills kullanarak otomatik bir API test iş akışının nasıl oluşturulacağını göstermiştir.
Temel fikir, Claude'u insanlar ve araçlar arasında köprü yapmaktır:
- Niyetinizi doğal dilde açıklarsınız
- Claude anlar ve betikleri çağırır
- Betikler Apidog CLI'yı yürütür
- Claude sonuçları analiz eder ve insan tarafından okunabilir bir şekilde sunar
Bu iş akışını gerçekten etkili kılmak için, onu projenize göre uyarlamanız gerekir – test organizasyonu, ortam stratejisi ve sonuç analiz mantığı hepsi özelleştirilebilir.
Ekibiniz sık sık API testleri çalıştırıyor ve daha otomatik ve akıllı bir deneyim istiyorsa, bu yaklaşım denemeye değerdir. Başlangıçta biraz kurulum gerektirir, ancak bir kez kurulduğunda, verimliliği önemli ölçüde artırabilir – ve siz iyileştirdikçe daha da iyi hale gelir.
