my colleagues suggest me to learn and create a fully functional -
generic framework which any team can use?
I suggest you don't. Your coworkers suggest you to start over-engineering. It is fine to experiment.
Automate a test, automate another one. Maybe a reusable abstraction emerges. Maybe this becomes a reusable framework. Practise the YAGNI (You aren'...
If the Java GUI application is based on Swing, AssertJ Swing is probably one of the best open source libraries. It's a fork of FEST and has several advantages:
Simulation of user interaction with a GUI (e.g. drag 'n drop)
Reliable GUI component lookup (by type, by name or custom search criteria)
Support for all Swing components included in the JDK
Right now you might not see much need for a single repository design. Later, you may find your opinion changes.
You might want to use a single repository if
you need to keep your different projects in sync. It's more difficult to keep separate repositories in sync than a single repository.
your team members will need to switch between ...
I think you are missing out the definition of "Framework"
A framework is comprised of a combination of practices and tools that are designed to help QA professionals test more efficiently.
These guidelines could include coding standards, test-data handling
It is open source tool, anyone can download & use
It supports various operating environments (Windows, Linux, Mac etc...)
It supports various programming languages to create and execute Tests
It supports all popular web browsers
It supports parallel test execution
It uses less Hardware resources as compare to other popular tools like ...QTP/UFT
Open source, active contributions 24/7
Wide range of supported languages
Lots of online resources
Good multi browser support / Parallel testing
Excellent for what it does (when you learn to implement it properly to prevent flaky/brittle tests)
Easy integration with the likes of Maven/TestNG/Jenkins etc
Multi OS support
Lightweight in terms of ...
I know about several open source tools hosted on GitHub but didn't try them yet. Just created a list for future learning. Any additions and comments are welcome.
TestFX - 213*
Automation (Groovy & Java) - 48*
swinger (JRuby, Cucumber-based) - 47*
Marathon - 31*
Window Tester - 5*
This list might be updated in the future. I'm maintaining it at the ...
Adding to the awesome and very detailed existing answers. There is a well-known success story of using a single large repository - Facebook and Google. As of 2014, Facebook's main repository was 54 GB in size. As of 2016, Google's main repository had 35 millions commits.
One of the most important advantages of having a single repo is atomic commits across ...
Running all tests at once is something that a Continuous Integration server should do for you, not something you do manual as it lets you wait for a long time. Let a server do the work and reporting.
Multiple repo's have the following advantages:
Easier to schedule parallel-runs in a CI. Will be faster. (technically also possible with a single repo, but ...
When you set out to solve as general a problem as "something that can be used to test just anything", the programming language you use to code the framework is less important than the abstractions you support. That is where I would start.
I would apply KISS and YAGNI principle: Keep It Simple, and You Ain't Gonna Need It.
Start with one, and split into separate repositories when you can see the business need for it, and benefits.
I agree with @KatePaulk with pros and cons, but when no obvious benefits, I would go with simpler solution: single repository.
You are doing something very weird. JMeter threads are totally independent and each thread has its own context, variables, cookies, etc.
If you have 1 thread - it will execute 8 requests in sequential order (upside down)
If you have 2 threads - each of 2 threads will execute 8 requests in sequential order
So I would recommend removing your ...
Pros: you can start writing cross-browser code in your favorite programming language in a matter of hours
Selenium tests are unstable.
WebDriver libraries version trail the auto-updating browser and there’s always something small that doesn’t quite work. Often when you get the new version of the Selenium libraries that is supposed to fix the issue, ...
Are there any courses/books online to learn automation framework design in Java?
In my case, I started learning with online videos about Java (focus in selenium). In my case, it was more helpful (and to be honest more convenient to learn via online video tool) I started with the link from Angie Jones Courses. There you will find good online videos. Also ...
I think the first sentence on Wikipedia says it clearly enough:
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software.
[ https://en.wikipedia.org/wiki/Software_framework ]
To say it in ...
Since you are just getting started with your test automation journey, imagine you are given an application and some test scenarios to automate. You use your knowledge of Selenium and TestNG and you start creating few Classes and Methods to perform operations on the UI controls as per your test cases.
Using TestNG you manage to execute those tests and you ...
As a shorter way, Its a base structer or the foundation to write automation test scripts for different componets (web, mobile ... etc).
A good framework will provide solutions for some of below limitations or the issues.
Handling scripts and data separately.
Creation of libraries.
You've correctly spotted the problematic use of dynamic ids, that makes it hard(er) to write and maintain tests with Selenium.
I'm not entirely sure, but it should be possible for the developers to add (unique) names to each widget, making stuff easier to find.
Regarding your question, 'what are the tools', I suggest you take a look at Sencha's own testing ...
Normally what you call a Test Runner is a part of testing framework that is responsible to define which code of yours can be considered a test code and that is responsible to execute the test code. Test runner does not make sense with no respect to test framework as well as vise versa.
From the comment to answers, @Crustyeyelids, there is a big misunderstanding. There is a big difference between:
"Selenium IDE" (small part of the Selenium project) and
Selenium project with all the components: Grid, Webdriver, Selenium Server (and IDE).
Selenium IDE is almost useless, for real production tests.
Selenium (project) is W3C standard for ...
Marathon is an OSS Test Automation Tool which has main features to record, playback the events performed on AUT.It allows to debug the test scripts recorded. The test scripts are created in Ruby (Older version supports Python also).
It also has features like Object Mapping , Allure Report Generation,Test Organisation(Features and Stories), Reusable Modules ...
Swing Testing Toolkit (uses a semi-automatic test case generation approach aimed at reducing testing instructions to the bare minimum while ensuring that they are as relevant as possible).
It is not a universal GUI testing framework. It focuses on a single library (Swing) to guarantee its level of quality.