6

Uygulamamda, bir dış uç noktayı çağırmam gerekiyor ve çok yavaşsa bir geri dönüş etkinleştirildi.Devre kesicimin geri dönüşümü yapılıp yapılmadığını kontrol etmek için bir entegrasyon testi nasıl yapılır?

@FeignClient(name = "${config.name}", url = "${config.url:}", fallback = ExampleFallback.class) 
public interface Example { 
@RequestMapping(method = RequestMethod.GET, value = "/endpoint", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) 
    MyReturnObject find(@RequestParam("myParam") String myParam); 
} 

Ve yedek uygulanması: Ayrıca

@Component 
public Class ExampleFallback implements Example { 

    private final FallbackService fallback; 

    @Autowired 
    public ExampleFallback(final FallbackService fallback) { 
     this.fallback = fallback; 
    } 

    @Override 
    public MyReturnObject find(final String myParam) { 
     return fallback.find(myParam); 
    } 

, devre kesici için yapılandırılmış bir zaman aşımı: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000

aşağıdaki kod benim app nasıl göründüğünü bir örnektir

Devre kesilmemin çalışıp çalışmadığını kontrol etmek için bir entegrasyon testini nasıl uygulayabilirim, yani eğer son nokta (bu durumda alaylı) ise Yavaş veya 4xx veya 5xx gibi bir hata döndürürse? Ben Bahar Boot kullanıyorum

Bahar Cloud (Feign + hystrix) i feign veya hystrix bağışta bulunan kimse bilmek

cevap

1

Not 1.5.3. Benim düşünceme göre, Feign + Hystrix'in farklı implementa detaylarını simüle eden otomatikleştirilmiş bir integratestest uygulamak benim için sorun teşkil ediyor - bu uygulama detayı her an değişebilir. Birçok farklı türde hata vardır: birincil uç noktaya ulaşılamıyor, yasal olmayan veriler (örn. Özel bir biçimde xml verilerini belirlerken html-errormessage alma), disk dolu, .....

bir uç nokta, Feign + Hystrix'in implementationdetail'inin bir varsayımını nasıl gerçekleştirirsiniz? Son nokta, bir errorituation'da nasıl davranır (null, null, belirli bir hata kodunu döndürür, Xyz tipi bir istisna atar.)

Sadece bir tane otomatik oluştururdum hiçbir zaman ulaşılamayan bir URL'ye ve işlenmiş verinin sahte yazılımdan geldiğini doğruladığınız alay edilmemiş bir geri dönüş noktasına sahip gerçek bir birincil noktaya sahip entegrasyon testi. Bu otomatik test, "ağ bağlantısının çok yavaş" işlemesinin, uygulamanızın bakış açısından "url-notfound" ile aynı olduğunu varsayar. Diğer tüm testler için Feign + Hystrix'in etrafında Feign + Hystrix ile dalga geçtiğinizde ince bir sarmalayıcı arayüz oluşturabilirim. Bu şekilde otomatik olarak test edebilirsiniz, örneğin birincil arabirimden 200bayt alır ve ardından bir artış elde edersiniz.

Dış bağımlılıkları gizleme hakkında ayrıntılar için bkz. onion-architecture