CreamBro automation framework

The "Smokey" is C# oriented automation framework for any kinds of automation tests for big and complex software systems.

By this framework you can automate API tests, DB tests, Web site tests with using Selenium and other same technologies, Windows desktop application tests with using "CodedUI" and other technology like "AutoIT" e.t.c.

You can create many different regression tests and suites, easy to support them, you can launch tests in any environment you want like "Amazon", "VMware" and others. All possibilities that gives you C# you can use without any restrictions.

The framework is totally free and open source, so you can customize it as you wish.

Biggest advantage of "Smokey" framework is possibility to store your test cases logic in different level than your test code. It allows you to write test function once and use it many time in any order according your test case without recompile your code every time when test case logic has been changed. It means: your test logic are not hard coded now and your code is not duplicated and completely reusable.

"Smokey" framework allows to build automated test cases by using friendly UI and by person without any programming skills. It means you can save money and to hire one programmer to write test code and making of automated tests you can to entrust to manual QA team.

The architecture of different layers is as follows: - your test functions placed in DLL files and your test cases in XML files.

layers scheme

The framework includes "Runner" which is "runner.exe" console application that executes your tests. It takes your XML scenario files as parameters.

layers scheme

Due to the fact that Command prompt cmd.exe console is limited (2047 or 8191 characters) the runner supports test suites file execution when number of regression tests is huge or you want to store your tests in different test suites. The test suite file is simple XML file with list of scenarios XML files to execute.

layers scheme

Inside the suite file is list of test files

layers scheme

"Smokey" framework supports variables on scenario logic level. You can predefine set of variables before scenario execution (runner initializes all scenario variables before each scenario execution) and to store variables in scenario configuration file. To execute scenario and configuration file with predefined variables use -cfg key in command line.

layers scheme

In suite execution file the configuration file per each scenario is defined in attribute "configfilename", as you can see on suite execution file image.

In additional to this you may define variables in real time scenario execution and use them untill scenario is running. Framework gives you an interface to define scenario variable cController.SetVariable("VariableName", AnyObject); It means that you can write in your DLL library next function

			Set_ScenarioVariable(String Varname, String VarValue)
			{
				cController.SetVariable(Varname, VarValue);
			}
			

and to call Set_ScenarioVariable() from your scenario. After execution of this function you may use declared variable value in your scenario as ${Varname}. Also, inside of every function in your DLL library you may call cController.GetVariable("VariableName"); that retrives a value of declared variable and such way you can use declared variables on code level too.

			PrintScenarioVariable()
			{
				String MyVariable = cController.GetVariable(Varname);
				Console
			}
			

Scenario level variables using example:

Scenario level variables using example:

UI scenario builder studio

layers scheme