Robot Framework ile Test Otomasyonu

Merhaba arkadaşlar.Bu yazımda robot framework ile pythonda nasıl test otomasyonu geliştirebileceğimizi anlatacağım. Bütün kurulumları birlikte yaparak otomasyon projesini çalışır hale getireceğiz.

Öncelikle robot framework hakkında biraz bilgi vermek istiyorum. Robot framework, kullanıcı kabul testi odaklı geliştirme için kullanılan bir test otomasyon framework'üdür. İçerdiği yan kütüphaneler sayesinde web, mobil ve desktop uygulamaları için test otomasyonuna olanak sağlamaktadır. Python ve java programlama dillerini desteklemektedir.

Kullanım açısından kolaylıklarını belirtmek gerekirse test sonuçlarını otomatik olarak html şeklinde raporlama yapmaktadır ve hata alan kısımlarda ekran görüntüsü almaktadır.

amazon.com üzerinde örnek bir login senaryosu yazacağız. Projeyi python ile geliştireceğim. Projemizde python 2.x desteği 2020 yılında biteceğinden python 3.x kullanacağız. Ayrıca proje için virtual environment oluşturacağız. Virtual environment oluşturmamızdaki amaç projemiz için kullanacağımız python sürümünü ve gereksinimleri sistemden izole şekilde kurup kullanabilmektir.

Ben kurulumu mac os üzerinde yapacağım. Terminalimizi açalım ve proje klasörümüzü oluşturup izole ortamımızı oluşturalım.

                        Oktays-MacBook-Pro:~ macbook$ mkdir RobotFrameworkExample
                        Oktays-MacBook-Pro:~ macbook$ cd RobotFrameworkExample
                        Oktays-MacBook-Pro:RobotFrameworkExample macbook$ python3 -m  venv venv
                        Oktays-MacBook-Pro:RobotFrameworkExample macbook$ cd venv

Şuanda projemizi ve izole ortamımızı oluşturmuş bulunmaktayız. Şimdi izole ortamımızı aktif edelim.

                        Oktays-MacBook-Pro:venv macbook$ source bin/activate
                        #İzole ortamımızın aktif olduğunu aşağıda görebiliriz.
                        (venv) Oktays-MacBook-Pro:venv macbook$
                    

Daha sonra gerekli bağımlılıkları yükleyebiliriz.

  • Robot Framework
  • Selenium2Library

                        (venv) Oktays-MacBook-Pro:venv macbook$ pip install --upgrade pip
                        (venv) Oktays-MacBook-Pro:venv macbook$ pip install robotframework
                        (venv) Oktays-MacBook-Pro:venv macbook$ pip install robotframework-selenium2library
                    

Geliştirme yapmak için ortamımız hazır. Chrome driver'ı yükledikten sonra geliştirme yapmaya başlayabiliriz. Ben ide olarak robotframework autocomplete desteklediği için atomu kullanıyorum. Atom'u bu linkten indirebilirsiniz. Atom'u kurduktan sonra robotframework desteği için eklenti kurmamız gerekiyor. Chrome driver kurulumu ve atom eklentisi için sırasıyla kodları terminalimizde çalıştırmamız gerekiyor.

                      # chromedriver kurulumu
                      Oktays-MacBook-Pro:~ macbook$ brew cask install chromedriver
                      # robot framework atom eklentisi
                      Oktays-MacBook-Pro:~ macbook$ apm install language-robot-framework
                      Oktays-MacBook-Pro:~ macbook$ apm install autocomplete-robot-framework

Kurulum işlemlerini tamamladıktan sonra atomda projemizi açalım. resource.robot ve Sample.robot dosyalarını oluşturalım. Projemizin yapısı aşağıdaki fotoğrafta olduğu gibi olmalıdır.

resource.robot dosyasını açıp kodlamaya başlayalım. Settings bloğu altında kullanacağımız framework'leri Library olarak import edebiliriz. Biz projemizde Selenium2Library kullanacağımızdan onu import ediyoruz. Gereklilik halinde kendi oluşturduğumuz metodları içeren python class'larını da Library olarak ekleyebiliriz.

Variables bloğu altında sabitlerimizi tanımlıyoruz. Senaryomuz hangi browser üzerinde çalışacak, hangi url'e gidecek gibi tanımlamaları Variables bloğu altında tanılıyoruz.

Keywords bloğu altında steplerimizi oluşturuyoruz. Bu stepleri oluştururken default tanımlı adımları kullanabiliriz. Click veya send keywords gibi işlemler için arka tarafta metod oluşturmamıza gerek kalmadan framework'ün sağladığı kolaylıkla bu işlemleri gerçekleştirebiliyoruz. Framework'ün bize sağladığı kolaylıklara, Selenium2Library hakkında daha fazla bilgiye bu linkten yararlanabilirsiniz.

Sample.robot dosyasını açalım ve login senaryouzu yazalım. Öncelikle Settings bloğu altında adımlarımızı tanımladığımız resource.robot dosyasını import edelim. Daha sonra Test Cases bloğu altında senaryomuzu oluşturalım. Senaryomuzu oluştururken framework'ün bize verdiği metodlarla birlikte resource.robot içinde oluşturduğumuz adımları kullanarak amazon.com üzerinde örnek login işlemini gerçekleştireceğiz. Aşağıda örnek senaryomuzu görüyoruz.

Senaryomuzu terminal üzerinden aşağıdaki gibi çalıştırıyoruz ve sonuçlarımızı html çıktısı olarak alabiliyoruz.

                          (venv) Oktays-MacBook-Pro:venv macbook$ robot -d Results Sample.robot

Projemizin kaynak koduna buraya tıklayarak ulaşabilirsiniz. İyi günler.