One of my friends, working on Rainbow Framework requested me
to write about Rainbow and Selenium automation. Hence I am writing this post.
Software systems are becoming more complex and can handle
the real time data as well as process large data seamlessly with higher performance.
The issue with such complex systems is maintenance. Any real time systems like
IP Phones, Video conferencing, application sharing should be always up and
running.
However all the systems require maintenance due to the
following factors –
-
System issues – One of the service components suddenly stops performing bring the entire system download
-
Environment changes – The outside network
changes distortion to the system or failures
-
User Requirement- User is expecting high quality
video, multiple streaming through different systems, Usage of handheld devices remotely
Etc.
These things cannot stop the entire system or should not
pause, so it requires some mechanism to do the self-adaption to changes and
appear the system working seamlessly without service disruption.
If such bulky and complex systems will have the
self-adaption logic built within the system then it will become more complex
and difficult to manage. Hence such self-adaption module will be separated and
kept aside. These types of arrangements are called External Mechanism.
External mechanism will have properties like Ease to
maintain, Cost effectiveness and Combined (Performance, Cost and Security).
Rainbow framework fulfills all the above requirements; the
rainbow framework is to divide the external mechanism software in two parts.
First part is general reusable part and second part is changes to deploy on
specific target.
Let’s not get into more details of Rainbow framework here;
we will see applying Selenium automation with this framework.
Architectural and adaption includes components, connector
types, properties and operators. This will be different software components
with in system. Using Selenium Webdriver we will create a wrapper around each
change and run it during each change.
Here we need to write different java functions and create
wrapper to work with rainbow framework.
Let’s discuss the generic step by step process –
1.
We will create a library file to add all the
generic functions, global functions and global variables
2.
We need to hold the time and logs
3.
Require reporting capabilities so require report
file
4.
We need transactions file to hold the
components, connector types, operators information
5.
We will create junit / java file as runnable to
run externally
6.
We will create repository to store all the
properties
7.
We need one driver file; driver file will be
called by runnable file
The Rainbow framework will change the component within
predefined time using connectors and operators. If the time required is more
than predefined time then this will be treated as a system failure or violation.
So we need to keep the selenium script up and running after each change to test
is the changes has been made as expected. Rainbow Framework provides a reusable
infrastructure for architecture-based self-adaptation through its separation to
two parts; general part and tailor-able part.
Selenium code should be written
in such a way that it will be verify the tailor-able part.
The selenium code eventually evolves to the extent that the
framework will be completely wrapped (Functions) with the selenium code. Each tailor-able
part will call the selenium script to execute and will generate the report.
Happy Scripting!
Hello Sir, I need your help to implement this framework
ReplyDelete