Ana içeriğe atla

Kayıtlar

Postman-1

API stands for Application Programming Interface. Sometimes it is also called Application Program Interface. An interface can be thought of as a contract because it defines a set of rules that must be followed in order for two entities to communicate or interact with each other. An API defines a set of rules and protocols for how one system can access and make use of the functionality and data provided by another system . A web API is a set of rules and protocols that define how two systems can communicate with each other over the internet. It allows one system (such as a server) to expose certain functionality or data to other systems (such as mobile application). Web APIs are typically accessed over HTTP or HTTPS, and they can use a variety of data formats (such as JSON or XML) to exchange information. They are often used to enable integrations between different systems, or to allow developers to build applications that interact with a web-based service or platform. The API docume
En son yayınlar

Cypress Notlar-1

 Notlar npm (node package manager), javascript betik dili için geliştirilmiş olan ve Node.js'in standart olarak kabul ettiği bir paket yönetim sistemidir. npm komut satırından çalıştırılır ve uygulamalar için bağımlılık yönetimi sağlar.   npm'yi yükleyip cypress'i yüklemeyi tavsiye ediyorlar. Cypress'i yazdığınız kodun içine yükleyin. npm install -D cypress   Yüklendikten sonra cypress npx cypress open, cypress in test runner ını açıyor.    Cypress için hangi IDE'yi kullandığınız önemli değil ama genelde Visual Studio Code kullanılıyor.   Cypress la test yaparken güvenlikle alakalı hata alırsan cypress.json dosyasına aşağıdaki yazılır. { "chromeWebSecurity" = false }    Buraya hep aynı url ye gideceksen baseURL olarak tanımlama yapabilirsin. Açılacak tarayıcının boyutunu buradan ayarlayabilirsin.    Fixtures klasörüne kodunda kullanacağın sabit veriyi yazabilirsin. Yeni bir json dosyası oluşturup aşağıdaki gibi ekleyebilirsin. (swaglabs.json)   { &quo

TestNG - Listeners

TestNG raporlarını ya da çıktılarını özelliştirmek için kullanılan bir interface. 12 tane listener bulunmakta. IAnnotationTransformer , IAnnotationTransformer2 , IConfigurable , IConfigurationListener , IExecutionListener, IHookable , IInvokedMethodListener , IInvokedMethodListener2 , IMethodInterceptor , IReporter, ISuiteListener, ITestListener Herhangi bir listener kullanılmak istenildiğinde, bunu yapmanın çoğunlukla kullanılan iki yolu vardır.  İlki; ilgili listener'ı implement edecek class'ı oluşturmak gerekir. Class'ın içine kullandığınız IDE ilgili listener'ın fonksiyonları getirir. Kullanmak istediklerinize kodunuzu eklersiniz. Daha sonra ise asıl test kodunuzun olduğu class koduna, class kısmından önce @Listeners(paketIsmi.listenerSınıfınınAdi.class) eklemesi yapmanız gerekir.   Diğeri ise, eğer bu listener'i birden fazla sınıf için kullanacaksanız bu yolu kullanmanız gerekir karışıklığı önlemek için, o da testng.xml'de önceki ma

TestNG - Bağımlılık (Dependency)

Bazı durumlarda yazdığınız test kodunda birbirine bağımlı test metotları olabilir. TestNG, bu bağımlılıkları xml dosyanızda ya da kodunuzda belirtmenize (annotation ile) olanak sağlar. TestNG'de iki çeşit bağımlılık vardır: Hard dependency 'de testinizin bağımlı olduğu diğer testlerin hepsinin başarılı olması gerekir. Eğer bir tanesi bile başarısız olduysa bağımlı olan testler çalışmaz, atlanır.  Soft dependency 'de ise bağımlı olunan testlerden başarısız olan olsa bile diğer testler çalışır. Bu bağımlılık çeşidini kullanmak için @Test (alwaysRun=true) ifadesini eklemek gerekir. Aşağıda, Hard dependency'nin kodda belirtilmesine örnek kod bulunmaktadır. Hem metota bağımlılık hem gruba bağımlılık belirtilebilir. @Test public void serverStartedOk() {} @Test( dependsOnMethods = { "serverStartedOk" }) public void method1() {} Bu örnekte, method1() ,serverStartedOk() metoduna bağımlı olarak belirtilmiştir, bu durumda ilk serverStartedOk()

Selenium - Paralel Execution

Paralel testte, farklı modülleri ya da uygulamaları aynı anda farklı tarayıcılarda çalıştırabiliriz. Seri çalıştırmaya göre testiniz daha kısa sürede koşacaktır. Testng.xml dosyasına paralel olarak çalıştıracağınız kısmı aşağıdaki örnekler gibi yazmalısınız. Thread-count ile test koşturumu için kaç tane thread'in çalışacağını belirtebilirsiniz. <suite name="..." parallel="methods" thread-count="5"> <suite name="..." parallel="tests" thread-count="5"> <suite name="..." parallel="classes" thread-count="5"> <suite name="..." parallel="instances" thread-count="5"> "methods": TestNG farklı thread'lerde bütün test metotlarını çalıştırır. Birbirine bağımlı testler ayrıca farklı threadlerde sıraya uygun olarak çalışır.  "tests": TestNG, xml de belirttiğiniz  <test> etiketindeki bütün metotları aynı threa

TestNG - Gruplar

TestNG'deki grup özelliği istediğiniz fonksiyonları istediğiniz gruba ayırmanızı ya da toplamanızı sağlar. Bu özellik JUnit'de bulunmamaktadır.  Grup özelliğiyle istediğiniz gruptaki fonksiyonları çalıştırabilirsiniz. Grup içinde grup da tanımlayabilirsiniz.  Bu özelliği kullanabilmek için kendiniz aşağıdaki gibi bir xml dosyası oluşturmalısınız.  Kodu çalıştırırken de bu xml dosyasını koşturmanız gerekmektedir. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">         <suite name="Suite">                     <test name="Demo">                              <groups>                                         <run>                                                 <include name="giris" />                                         </run>                               </groups>                                

TestNG Groups - NullPointerException

Eğer TestNG grup özelliğini kullanırken xml'i çalıştırdığınızda NullPointerException alıyorsanız; setUp metodunuzdan önce kullandığınız grupları @BeforeGroups annotation ı ile tanımlayabilirsiniz. @BeforeGroups (groups ={"giris","dogrulama"}) gibi.