Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Mobwen'de yazılım test mimarı olarak çalışan Özgürkaya'nın moderatörlüğünde, Saman Paten'den Hür İbrahim'in sunduğu bir eğitim webinaridır. Hür İbrahim, Python'da senior developer engineer pozisyonunda çalışan ve aynı zamanda müzisyen olan bir test otomasyon uzmanıdır.
- Webinari, Robot Framework ile web test otomasyonu konusunu ele almaktadır. Sunum, test otomasyonunun temel kavramlarından başlayarak Robot Framework'in kurulumu, kullanım şekli ve avantajlarını anlatmaktadır. Eğitim boyunca örnek bir uygulama üzerinden kahve satın alma sitesinde otomasyon senaryosu oluşturulmakta, karışık kodların nasıl düzenleneceği, element isimlendirme, XPath kullanımı ve keyword oluşturma gibi konular adım adım gösterilmektedir.
- Eğitimde ayrıca Chrome ayarları, reklam engelleme, ekran çözünürlüğü ayarları gibi konular da ele alınmakta ve izleyicilerden gelen sorular yanıtlanmaktadır. Video, mobil otomasyon ve Robotta Sahipro konularının gelecekte anlatılacağı bilgisiyle sonlanmaktadır.
- 00:11Giriş ve Sunucu Tanıtımı
- Özgürkaya, Mobwen'de yazılım test mimarı olarak yaklaşık iki yıl çalışmış ve bu on birinci webinariyor.
- Bugün Hür İbrahim Saman Paten'den birlikte olacak ve konu "Robot Framework ile Web Test Otomasyon" olacak.
- Geçtiğimiz webinarda temel düzeyde BDD ile ilgili bilgiler aktarılmış, bugün ise Hür daha detaylı anlatacak.
- 03:13Konuşmacı Tanıtımı
- Hür İbrahim, şu an Python'da Senior Developer Engineer pozisyonunda çalışıyor ve daha önce Hepsiburada, Etiya gibi firmalarda çalışmış.
- Aynı zamanda müzisyen olan Hür, test ve test otomasyon sistemlerini de çok keyifli buluyor.
- Sunumda halk diliyle konuşmaya çalışacak ve teknik detaylarla boğmayacak, katılımcıların soru sorabilmesini sağlayacak.
- 04:25Sunum Planı
- Önce hazırladığı sunumu paylaşacak, sonra bir örnek yapacak ve önce kurgulardan bahsedecek.
- Örnek yaparken X sitesini otomatize etme senaryosu oluşturacak ve bu senaryoyu adım adım notepad'de yazıp koda dökecek.
- Sunumdan sonra kodları paylaşacak ve isteyenlerle akıllı keyword tasarlarken dikkat edilmesi gereken noktalardan bahsedebilecek.
- 06:47Test Otomasyonu Hakkında
- Test otomasyonu, yazılım test süreçlerinin verimliliğini arttırmak ve test uzmanlarının manuel test yükünü azaltmak için kullanılan bir metodolojidir.
- Test otomasyonu, proje büyüdükçe, test ihtiyacı arttığında ve aynı senaryoları tekrar tekrar koşmak zorunda kaldığımızda yapılmalıdır.
- Test otomasyonunun avantajları arasında zaman ve efor tasarrufu sağlama, test senaryolarının hızlı art arda defalarca uygulanabilmesini sağlama ve insan kaynaklı hataları minimize etmesi bulunmaktadır.
- 09:56Robot Framework Nedir?
- Robot Framework, kütüphane paralelinde ilgili metotların kullanımı ile yeni test senaryolarının hızla geliştirmesine imkan veren bir araçtır.
- Robot Framework, Selenium WebDriver kullanıyor ve Write, Excel'i andıran özgün arayüzü ile test metotlarının yönetilmesini pratikleştirmektedir.
- Selenium WebDriver, test otomasyonda kullanabileceğimiz metotlar kümesi olup, daha akıllı sistemler kurabilmemizi sağlar.
- 11:12Robot Framework ve Write Tanıtımı
- Robot Framework ve Write, Excel'i andıran bir görünümüne sahiptir ve istenilen kütüphaneler kolayca eklenebilir.
- API testi yapmak isteyenler için ilgili kütüphaneler komut satırında yüklenerek kullanılabilir.
- Robot Framework'ün raporlama ekranı gösterilmiştir, ancak bu bölüm eski olduğu için test çalıştırılacak ve raporlar incelenecektir.
- 11:57Kod Yazım Mimarisi
- Matruşka gibi iç içe kodlar ve fonksiyonlar yazıldığında test otomasyonu daha yönetilebilir ve değişiklikler daha esnek bir şekilde yapılabilir.
- Robot Framework mimarisinde en arkada Selenium ve driver kullanılmaktadır ve bu metotlar kolaylaştırılmıştır.
- Gelecekte otomasyon, artificial intelligence ile birleşerek daha az insan gücü gerektiren, kendi kendine öğrenen akıllı sistemler geliştirilecektir.
- 13:48Robot Framework Kütüphaneleri
- Robot Framework ile gelen standart kütüphanede temel fonksiyonlar bulunmaktadır.
- Android kütüphanesi dahil olmak üzere çeşitli ek kütüphaneler mevcuttur.
- Sunum sırasında etkileşimli olmak için sorular sorulması istenmektedir.
- 14:23Robot Framework Kurulumu
- Windows için Python 3.7.2 kullanılmalıdır, 3.8 gibi üst sürümlerle çalışmayabilir.
- Python 3.7.2 kurulduktan sonra ortam değişkenleri eklenmelidir.
- Robot Framework kurmak için komut satırında "pip install robot framework" yazılmalıdır, Write kurmak için ise "pip install robot framework write" komutu kullanılmalıdır.
- 15:55Örnek Uygulama
- Selenyum Tool Library kütüphanesi kullanılarak basit bir otomasyon örneği gösterilmiştir.
- Örnekte kullanıcı adı ve şifre alanlarına değerler gönderilerek ve submit butonuna tıklanarak basit bir otomasyon işlemi gerçekleştirilmiştir.
- Basit kod yazımı yerine daha akıllı hale getirmek için Wade for elementleri ve weight and sand text metotları kullanılabilir.
- 17:35Soru Cevap
- Sunum sonrası soru sorma fırsatı sunulmuştur.
- Bir katılımcı tarafından "keyword" kütüphanesi hakkında soru sorulmuştur.
- Konuşmacı, Java'da yazılan kodun Robot Framework'de de yapılabilen bir kütüphanesi olduğunu ancak akıllı bir yapı kurulduktan sonra gerekli olmadığını belirtmiştir.
- 19:09Robot Framework'ün Avantajları ve Dezavantajları
- Robot Framework'ün en büyük dezavantajı çok fazla insanın kullanmamış olması ve dilinden korkmasıdır.
- Robot Framework mobil, web, API otomasyonu ve continuous integration entegrasyonu yapabilir, akıllı keywordler oluşturulabilir.
- Robot Framework'ün dezavantajı inheritans olmaması ve Java, .NET gibi güncel diller kadar esnek olmamasıdır.
- 20:38Robot Framework'ün Teknik Özellikleri
- Robot Framework kendi tarayıcısı yoktur, Chrome ve Mozilla gibi güncel tarayıcılarla çalıştırılabilir.
- Python 3.7.2 zorunlu sürümüdür, 3.8'de çalıştırılamamaktadır.
- Web tabanlı, native, hibrit, mobil ve desktop uygulamalarda kullanılabilir.
- 24:19Robot Framework'ün Kullanımı ve Sorun Çözme
- Robot Framework Docker konteyner'da çalıştırılabilir, ancak kendine has sorunları olabilir.
- BrowserStack'te yoğun zamanda yaşanan dil sorununa basit bir çözüm bulunmuştur.
- CI/CD entegrasyonu kolaydır, YouTube'da birçok video bulunabilir.
- 27:09Robot Framework'ün Avantajları ve Örnek Uygulama
- Mobil otomasyon için Apple ile kolay iletişim kurabilir, paralel çalıştırma için entegrasyon yapılabilir.
- Çok fazla hazır kütüphane mevcuttur, en büyük avantajı raporlama ekranı ve kod geliştirme platformudur.
- Örnek uygulama için kahve satın alma sitesinde login işlemi adım adım not edilerek Robot Framework'a aktarılacaktır.
- 32:42Robot Framework Otomasyonu Tanıtımı
- Konuşmacı, spagetti kod (karışık kod) ve içindeki elementler, metotlar ve yapı hakkında konuşmaya başlıyor.
- Otomasyonu çalıştırdıktan sonra adımlar üzerinden devam edecek ve kodların ne için kullanıldığını açıklayacak.
- Robot Framework'ün raporu "login successful" mesajı vererek otomasyonun başarılı olduğunu gösteriyor.
- 34:05Ekran Görüntüsü Özellikleri
- Her adımda ekran görüntüsü alınmasını sağlayan "capture page screenshot" metodu kullanılıyor.
- Mobil otomasyonda her adımı görebilme ve patlama durumunda nerede hata olduğunu tespit etme kolaylığı sağlıyor.
- Otomasyon sırasında kullanıcı adı ve şifre gönderme adımlarının ekran görüntüleri görüntülenebiliyor.
- 35:03Sunum Süreci
- Konuşmacı, konuşmasında bir kedisinin olup olmadığını belirtiyor ve kedinin saldırgan olabileceğini uyarıyor.
- Manuel login denemesi başarısız olurken, otomasyonlu login işlemi başarılı oluyor.
- Sunumda bir şeyin patlaması gerektiğini belirtiyor.
- 36:19Robot Framework Test Sonuçları İnceleme
- Konuşmacı, bir test sonucunu inceleyerek login kontrolünü ve raporlama ekranını gösteriyor.
- Raporlama ekranında kullanıcı adı, ekran görüntüsü, URL bilgisi, kontrol edilen sayfa, kontrol zamanı ve test süresi gibi bilgiler yer alıyor.
- Konuşmacı, beş dakika boyunca soru-cevap süresi sunarak izleyicilerden sorular sormalarını istiyor.
- 38:24Robot Framework Hakkında Sorular ve Tavsiyeler
- Konuşmacı, Robot Framework ile ilgili sorulara yanıt veriyor ve başlangıçta karışık gelse de zamanla sevdirildiğini belirtiyor.
- Robot Framework'le uğraşmak, farklı keywordler oluşturmak ve dürüst olmak gerektiği vurgulanıyor.
- Lazy loading gibi senaryolar için akıllı keywordler yazılabilmesi öneriliyor.
- 41:28Cypress ve Robot Framework Karşılaştırması
- Konuşmacı, Cypress ile Robot Framework'ı karşılaştırırken Cypress'in kendini kısıtlayıcı olduğunu düşünüyor.
- Robot Framework'ın daha esnek olduğunu ve farklı test senaryoları için daha uygun olduğunu belirtiyor.
- Kontrol noktalarının neye göre konulması gerektiği ve test senaryolarının karmaşık sistemlerde API testleri ve database kontrolü ile pekiştirilmesi gerektiği vurgulanıyor.
- 43:51Robot Framework Özellikleri ve Sorular
- Robot Framework'te API testleri için "Request Library" adlı bir kütüphane bulunuyor ve bu kütüphanenin nasıl kullanılacağı belgelenmiş.
- Robot Framework'ın paralel execution için "Pibot" adlı bir kütüphanesi olduğu ve istenilen kadar thread ile çalıştırılabildiği belirtiliyor.
- Konuşmacı, sesli uygulamalar için test yapılması ve aynı senaryonun farklı browserlarda çalıştırılması gibi sorulara yanıt veriyor.
- 47:50Test Otomasyon Yapısının İyileştirilmesi
- Konuşmacı, test otomasyon yapısının nasıl daha düzgün ve okunabilir hale getirilebileceği konusunda birlikte çalışmayı öneriyor.
- "Login facilities" adlı klasörün login sayfasında kullanılacak fonksiyonlar kümesi olduğunu açıklıyor.
- "Login variables" adlı dosyanın login sayfasında kullanılan elementlerin havuzu olduğunu belirtiyor.
- 49:44Kötü Kodu Düzenleme Süreci
- Eğitmen, kötü kodu nasıl düzgün bir koda dönüştüreceğini adım adım gösteriyor.
- Object repository kurarken öncelikle ID'leri kullanmak gerektiğini, XP'leri kopyalamaktansa kendi yazmak gerektiğini vurguluyor.
- İlk olarak profile butonunu, email textbox'ını ve password textbox'ını düzenleyerek kodu temizliyor.
- 56:50Kodun Hatalı Çalışması ve Çözümü
- Düzenlenmiş kodu çalıştırdığında "element id email create not found" hatası alıyor.
- Aynı isimde farklı değişkenlerin olması hatanın sebebi olduğunu tespit ediyor.
- Tüm değişken isimlerine "kahve" ekleyerek benzersiz hale getiriyor ve kodu tekrar çalıştırıyor.
- 1:02:45Keyword Oluşturma
- Düzenlenmiş kodu keyword'ler haline getirmeye başlıyor.
- "Click profile buton kahve" ve "Enter user email kahve" gibi keyword'ler oluşturuyor.
- Tüm işlemler tek bir "login and check kahve" keyword'ine dönüştürülüyor.
- 1:09:03Sonuç ve Öneriler
- Düzenlenmiş ve keyword'lerle yazılan kodun daha temiz ve anlaşılır olduğunu gösteriyor.
- Hata alındığında logları incelemek gerektiğini, logların yol gösterici olduğunu belirtiyor.
- Kodun başarıyla çalıştığını göstererek eğitimini tamamlıyor.
- 1:10:27Selenium ve Chrome Ayarları
- Konuşmacı, Chrome için hazırladığı fonksiyonlar kümesini gösteriyor ve Chrome'un reklamları kapatma, ekran çözünürlüğü gibi çeşitli özelliklerini ayarlayabildiğini belirtiyor.
- Kodlarda "set chrome options" fonksiyonu kullanılarak headless mod gibi ayarlar yapılabildiğini gösteriyor.
- Selenium kodlarında her şeyin açık ve anlaşılır bir dille kodlanmasını, sokaktan gelen bir adamın bile anlayabileceği şekilde kod geliştirilmesini öneriyor.
- 1:11:58Eğitim Devamı ve Sorular
- Konuşmacı, eğitim devam edeceğini ve daha detaylı bilgi için soruları cevaplayacağını belirtiyor.
- "Launch browser" fonksiyonunun "main functions" dosyasında olduğunu ve test setup'ta çalıştığını gösteriyor.
- Eğitim süresini açtığını ve mümkün olduğunca hızlı ve halk diliyle anlatmaya çalıştığını ifade ediyor.
- 1:13:29Gelecek Eğitimler
- Konuşmacı, bundan sonra mobil otomasyon anlatacağını ve Robotta Sahibrobot anlatılacağını belirtiyor.
- Dört-beş saatlik bir proje yapmayı ve baştan sona birlikte çalışmayı planladığını söylüyor.
- İzleyicilere mail atıp LinkedIn üzerinden iletişime geçmelerini, teknolojiye küsmemelerini ve özellikle otomasyona küsmemelerini öneriyor.