2016-04-12 39 views
1

Otomatikleştirilmiş bir dağıtımı takiben önemli bir parçanın kırılmadığından emin olmak için, barındırılan web hizmetlerinde basit işlevsel testler (uygulama başına birkaç saniyede tamamlanan duman testleri) uygulamanız gerekir. Sağlam ekstraksiyon veya onaylama mantığına ihtiyacım yok ve yük testi yeteneğine ihtiyacım yok. JMeter işi yapacakmış gibi görünüyor ama aşırıya kaçabilir. Daha uygun başka açık kaynak projeleri veya yazılım ürünleri var mı?CI ve AWS ELB HealthCheck ile basit fonksiyonel test için JMeter alternatifi

Bu sınamanın kullanılacağı iki tür dağıtım vardır. İlk olarak, geliştirme aşamasında ve CI boru hattında, Şef otomasyonumu test etmek için Vagrant kullanıyorum. Şef Müşteri çalıştıktan sonra, Vagrant'ın duman testinden kurtulmasını istiyorum. Test başarısız olursa, CI Chef kodunda kontrol edilmeyi başaramaz. Şu anda bunu, Vagrant'ın web servislerini aramayı test etmek için wget'leri gerçekleştiren basit bir betik olan bir Powershell sağlayıcısı çalıştırmasını sağlayarak yapıyorum, sadece beklenen yanıtın belirli parçalarının mevcut olduğundan emin olmak istiyorum.

İkinci kullanım durumu, ELB'nin HealthCheck'ini bir sunucu servisine çağırmak istediğim bir web servisini çağırmak istediğim AWS'de ve başarılı olduğunda, HTTP 200'leri sonraki tüm istekler için döndürüyor. Bunun amacı, uygulamanın dağıtım sürecini tamamladığından ve yük dengeleyiciye girmeden önce başarıyla dağıtıldığından emin olmaktır.

Bonus Puanlar: Bir sunucuda yüklenen web sitelerini/hizmetleri ve bunlarla mevcut olabilecek herhangi bir test komut dosyasını kendi kendine keşfedebilen ve bunları otomatik olarak çalıştırabilen mevcut hizmetler var mı?

cevap

0

Sen örneği devlete kontrol etmek
serseri ve basit aws elb komutuyla test için vagrant-serverspec eklenti kullanmak deneyebilirsiniz

aws elb describe-instance-health --load-balancer-name my-load-balancer --instances i-7299c809 

Çıktı: Ayrıca

{ 
    "InstanceStates": [ 
     { 
      "InstanceId": "i-7299c809", 
      "ReasonCode": "ELB", 
      "State": "OutOfService", 
      "Description": "Instance registration is still in progress." 
     } 
    ] 
    } 

sadece test için sorgu ekleyebilir belirtmek, bildirmek.

--query 'InstanceStates[*].State' --output text 

Geçerli değerler: InService | OutOfService | Unknown