Git Product home page Git Product logo

swd.starter's Introduction

SWD.Starter

SWD Starter Java -= SWD Starter C# =- SWD Page Recorder

🍎 Installation Prerequisites

In order to download and start using the project you have to install:

I personally recommend to use Chocolatey in order to perform such boring operations – automatically.

🔻 Download SWD Page Recorder

Logo

Inaccurate instructions

1. Run Page Recorder
2. Open SWD.Starter / src / SWD.StarterKit.sln
	2.1 Copy 
		* chromedriver.exe
		* IEDriverServer.exe
		into folder webdrivers
	
	2.2 Build the project

3. Record your PageObject with Page Recorder
  
4. Generate code with template "[CSharp] SWD Starter PageObjects"
5. Follow the instructions inside generated code
	5.1 Implement Invoke() and IsDisplayed();

6. Run the tests (set browser in the file "Config.config")
   swdBrowserType
   default is Firefox

Doxygen documentation generator

Just don’t forget to run SWD.Starter\doxygen_run.cmd and enjoy your framework API documentation!

See generated SWD.Starter\docs\api\html\index.html

Logo

Core concepts:

  1. Share the opened browser instance across different test cases – because that is how the most users do, e.g. they do not close the browser after each action.

  2. If you really want parallel test execution, just run parallel processes… Multithreaded tests implementation inside a single process would add complexity to the code and kill your workstation performance.

  3. Start using PageObjects – or your code will turn to real crap soon.

  4. Are your 3000 UI tests took too much time? – You are doing something wrong when you want to test everything through UI. Consider 20 high level (UI) to 80 low level (HTTP Requests / Database / Unit) tests ratio.

  5. Decouple your code: avoid copy-paste approach as long as it is reasonable:

    • When the duplicated code in unique only for the given suite – create a separate method inside the suite
    • When the duplicated code can be used globally across the project – move it to a special BusinessSteps class or to the specific page object class;
    • when you code just extends WebDriver functionality and has no connection to your test project logic – move it to the framework core assembly.
  6. When you work with PageObject, it is OK to create a lot of small methods with business logic oriented names. E.g., if you have the code, which opens a new project form:

btnNewProject.Click();
WaitForAjax();

Then just move it to a separate PageObject method:

var newProjectForm = projectsPage.OpenNewProjectForm();
  1. Be proud of your code

📚 Useful Materials

📘 Test Automation Framework methodology

⚠️ read this only if you understand Russian... Otherwise... you will not understand anything. LOL: Заметки по архитектуре и методологии фреймворка

⚓ External Articles in English:

⚓ External Articles in Russian:

📹 Videos

:octocat: Original Github open-source Projects

🔎 About Dmytro ;)

swd.starter's People

Contributors

dzharii avatar

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.