Test Otomasyon Projemiz de Slack Entegrasyonu

Mesut Beysülen
hepsiburadatech
Published in
4 min readSep 25, 2020

--

Merhabalar…

Bu yazımda sizlere kurumsal firmaların birçoğunda şirket içi hızlı haberleşmeyi sağlayan Slack üzerinde, projelerimizin hata, build, rapor vb. gerekli bilgilerini belli periyotlar ile ortak bir kanalda görüntülenmesini nasıl sağlayacağımızdan bahsedeceğim.

Biz de Hepsiburada mobil QA takımı olarak otomasyon projemiz de fail ve success olan testlerimizi otomasyon kanalımızdan takip etmek için bu entegrasyonu sağladık. Peki, bunu nasıl yaptık?

Slack, kanal tabanlı bir mesajlaşma platformudur. Slack ile insanlar daha verimli bir şekilde birlikte çalışabilir, tüm yazılım araçlarını ve hizmetlerini bağlayabilir ve en iyi işlerini yapmak için ihtiyaç duydukları bilgileri bulabilirler.

Bizler de gün boyu çalışırken aktif olarak kullandığımız slack de, rutin olarak çalışan job larımızın, pipeline larımızın, test case lerimizin ne kadarının başarılı-başarısız bittiğini anında mesaj olarak alabilmek için slack entegrasyonu yaptık. Bu entegrasyon bizlere anında müdahale ve başka işlerle uğraşırken çalışan testlerimizin sonuçlarını paralel de alıp kontrol etmemizi sağladı. Şimdi sizlere test otomasyon projemize nasıl entegre ettiğimizi anlatmaya başlayalım.

Öncelikle kullancağımız tool WebHook. WebHook, Uygulama içinden Slack’ e mesaj göndermenin basit bir yolu olarak tanımlanabilir. Çünkü birçok yöntem var ancak biz WebHook kullanacağız.

Aşağıdaki link üzerinden WebHook için daha ayrıntılı bilgiye ulaşabilirsiniz. Ayrıca entegrasyon için başlayacağımız adres de burası.

Açılan sayfada “Create a Slack App” seçeneğine tıklayarak, uygulamamıza bir isim veriyoruz. Dikkat burada ki isim ilerde giden bildirimlerde gözüken isim olacak!

Development Slack Workspace ine sahip olmanız gerekiyor aksi halde bir tane kendiniz oluşturabilirsiniz. Ancak zaten bir şirket çalışma alanına dahil iseniz otomatik olarak seçeneklerde gelecektir, onu seçerek ilerleyiniz. Zaten bu alanda private yada public bir kanal da oluşturacaksınız.

Create App dedikten sonra yukarıdaki seçeneklerin olduğu bir ekran gelmiş olmalı. Incoming Webhooks seçilir ve gelen ekranda da Activate Incoming Webhooks aktif duruma getirilir.

Aktif yaptıktan sonra Webhook URLs for Your Workspace alanının geldiğini göreceksiniz burada curl ve ve Slack Çalışma Alanınızda oluşturduğunuz kanalı seçip, bildirimlerin bu kanalda yayınlanmasını istiyorum dediğiniz yer.

Add New Webhooks to Workspace seçilir. Ve mesajın gönderileceği kanal seçilir. Artık curl kısmına baktığınızda aşağıdaki gibi bir services url’ i eklendiğini göreceksiniz.

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/xxxxxxx/xxxxxxxx/xxxxxxxxx

Bu isteği postman’ e import edip, istek gönderdiğinizde kanalda “Hello, World!” yazısının mesaj olarak geldiğini göreceksiniz.

Şimdi sıra bu isteği uygulamamızın içinden isteğimiz parametreleri göndererek yapalım.

BAĞIMLILIKLAR (Dependencies)

Bu slack entegrasyonunu uygulamamızda kullanabilmek için pom.xml dosyamıza eklememiz gereken bağımlılıklar bulunmaktadır. Aşağıdaki gibi ekleyebilirsiniz.

<dependency>
<groupId>com.slack.api</groupId>
<artifactId>bolt</artifactId>
<version>1.1.5</version>
</dependency>
<dependency>
<groupId>com.slack.api</groupId>
<artifactId>bolt-servlet</artifactId>
<version>1.1.5</version>
</dependency>

KODLAMA

İlk olarak, bir yeniden kullanılabilirliği sağlamak için SlackUtils.java sınıfı tanımlayalım. Bu sınıfta kullanıcağımız metodlar için aşağıdaki adresi ziyaret ediniz.

Başarılı ve başarısız mesajları göndermek üzere 2 farklı metod tanımladık. Biri tüm testcase ve senaryoların sonuçlarını(toplam başarılı test sayısı, toplam hata alan test sayısı ve detay linki gibi) gönderen mesaj yapısına sahip, diğeri hata alan testcase ve senaryoların hangi class da hangi hatayı aldığını gönderen mesaj yapısına sahip.

Şimdi bu metodları test sınıflarınızın sonuna yada tüm çalışan testlerin sonucunu alıp bu bilgileri göndereceğiniz yere ekleyebilirsiniz. Ekledikten sonra göreceksiniz ki her çalışan ve hata alan ya da biten testlerinizin slack de ki görüntüsü aşağıdaki gibi olacaktır.

Mesajı yolladığım kod bloğunu da aşağıya ekledim. Her biten testin sonucunu kontrol ederek bize fail durumda slack den mesaj gönderecek şekilde ayarladım. Sizlerde diğer başarılı ve atlanılan testlerin mesajını göndermeyi de ekleyebilirsiniz.

Bu yazımızın da sonuna geldik. Umarım faydalı olmuştur…

--

--

Mesut Beysülen
hepsiburadatech

Senior QA-Test Automation Engineer @MigrosOne, Ex @hepsiburada | Instructor on Youtube @mesutbeysulen