TestFly Bölüm 6: Dahili ApiClient, BaseApiTest ve Hızlı Hibrit UI + API Testleri
TestFly'ın dahili ApiClient, ApiResponse doğrulamaları ve JSON Schema motoru ile saf API ve hibrit UI + API test akışlarını yönetin.
28 Ağustos 20261 dk okuma
TestFly Dahili API Test Mimarisi
TestFly, harici kütüphanelere gerek duymadan çalışan yüksek performanslı ve akıcı bir HTTP istemcisi (ApiClient) barındırır.
1. BaseApiTest ile Saf API Testleri
Tarayıcı açmadan doğrudan API testleri koşmak için BaseApiTest sınıfını miras alın:
java
package io.testfly.examples.api;
import io.testfly.test.BaseApiTest;
import io.testfly.client.ApiClient;
import io.testfly.client.ApiResponse;
import org.testng.annotations.Test;
public class UserApiTest extends BaseApiTest {
@Test
public void kullaniciGetirVeSemayiDogrula() {
ApiResponse res = ApiClient.get("/api/users/1")
.header("Accept", "application/json")
.send()
.assertStatus(200)
.assertJson("$.name", "Hakan Gül")
.assertSchema("schemas/user.json");
}
}2. apiClient() ile Hibrit UI + API Testleri
BaseTest içinde apiClient() kullanarak önce API üzerinden veriyi hazırlayın, ardından tarayıcıda doğrulayın:
java
package io.testfly.examples.tests;
import io.testfly.test.BaseTest;
import io.testfly.client.ApiResponse;
import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.util.Map;
public class OrderCheckoutTest extends BaseTest {
@Test
public void hizliSiparisDogrulama() {
// 1. API ile 100 ms'de sipariş oluştur
ApiResponse order = apiClient().post("/api/orders")
.body(Map.of("itemId", "SKU-100", "quantity", 1))
.send()
.assertStatus(201);
String orderId = order.json("$.orderId");
// 2. Tarayıcıda doğrudan sipariş sayfasına git
open("/orders/" + orderId);
Assert.assertEquals(getText(By.id("order-status")), "Onaylandı");
}
}Tüm API istekleri TestFly HTML raporu adım çizelgesinde otomatik loglanır!
#TestFly#ApiClient#ApiResponse#BaseApiTest#API Testing#JSON Schema#Java#SDET