GithubHelp home page GithubHelp logo

And I have created few projects to show usage of different automation testing tools.

Repo list

Repo Build Status Release Status
Cucumber web Demo Build Status
Cucumber api Demo Build Status
Specflow web/api Demo Build Status
Cypress Demo Build Status
Appium Demo

Cucumber Web/ Api Demo

Web part is a Java Maven project which using Selenium, Junit, Cucumber under Page Object Design Pattern.

  • It can run with different browsers, also provides Headless option. (default by chrome you can find setting in config.properties)
  • It allows parallel test execution by using maven-surefire-plugin
  • In RunCucumber file, you can run scenarios with a particular tag. like @chrome, @headless, @api, @countdown
  • Using dynamic XPath and Wait till to locate UI elements
  • Using PicoContainer as Dependency Injection (DI) Containers to Sharing Test Context between Cucumber Step Definitions
  • Using ScenarioContext & Java Hash Mapto store and share test date between steps

Api

There are multiple options to test Api eg: Postman, Swagger. In this Demo, I am using Rest Assured which is one of the most used library for REST API automation testing.\

  • Parallel test execution by using maven-surefire-plugin
  • Using PicoContainer as Dependency Injection (DI) Containers to Sharing Test Context between Cucumber Step Definitions
  • Using ScenarioContext & Java Hash Mapto store and share test date between steps
  • Json Schema validation
  • Deserialization with Generics using io.restassured.mapper.TypeRef to deserialize the response to a container with a generic type
  • Authentication
  • Specification Re-use by using RequestSpecBuilder or ResponseSpecBuilder.
  • Verifying Response Data: status code, status line, cookies, headers, content type and body
  • Specifying Request Data: headers, cookies, body and content type.

Specflow

Web

  • Parallel Execution by Specflow.Nunit
  • Customize BoDi container which used in before scenario Hook, in this demo, I added driver,pages to container
  • Use Explicit wait to help to findElement call WebDriverWait until the dynamically added element from the script has been added to the DOM
    WebElement foo = new WebDriverWait(driver, Duration.ofSeconds(3)).until(driver -> driver.findElement(By.name("q")));```
    
  • Tracking log using Nlog, see in folder specflow-uis
  • Use "Page Object Model" reason behind is Code becomes less and optimized because of the reusable page methods in the POM classes, also it makes code makes the code cleaner and easy to understand.
  • Logging
  • Nlog
  • CI - Azure
  • SpecFlow+ LivingDoc

Api

  • Validate Response using RestSharp
  • Response Status
  • Response Headers
  • Response Body
  • Send and verify HTTP request
  • Post/Get/Delete/Put
  • Execute request with Powerful Generic Deserialization (more explanations please see below)
  • Parallel Execution using Context dependency Injection(see videos)
  • Reporting
  • specflow-living doc
  • Test Assertion by Specflow.assist CompareToInstance
  • Include Authenticators
  • JWT
  • Basic Auth

Cypress

  • end-to-end
  • Integration testing which only written in
  • JavaScript
  • Page Object
  • Continuous Integration

Appium

  • Testing frameworks TestNG\
  • All capabilities, playback and delay settings are configurable through config file.\
  • Supports video recording of tests\
  • Supports capturing screenshots for Android\
  • Provides inbuilt assertions to verify the device elements.\
  • Supports Android Emulators.

Jiali Z's Projects

appium icon appium

:iphone: Automation for iOS, Android, and Windows Apps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.