Selenium Automation Framework - frameworks

I am user of Selenium RC with java for a quite long time. But till date I am not able to find the best framework for Selenium RC scripts. I would like to know the following details,
a) What are the different frameworks available for Selenium RC?
b) Which is the best one for Selenium RC with Java?
Help me with your answer, please also provide the supporting URL so that I can have some basic idea about the frameworks and chose the best one for my project.
Thanks in advance

We have been using OpKey, a framework on selenium build by CresTech. What we liked about it was out of box Object map and data map implementation..For us script maintenance was a issue we were struggling with.I would recommend OpKey

We use TestNG. In addition to providing a JUnit-type organization for system tests, it supports data driving and has scope for Continuous Integration.

Page Object - [http://roadtoautomation.blogspot.in/2015/02/page-object-model-for-selenium-webdriver.html]
Keyword Driven Framework - Keyword-based test design and test automation is formed on the idea that the discrete functional business events that make up any application can be described using short text description (keywords). In this framework testers to develop test cases using Microsoft Excel using a list of keywords. When the test is executed, the framework
processes the Excel workbook and calls functions as sociated with the
keywords entered in the Excel spreadsheet. These keyword functions in
turn perform specific actions against the application under test
(AUT).
http://seleniumeasy.com/selenium-tutorials/keyword-driven-framework-example
Data Driven Framework
https://www.youtube.com/watch?v=FSiba01-R2M
Hybrid framework - Combination of Keyword and Data Driven framework

Related

what are the pitfalls in implementing Dynamics CRM integration using plugins?

We are trying to choose an approach we should follow in integrating on-promise Dynamic CRM with other companies and third-party software and systems, we use in our company.
Concerning this msdn page: https://msdn.microsoft.com/en-us/library/dn932127.aspx we have some options. But my team members want to implement integration through service calls to external systems inside plugins.
I am talking about Data Integration and Data Synchronization for a total solution that Dynamics CRM is a part of it. Considering the limitations in plugin and the options written in the mentioned msdn page, I think bringing the integration code and logic out of the CRM stuffs and encapsulate it in into a separate connector solution would be a better solution. The connector of course
should support real-time and offline or on-demand data synchronization.
I want to know what are the disadvantages/advantages in plugins approach in integration with external systems, and what are advantages/disadvantages of using a connector solution?
Thanks
Implementing integration to third party system within plugins can be a good approach. You should be aware of how plugins work and how the result of your integration affects the success or failure of the database action that triggers the plugin. Some important items to consider:
Is the database action dependent upon a result from the integration. For instance if your integration is verifying/modifying your data, you may want the result of the integration to affect what is written to the database. Such a plugin would probably be registered on a pre plugin.
Should the database action go through if the integration fails? Many integration are done in a post plugin outside of the transaction so that if the integration fails it does not cause the database action to fail.
This really sounds like something you might want to solve using tooling outside of CRM. For example Scribe, SSIS (with Kingswaysoft) or some ESB type application.
Especially the first two provide no-code solutions and would probably have a lower TCO than writing your own plugins.

Ninject + Windows Forms Application

I'am using Ninject + Windows Forms to build an application.
Mark Seemann (Injection in .NET book Author) says: Only one call of container.Get<> must construct all object gaph of your application.
I can't think a logical way to do that.
I was searching and wasting a lot of time for one code sample about how to do it, but i can't find.
On my application i have a Menu Form that call many other forms each one with your respective service (e.g ICustomerService).
Someone can help me with a code sample of a Windows Forms application with 3 or more forms each one calling another with Ninject?

How to go about implementing Specflow with WPF app using MVVM

We have an app which is developed in wpf + DevExpress using MVVM pattern. We need to implement Specflow with MStest on viewmodel level.
Have anyone tried this? Any pointers? Is codedUI any good at viewmodel level?
I had two thoughts when I read that question.
First - think if you really need to automate everything through the UI. With an architecture like MVVM you have a great opportunity to hit the application beneath the UI and still get a lot out your test automation. For example write your step definitions against the ViewModels.
Testing against the UI easily run the risk of creating brittle tests. The UI is the part of most application that changes very frequently. Tests hitting the UI need to cope with this somehow (more on this later).
Secondly, for the things that you need to automate against the UI, consider using White which is a nice object oriented abstraction above the UI Automation Library. I've used it extensively and like it.
With any automation be sure to create an abstraction over the actual automation, with the driver pattern for example. A simple way to do this is to create a screen/page object that have properties and methods to interact with the screen/page in question. Your step definitions then uses these wrapper objects.
Keep your step definitions thin and your wrapper objects fat. A bit like a controller in the MVC-pattern. More on this here
I hope this was helpful
Well I haven't tried it but I can't see anything wrong with it. By using specflow you create methods to do one thing say "The user presses the about button" and your code would be something like this
[Given(#"The user presses the about button")]
public void TheUserPressesTheAboutButton()
{
this.UIMap.PressAboutButton();
}
You may have to fiddle around to create all the methods but it's not a big deal. There's a simple guide here. Something that could be a glitch is the naming and identification of the controls so that CUIT builder would be able to find them.
Yes. It works pretty good. The biggest challenge is really defining your sentence structure and Given/When/Then statements so they are consistent and re-usable. Otherwise you end up with Tags and 5-10 givens for a single method. Not really maintainable.
We used Specflow for unit testing MVVM as well as other business components. The Given statements would basically setup the mock data, then execute the test:
Given I have created a database context
And it contains the following Books
|ISBN | Author | Title |
...
I also used specflow for Functional Testing (end to end) for automated testing via TFS. A database and server are deployed (with real or test data), then the functional test suite is executed against that server/database (creating data, modifying data, etc).

Searching workflow/process tool based on ZF

Does anyone know a workflow system based on Zend (or php), which is open source and can be integrated in a project? What do I understand as workflow system:
User starts a workflow through submitting some start parameter (e.g. SOAP/HTML request)
Zend runs the workflow in the background (on high server load the operations are lined up in a queue)
Workflow may be build out of several modules/actions e.g. export xml > create pdf > send pdf to user > send email (Backend)
User sees current status of the running workflow online and gets the result as soon as finished through ajax requests to the server. (User Interface)
Admin has a overview of general running workflows (Admin Interface)
Thanks for your hints!
If I understand correctly, the workflow is just a pre-defined set of actions.
I don't believe there is a ready tool for this, but I think you may be interested in running a set of cron jobs from the Zend Framework CLI (e.g. building your own Zend_Tool Provider) and in Zend_Queue.
You might want to use the right tool for such task - eg. Gearman. It is a piece of software solely for the requirements you described. See more here:
http://www.slideshare.net/felixdv/high-gear-php-with-gearman
http://weierophinney.net/matthew/archives/240-Writing-Gearman-Workers-in-PHP.html
You may want to try eZ Components Workflow library: http://www.ezcomponents.org/docs/api/trunk/introduction_Workflow.html
This post describes how to integrate the eZ Components library with Zend:
http://devzone.zend.com/article/156
Other than that I haven't found any real examples of integrating the eZ workflow classes with a Zend MVC application.
Symfony has a component for this. http://symfony.com/doc/current/components/workflow.html
Oro platform has a bundle for this.
https://github.com/oroinc/platform/blob/master/src/Oro/Bundle/WorkflowBundle/Resources/doc/index.md
Otherwise, you could build your own implementation based on maybe the State design pattern. Here is a nice example from Sebastian Bergman.
https://github.com/sebastianbergmann/state

Using the Validation Block of Enterprise Library with Entity Framework

We've used the Validation Block of MS Enterprise Library for some time with great success in conjunction with custom DALs but we've recently started using the Entity Framework and can't get the Validation Block to work with it. The objects are dynamically created in EF and putting attributes on top of them will simply get wiped out when the models are re-genned.
Can these two co-exist? If not, does anyone have any recommendations for what validation library/simple rules engine would be a good candidate to use along with EF?
Thank you.
You need a validator which supports a "buddy class" (like this example for Dynamic Data). This seems to be a work in progress for VAB. I can't find an example of anyone actually using it yet, but it might work.
Validation Application Block supports the concept of configuration based validation. This way you can separate your generated domain entities from validation. You can use the Enterprise Library configuration tool for this. Simply right-click on your configuration file and start adding validation configuration.
I advise you to read the VAB Hands on Lab document (ValidationHOL.pdf) which is included in the Hands On Lab download. After reading that document, read this article. It explains how to integrate VAB with Entity Framework.
Good luck.