Appium Testlerinde Ruby'nin binding.pry ?zelli?ini Kullanarak Zaman Kayb?n? ?nleyin
Web uygulama testlerinin karma??kl??? artt?k?a, yaz?l?m geli?tiricileri ve test mühendisleri test senaryolar?n? daha etkili bir ?ekilde yazmak ve hata ay?klamak zorundad?r. Selenium, web uygulamalar?n? test etmek i?in gü?lü bir ara?t?r ve Ruby, bu süre?te kullan??l? bir dil se?ene?idir. Ancak, karma??k test senaryolar? yazarken ve yürütürken kar??la??lan hatalar? ??zmek bazen zor olabilir.
Bu noktada, Ruby’nin gü?lü hata ay?klama arac? olan pry devreye girer. binding.pry, kodun belirli bir noktas?na duraksama noktas? (breakpoint) eklemenizi sa?lar ve bu noktada kodunuzu etkile?imli bir ?ekilde incelemenize olanak tan?r. Bu sayede, testlerinizin neden ba?ar?s?z oldu?unu anlamak i?in kodunuzu ad?m ad?m takip edebilir, de?i?kenlerin de?erlerini g?zlemleyebilir ve uygulaman?z?n ?al??ma ?eklini daha iyi kavrayabilirsiniz.
Bu makalede, Selenium ile yaz?lm?? Ruby testlerinde binding.pry kullan?m?n? ele alaca??z. binding.pry'nin nas?l ?al??t???n?, testlerinizde nas?l etkili bir ?ekilde kullanabilece?inizi ve bu ara? ile testlerinizi nas?l daha verimli bir ?ekilde debug edebilece?inizi ke?fedece?iz. Hem yeni ba?layanlar hem de deneyimli geli?tiriciler i?in faydal? olacak bu rehber, hata ay?klama süre?lerinizi geli?tirecek ve daha güvenilir test senaryolar? yazman?za yard?mc? olacakt?r.
Burada appium i?in gerekli gemleri iceren gem'leri sizinle payla?mak istiyorum. Projemizde "Gemfile" olusturduktan sonra ?u gem'leri ekleyelim.
source 'https://rubygems.org'
gem 'rspec'
gem 'appium_lib'
gem 'selenium-webdriver'
gem 'ruby-lsp'
gem 'rubocop'
gem 'pry'
gem 'pry-byebug', require: false, group: :development
gem 'solargraph', require: false, group: :development
gem 'byebug'
Daha sonra ilgili gem'lerin kurulumu i?in;
bundle.install
Kurulum tamamland???nda art?k haz?r?z. Hata ay?klamak istedi?imiz kod sat?r?na binding.pry kodunu yerlestirelim.
it 'plays a game of TicTacToe' do
menu_page = Menu_page.new(driver)
sleep 0.1
menu_page.ucluktahtayatikla
sleep 0.1
menu_page.single_player_tikla
x = 370
y = 1400
menu_page.carpiyatiklat(x, y)
binding.pry//hata ay?klama noktam?z
end
Testimi ko?turup binding.pry noktas?na gelince terminalde ?u ?ekilde g?rünüyor.
Sanal cihaz?mdaki durum ise ??yle
Art?k appium inspectore ba?lan?p dom'u inceliyebilirim. Attach session ile ba?lan?yorum.
Dom'da gerekli incelemeyi yapt?m ve bir locate se?erek start game'e t?klataca??m.
?lgili kodu binding.pry alt?na ekliyorum.
driver.find_element(:accessibility_id, 'Start game').click
it 'plays a game of TicTacToe' do
menu_page = Menu_page.new(driver)
sleep 0.1
menu_page.ucluktahtayatikla
sleep 0.1
menu_page.single_player_tikla
contexts = driver.available_contexts
puts contexts
x = 370
y = 1400
menu_page.carpiyatiklat(x, y)
binding.pry
driver.find_element(:accessibility_id, 'Start game').click
end
Kodu fare ile se?ip sa? click "Run Selected Text In Active Terminal" ile ?al??t?r?yorum
Sanal cihaz?mda kodumun cal??t???n? g?zlemliyorum.
?sterseniz mevcut oturumda deneme yan?lmalar yaparak ?al??maya devam edebilirsiniz. Appium inspector her seferinde yeniden ba?latmak zorunda kalmadan, testleri tekrar tekrar ba?a almadan müthi? bir verimlilik kazanarak, dikkatiniz da??lmadan testlerinize odaklanabilirsiniz.
Umar?m yard?mc? olmu?tur.