Caner BASAT

Caner BASAT

  • Dökümanlarım
  • Faydalı Yazılar

›Faydalı Yazılar

Faydalı Yazılar

  • Cucumber ve SpecFlow için dokümantasyon aracı Pickles
  • Specflowda Background nasıl kullanılır?
  • Specflow'da Data Driven Testing

Cucumber ve SpecFlow için dokümantasyon aracı Pickles

August 19, 2019

Ahmet Demirel

Ahmet Demirel

Pickles özellikle Cucumber ve SpecFlow gibi BDD(Behavior Driven Development) araçları için açık kaynak olarak geliştirilmiş bir dokümantasyon oluşturucudur.

Pickles ile müşterileriniz için daha erişilebilir bir formatta dokümanlar oluşturabilir ve iş süreçlerinize dahil edebilirsiniz. Test senaryolarını yazarken, feature’lar kendi kaynak dosyamızda bulunduğu için projedeki diğer kişilerin de bu feature’lara erişebilmesi pickles sayesinde daha kolay oluyor.

Desteklediği formatlar

  • HTML
  • DHTML
  • JSON
  • WORD
  • EXCEL

Daha detaylı bilgiler için http://www.picklesdoc.com/ sitesinden yararlanabilirsiniz.


Pickles kullanımına gelirsek, projeye yüklemenin farklı yolları var. Ben Package Manager Console üzerinden anlatmaya çalışacağım.

Visual Studio 2015'de Package Manager Console üzerine “install-package Pickles” yazarak paketi yüklüyoruz.

Pickles kullanım formatı ise şu şekilde oluyor

Pickle-Features -FeatureDirectory -OutputDirectory [-Language]
[-SystemUnderTestName] [-SystemUnderTestVersion] DocumantationFormat

  • FeatureDirectory’den sonra feature’larımızın olduğu klasörü belirtiyoruz.
  • -OutputDirectory’den sonra ise oluşacak dokümanı nereye kaydetmek istiyorsak o klasörü belirtiyoruz.
  • [-Language] default olarak ingilizce oluyor.
  • [-SystemUnderTestName] Oluşacak doküman için isim veriyoruz
  • [-SystemUnderTestVersion] Dokümana versiyon ekliyoruz
  • DocumantationFormat ile de hangi formatta doküman oluşturmak istiyorsak belirtiyoruz. Default olarak html formatı geliyor.

Kendi projemde Pickles kullanımını şu şekilde yaptım buradan örnek alarak kullanabilirsiniz

Pickle-Features -FeatureDirectory .\pickles.web\Features
-OutputDirectory C:\Users\ExtAhmetDe\Desktop\Pickles\ -SystemUnderTestName "pickels" -SystemUnderTestVersion "1.0" -DocumentationFormat html

Bu şekilde ilerleyerek Cucumber yada SpecFlow projenizde dokümantasyon işlemlerini yapabilirsiniz.

dhtml formatındaki bir doküman


Yararlandığım Kaynaklar

  • http://docs.picklesdoc.com/en/latest/
  • https://www.youtube.com/watch?v=zW8Xj602oig
  • https://github.com/picklesdoc/pickles/

Specflowda Background nasıl kullanılır?

June 19, 2019

Ahmet Demirel

Ahmet Demirel

Projesinde Specflow kullananların başına sıklıkla gelen problem aynı stepleri her senaryo başında tekrar tekrar yazmak. Bu duruma örnek vermek gerekirse e-ticaret sitesinde ürün satın alma ve ürünü favorilere ekleme senaryolarını verebiliriz sanırım. Her iki senaryoda da login olup arama yaparak ürünü sepete yada favorilere ekleriz.

Baştaki bu aynı adımları her senaryoda yazmak yerine feature dosyasının içine bir kez yazıp, senaryoların içerisine diğer adımları yazsak işimiz daha kolay olmaz mıydı? İşte tam bu sorunun cevabı olarak karşımıza Background çıkıyor.

Background specflow feature dosyası içerisindeki senaryoların birbirini takip eden adımlarının yazıldığı bölüm olarak nitenlendirebiliriz. Background feature dosyası içerisinde tanımlanmış her bir senaryodan önce çalışır. Background içerisindeki adımlardan sonra çalıştırdığımız senaryodaki adımlar ile devam edilir.

Background sayesinde başta belirttiğim aynı adımları her seferinde tekrar tekrar yazma sorununu ortadan kaldırmış oluyoruz. Şimdi basit bir örnek ile nasıl kullanabileceğimizi görelim.


Türkçe dil desteği ile kullanım şekli.

Yukarıdaki ekran görüntüsünde görebileceğiniz gibi benzer adımlar ile başlayan iki senaryomuz var ve bu benzer adımları Background(Geçmiş) içerisine yazarak adımları tekrarlamaktan kurtulmuş olduk. Buradaki gibi her senaryoda birbirini tekrar eden adımlarınız varsa background ile tekrarı ortadan kaldırabilirsiniz. Hepsiburada sepete ürün ekleme senaryosunu çalıştırdığımızda ilk olarak background içerisindeki adımlar yapılacak daha sonra senaryo içerisindeki ürün arama adımı ile devam edilecek.

Aynı feature dosyasının Türkçe dil desteği olmayan hali hemen hemen aynı sadece tanımlamalarda specflow’un dil desteklerinde gösterdiği gibi. Diğer dillerdeki karşılıklarını buradan ulaşabilirsiniz.

Basit bir şekilde specflow’da background kullanımından bahsetmeye çalıştım umarım işinize yarayan bir yazı olur.


Yararlandığım Kaynak

https://www.toolsqa.com/cucumber/background-in-cucumber/

Specflow'da Data Driven Testing

February 15, 2019

Emirhan Gül

Emirhan Gül

Selamlar, bu yazımda sizlere veri odaklı testin(DDT) nasıl yapılacağını ve bunu projemize nasıl implement edeceğimizi anlatacağım.

Bu bakış açısıyla karşımıza iki tane yeni keyword çıkıyor:

  1. Scenario Outline: Bu, bir senaryoyu iki veya daha fazla kez, farklı veri kümeleriyle koşmak için kullanılır.
  2. Examples: Bu keyword ise, senaryoda kullanılmak üzere parametre olarak aktarılacak verileri içerir.

Konuyla ilgili temel iki konsept bunlar. Lafı uzatmadan hemen bunu bir login senaryosu ile süsleyip daha iyi kavrayalım.

Hayali senaryomuzda birden fazla kullanıcı gruplarının hepsiburada.com sitesine başarılı bir şekilde login olabilmesini bekliyoruz.

HANDS ON! 👩‍💻

İlk Adımımız

Senaryoya başlarken kullandığımız “Scenario” keyword’unu “Scenario Outline” değiştirelim.

Daha sonra, aşağıdaki görseldeki “Examples” bölümünde görüldüğü gibi kullanıcı adı ve şifre verilerini n kullanıcı sayısı kadar girelim.

“Examples” kullanımı için önemli bir nokta; veri tablosunu oluştururken en üstünde vermiş olduğumuz başlık, step’imizde üçgen parantezle(<kullanıcıAdı>) parametreyi alırken kullandığımız başlıkla aynı olmak zorunda.

Senaryonun BDD karşılığı

İkinci Adımımız

Step’lerimizin içini doldurmak. 6. satırdaki step’imizin implementasyonu aşağıdaki gibidir. Fakat dikkat edilmesi gereken önemli bir nokta; Given cümleciğinde parametre olarak belirtirken çift tırnak kullanmamak. Yani

[When(@”Kullanıcı ‘(.)’ ve ‘(.)' girer”)]

yerine;

[When(@”Kullanıcı (.) ve (.)** girer”)]

olarak kullanılmak zorunda.

Step’in implementasyon görseli

DONE! 💪

Bu işlemlerin sonunca testi çalıştırdığımızda, tabloya 3 adet kullanıcı bilgileri satırı girdiğimizden ötürü test üç kez farklı kullanıcıları iterate ederek koşacaktır. Dolayısıyla, aynı zamanda kullanıcı değişkenlerimizi daha okunabilir, kolay değişitirebilir hale getirerek, hard-code’lamadan da kaçınmış olduk.

Senaryo koşum görüntüleri

Umarım sizler için faydalı olmuştur! Bir sonraki yazımda görüşmek üzere, mutlu testler 🤘🏼

Referanslar:

https://www.automatetheplanet.com/handling-parameters-specflow/https://www.toolsqa.com/specflow/data-driven-testing-using-examples-keyword-in-specflow/
https://specflow.org/documentation/SpecFlow-Assist-Helpers/

Copyright © 2021 Caner BAŞAT