Robot Framework ile Jenkins Entegrasyonu
Merhaba arkadaşlar bu yazımda sürekli entegrasyon yaklaşımı için geliştirilmiş popüler bir ürün olan Jenkins ile Robot Framework entegrasyonunu anlatacağım.
Sürekli Entegrasyon (CI) Nedir ?
Bu yaklaşımda kod havuzuna gönderilen her değişikliğin sistemin herhangi bir bölümünde hataya yol açıp açmadığını kontrol etmek amacıyla kullanılan bir yaklaşımdır. Kod havuzuna gönderilen yeni kod otomatik olarak derlenir eğer bu aşamada herhangi bir hata oluşmazsa test sunucusuna deploy yapılır. Projeniz test sunucusuna deploy edildikten sonra test etmeye hazır duruma gelir. Test aşamasında yazılan test scriptleri otomatik olarak çalıştırılır ve yine olası bir hata durumunda bildirim yapılır. Test aşamasında sorun olmazsa nihai ürün canlı ortama (Release) deploy edilerek süreç tamamlanmış olur.
Sürekli Entegrasyon Araçları
- Jenkins
- Travis CI
- TeamCity
- Go CD
- CodeShip
- GitLab CI
- Circle CI
Jenkins Nedir ?
Jenkins, java ile geliştirilmiş açık kaynak kodlu bir entegrasyon aracıdır. Geliştiricilerin bir kod havuzundaki hataları hızlı bir şekilde bulmalarını, çözmelerini ve testleri otomatize etmelerini sağlar.
Jenkins Kurulum
- Buraya tıklayarak jenkins kurulum dosyasını bilgisayarınıza indirin.
- İndirdiğiniz .zip uzantılı dosyayı zipten çıkarın jenkins.msi dosyasına çift tıklayarak kurulumu başlatın. Sonra next, next, next 🙂
- Kurulum tamamlandıktan sonra otomatik olarak tarayıcı açılacak ve aşağıda gördüğünüz ekranla karşılaşacaksınız.
- Jenkins’in yönetici tarafından kurulması için default olarak belirlenmiş olan şifreyi aşağıdaki yolu takip ederek bulun ve yönetici şifresini kopyalayın.
C:\Program Files (x86)\Jenkins\secrets
- Sonraki aşamada kurulacak eklentilerin seçilmesi gerekmektedir bu ekranda iki seçenek sunulmaktadır. Install suggested plugins seçeneğini seçerseniz jenkins tarafından önerilen tüm eklentiler kurulmuş olacaktır. Select plugin to install seçeneğine tıklayarak kurulum yapacağınız eklentileri de seçebilirsiniz.
Sonraki ekranda Jenkins yönetim paneline ulaşabilmek için bir kullanıcı oluşturmamız gerekmektedir. Kullanıcı bilgilerini doldurduktan sonra Save and Continue butonuna basın.
Jenkins bağlantı linkini belirlediğimiz ekranda değişiklik yapmadan Save and Finish butonuna basın. Ben 8080 portunu kullandım ancak siz boşta olan bir port numarası da girebilirsiniz.
Kurulum tamamlandı.
Yapılandırma
Dil Ayarları
Jenkins Türkçe’ye tam çevrilmediği için uygulama genelinde hem türkçe hem ingilizce kelimeler bulunmaktadır. Biz uygulamanın dilini ingilizce olarak değiştireceğiz. Jenkins’ı Yönet / Sistem Konfigürasyonunu Değiştir seçeneğine tıklayın.
Locale seçeneği altında yer alan Default Language alanına en-US yazın. Ignore browser preference and force this language to all users seçeneğinin işaretleyin. Apply ve Kaydet komutlarını vererek Jenkins’i ingilizce yapabilirsiniz.
Java JDK Ayarları
Jenkins’in çalışması sırasında ihtiyaç duyduğu Java JDK’nın bilgisayarda kurulu olan yolunu göstermemiz gerekmektedir. Bunun için Manage Jenkins / Global Tool Configuration seçeneğine tıklayın.
JDK kısmında yer alan Add JDK butonuna basın.
Açılan ekranda Install automatically seçeneğinin işaretini kaldırın. Name alanına ayırt edebileceğiniz bir isim yazın, JAVA_HOME alanına Java JDK’nın kurulu olduğu dizinin yolunu yapıştırın ve Save butonuna basarak ayarları kaydedin.
Ben kaynak kod yönetim aracı olarak Git kullanacağım bunun için bilgisayarıma git uygulamasını kurdum ve yine aynı ekranda JDK’da olduğu gibi git uygulamasının yüklü olduğu dizini gösterdim.
Jenkins ile Yeni Job Tanımlama
Örnek Robot Framework projesi olarak bir önceki yazımda oluşturduğum test projesini kullanacağım. Örnek projenin linkine buradan ulaşabilirsiniz. Eclipse’de oluşturduğum projeyi GitHub’a yükledim. İlk olarak Jenkins’de Create new Jobs bağlantısına basın.
Proje adını girin, Proje tipi olarak Freestyle project seçin ve OK butonuna basın.
Proje oluştuktan sonra karşımıza aşağıdaki gibi bir ekran çıkıyor bu ekranda yer alan GitHub project checkboxına tıklayın ve açılan alana Github repository linkinizi yapıştırın.
Aynı ekranda yer alan Source Code Management sekmesinde Git seçeneğine basın ve Repository URL ve Credentials alanlarını doldurun. Burada Git seçeneği çıkmıyorsa Manage Jenkins / Manage Plugins kısmından git eklentisini kurun. Save komutu vererek ayarları kaydedin.
Repository URL alanına projenizin git linkini yapıştırdığınızda “Failed to connect to repository : Error performing command: git.exe ls-remote” şeklinde hata alırsanız Global Tool Configuration kısmına eklediğiniz git uygulamasının kurulum dizin yolu hatalı olabilir Git alanına yazmanız gereken örnek yol şu şekilde olmalıdır: C:\Program Files\Git\bin\git.exe
Robot Framework Eklenti Kurulumu
Projeyi oluşturduktan sonra Jenkins’e Robot Framework eklentisini kurmamız gerekiyor. Manage Jenkins / Manage Plugins ekranını açın. Available sekmesinde robot anahtar kelimesi ile eklentiyi aratın. Eklentiyi bulduktan sonra seçip Install without restart butonuna basın.
Eklenti Jenkins’e kuruldu. Go back to top page bağlantısına tıklayarak ana sayfaya geri dönün.
Projeyi çalıştırarak kaynak kodu GitHub üzerinden çekiyoruz.
Oluşturduğumuz proje için tekrar Configure butonuna basın. Build sekmesinde yer alan Add build step açılır butonuna basın, Execute Windows batch command seçeneğine basın.
Açılan Command alanına aşağıdaki komutları ekleyin. komutta yer alan Results kelimesi test sonuçlarını atacağımız Results klasörüdür siz istediğiniz adlandırmayı yapabilirsiniz.
c: cd C:\Program Files (x86)\Jenkins\workspace\SampleRobotFrameworkProject\RobotSampleProject robot -d Results LoginPageTestSuite.robot
Test sonuçlarını Jenkins’de takip edebilmek içinse Post-build Actions sekmesinde yer alan Add post-build action açılır butonuna basın, Publish Robot Framework test results seçeneğine basın.
Açılan Public Robot Framework test results alanında yer alan Directory of Robot output kısmına test çalıştıktan sonra oluşacak test sonuç dosyaları yazılacaktır buraya test sonuç dosyalarını atmasını istediğiniz yolu yapıştırın ve Save butonuna basın.
Gerekli tüm ayarları yaptık artık projeyi çalıştırma zamanı.
Robot Framework’te yazdığımız test kodunu çalıştırdık ve sonuç başarılı oldu. Bir sonraki yazımda görüşmek üzere hoşcakalın.
Faydalı olması dileğiyle…