Convert/execute QTP scripts from Selenium - selenium

We are currently migrating a project from QTP to Selenium. We have a few QTP scripts used for regression testing in the project, and we want to avoid the work of rewriting them. Is there any way to execute the old QTP scripts from any Selenium framework or IntelliJ IDEA or Eclipse etc without QTP?

No, not in normal situations. QTP is an expensive, commercial tool and if there was a way to easily run the scripts outside QTP, HP would have had a bad business case.
You'll have to rewrite your code into Java code. Maybe there are some VB to Java convertors (note: QTP scripting language is VBScript, not VB) that could make some of the work easier, but I wouldn't bet my money on them. Java is a very strong typed, object oriented language, while VBScript is a very weak typed much more functional language. Even if you had a converter, your Java code would be very crippled.

I would say, not in any situation. There is a possibility of executing QTP scripts from outside, but not without a QTP license.
There is no automatic converter from QTP to Selenium that exists yet either.
While it's understandable that you don't want to lose your existing QTP scripts, it would be best to start working on writing Selenium tests now rather than later.

I think if the scripts are made in Jscripts , it would be easy at some extent , we can execute them on Selenium the lines which are not Inluced with Application Objects(Browser,Page,Field). There are few problems existed with Excel stuff, File System objects...etc, since Selenium(Java) we are importing few package concepts while we are handling certain objects. I think there are more difficluties involved while we are converting them and executing the QTP scripts in Selenium. Instead of that It would be better if we start Selenium coding from Scratch.

Related

What open source software should I use to write scripts to test for no errors on a site?

What open source software should I use to write scripts to test for no errors on a site?
Could I / we write something better ourselves if there a limited number of goals outlined?
- yet flexible enough to take on new rules etc.
The only consistent response we want is no errors, period.
I know Java, ASP and scripting languages if that helps.
Thanks!
Selenium is one good Website automated testing tool. It allows macros as well as hand-written scripts. Also has support for Firefox browser.
Understanding of Java should suffice.
You can check it out at http://seleniumhq.org/
Another good open source alternative is HTMLUnit http://htmlunit.sourceforge.net/
Again this requires knowledge of Java
You might want to consider the robotframework, combined with the selenium2library keyword library. It lets you write very human-readable tests and gives very nice reports. It integrates nicely with jenkins. Robotframework is written in python, and can be extended with python. It allows you to create data driven tests, BDD-style tests, or more traditional procedural tests.

What are advantages of using WebDriver over IDE?

I am new to Selenium and have spent about a week using IDE. So far, so good. However, some other parts of our application involve heavy drag-n-drop capabilities, and I'm not so sure about that...which brings me to my question...what type of specific things can WebDriver do that the IDE cannot do? I read the Selenium front page, and know that WebDriver can make more "robust" tests, but I'm not entirely clear what robust means in this context? Longer? More capabilities?
What I'm looking for is what type of particular tests could be run with WebDriver that couldn't be run in the IDE? And are any of them related to drag-n-drop? This will inform my decision about whether to keep on using the IDE or to switch over. I think it's better to use something from the beginning than to create a lot of tests and then switch over.
Thanks much in advance.
You can use the full features of your chosen language. For example, using the IDE you are stuck to using the IDE's API, however if you choose to use the WebDriver explicitly you can combine it with C# and use C#'s full features (such as LINQ).
A few of the IDE commands are not directly converted with the WebDriver.
You can integrate a pure WebDriver test into a CI (Continuous Integration) server.
It is not limited to just Firefox, whereas the IDE is (since the IDE is only available in Firefox).
You can improve and extend Selenium more easily. For example using Extension methods and inheritance. (For instance, extending Selenium so that whenever it cannot find an element, it takes a screenshot of the page)
It will be more robust, as the IDE will not always give you the most reliable way of finding an element. For instance, if the element you require is nested within a table, the XPath that the IDE will give you will infer directly to specific table rows and cells.
For instance something like this:
//table[1]/tr[1]/td[2]/table[1]/tr[1]/td[3]/a[1]/b
Is not the most reliable XPath in the world. Those without any knowledge of XPath or automated testing or how Selenium works, will stick with that and then waste hours figuring out why this XPath query fails. Others will change it, and just use the XPath as a base query.
The IDE should usually be used for those who don't have much programming knowledge (e.g some testers), if you want your developers and/or the test developer's to use Selenium, go directly with the WebDriver. It will feel more like programming with a fully-fledged language instead of scripting (after all, the scripts that the IDE generates are purely HTML files). The idea is generally for those who don't have much programming knowledge to simply hit 'play' and let Selenium do the work.
Drag-and-drop are applicable within the IDE and WebDriver.
Most of the development in Selenium (it seems) goes into extending the WebDriver code, the IDE may be left behind in some new features.
Using WebDriver directly, you can also use the full features of a unit testing framework (usually NUnit with C# or Junit/TestNG for Java). This allows things like repeating tests for each browser (i.e repeating tests in Chrome, Firefox and IE) or defining certain logic before and after tests (i.e adding user memberships, creating users, setting up other test data).
Fellow developers might be more inclined to help out if it is using a programming language as opposed to a scripting language (ie WebDriver is programmed in a programming language, the IDE scripts are just HTML files). Putting it in your solution and having it as part of the nightly build process helps to ensure developers help out in your tests progression.
Thinking about it, another example is a bug is fixed but introduces a new bug which causes your test to fail. Who's responsibility is it to fix the test? You or them? Having it use WebDriver directly, they can just look up the source code to Selenium and figure out the API usage themselves. With the IDE, it is literally a HTML file that calls some javascipt. Not much documentation on it.
To sum up: if you don't have much programming experience, either learn a language and use WebDriver with it directly, or just stick with the IDE. Either will do the job.
IDE cannot be used for serious automation. I would sussgest learn the API and use it with Java/C#/Python. It will help you churn out some good automation and will payback really well.
You can always use the IDE to learn how the code is generated.

What are the scripting languages one should know to effectively use the Selenium tool for automation testing

I am a fresher and being hired as a Quality Analyst in a software firm in automation testing
I have been told to study the Selenium tool.
Can you guys help me in knowing that what are the scripting languages I should get in touch so that I can effectively and efficiently use the tool to give the very best output of mine,
Hoping for responses....It would definitely help me a lot in going in proper direction....
Thanks in ADVANCE
Not exactly scripting languages, but be very fluent with HTML and XML/XPath to easily work with pages and understand how they work.
Knowing a little about JavaScript will also come in handy. As for other languages, Selenium natively speaks HTML, but you can write test cases in any of the following languages (list is not exhaustive):
C#
Java
Perl
PHP
Python
Ruby
Native HTML test case can be translated easily to the aforementioned languages, pick whichever you like the most.
You can get all these details from seleniumhq.org site. Please check the documentation section . Also, regardless of the language you choose selenium features remain the same. So choose the language which you are comfortable with.
Adding to what others have already said, to begin programming with your favorite language using Selenium RC, you need to be familiar with the basic Object Orient Programming concepts.
To help you with XPath there are tools like XPather and Firebug which automatically fetch you the XPath of the element.
The perl language binding is quite reliable and up-to-date.
On the CPAN, the current release Test-WWW-Selenium-1.25 is from 28 Apr 2011. It's actively maintained.
Perl's Test Runners and TAP are cool. There are many other testing modules that you can combine with Test-WWW-Selenium.
Using E-P-I-C perl Editor for the Eclipse IDE, you'd get statement completion in your testcase files.
The Perl API calls are written in a slightly different naming convention: for instance, getEval becomes get_eval
but this is a minor point.
IMHO, the perl code template that Selenium IDE generates for you is ok, it can be adapted. (e.g. I prefer Test::Fatal instead of Test::Exception.)
Cannot say anything about the other language bindings.
Choose the language you are most familiar with, and start building up your expert knowledge of testing tricks, Selenium and browser idiosyncrasies. this will take a lot of time anyway.
For any kind of strong automation, you should know atleast one scripting language like JavaScript, VBScript etc... and one full fledged programming language like Java, C# etc.. benefit of learning java or #C is ... you are comfortable in developing complex solutions because of their OOP nature and Java,C# are widely used in IT Industry.
Robot Framework is a robust scripting engine and reporting tool for automation testing.

Selenium tests: html vs code?

Is it better to write/record selenium tests in html format and run them directly in the server with "-htmlSuite" or to write the tests in java/C#/... and run them in the server using selenium-rc?
What is the recommended solution?
I would always recommend people writing their Selenium Tests in a programming language because it allows the tests to be a lot more expressive.
You can create common methods that all tests use and if that changes you can then update 1 method to get n tests passing because they all fail on that item. One example of this is the Page Object model which is a development method for tests that suggest you create a DSL for each page you interact with and then your tests read a lot more fluently to both technical and non-technical people.
If you write your tests in a programming language you can also take advantage of Selenium Grid which runs your tests in parallel to make them faster
I'd highly recommend you look at moving to Selenium in C#, Ruby,PHP or Python. I found many timing issues resolving once I got away from the HTML Selenese.
I might keep in mind how you plan on executing your recorded tests. For instance, it might be trivial to incorporate Selenium's generated JUnit tests into a pre-existing JUnit-based testing framework.

Choosing an automated testing tool

My project is compatible only with Internet Explorer. I want the test scripts to get generated automatically as it is done in Selenium IDE.
Can i use Selenium RC to test my application? I could not use Selenium IDE as it can be used only with Mozilla Firefox.
seleniumrc works with IE. You can specify the browser and the path to it within the config file.
It can be easily integrated into night builds via ant.
stick to writing the testcase in java.
Selenium RC and Selenium Grid are both really good at running tests against IE. You can see all the browsers that are supported by Selenium here and Selenium is Designed to write for one browser and work in the rest. THere are a few little quirks that wont work in every browser but 99% of the time it will.
Selenium RC works with IE, but is very buggy with IE 6 (to the point of being unusable). Generating the scripts is not trivial and there are many methods of doing it. We have created a Firefox extension that examines objects via introspection to make click recording easy. There are many options out there but your best bet is to write your tests with Firefox/Firebug (or Chrome). They will make object location much simpler and if you are careful the locator strings should still work in IE.
There could be two answer to you question:
Besides Selenium, though it has ample of advantages, I am reading about another tool which uses same API which Selenium use. The only changes in API I have seen so far is it reduces the complexity of functions thus making it more easier and simpler for user who is learning.
The tool is called 'Helium' and it has 50% (and more) less complex functions and code as Selenium has.
The only problem with this tool is it is paid tool for learning purpose and for implementing not-so-big scale project you can use it. But yeah after some time its gonna cost you.
I have implemented some code on Helium. Please let me know , if you face any issue initially or you are thinking to implement it.
Other being, you can use Selenium Builder(http://khyatisehgal.wordpress.com/2014/05/26/selenium-builder-exporting-and-execution/) which is an advanced form of Selenium IDE. It imports your command in different languages and does work more effectively and efficiently as Selenium IDE does(http://khyatisehgal.wordpress.com/2014/05/25/selenium-builder/)
Please let me know , if you have any doubt in any of the tool.
I know Watin is compatible with IE and Firefox. If you want to generate the test code you can use the Watin Test Recorder
This of course is implying that you are using .Net
... Or you could just use the .net bindings that comes along with the latest couple of versions, then you can just run 'em through nUnit.
For ex. Selenium IDE users Katalon Recorder might be a good match. Supports different browsers.