Selenium is a high quality open source test automation tool for web application testing. Selenium runs in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh, Safari on the Mac, with plans to support Safari on iPhone soon. Selenium test scripts are portable, can be run from browsers (using Selenium IDE) or from JUNit or NGUnit (using Selenium RC) etc.. For example, test scripts written using Selenium IDE in Firefox on Windows can run on Firefox in Mac or Linux, without changing any code. Selenium tests run directly in browsers and so matches the end-user experience closely.
There are three variants of Selenium, which can be used in isolation or in combination to create complete automation test suite for your web applications.
Selenium Core - In Selenium Core the tests scripts (written in HTML) and the Selenium Test Runner (written in Javascript) are uploaded to the same web server that hosts the application you are trying to test. It is a simpler form of Selenium, and suitable for non-developers, but it has some inherent limitations.
Selenium IDE - Selenium IDE is a Firefox plugin, which includes the entire Selenium Core, allows you to record, play back, edit, and debug tests in browser. It provides the simplest introduction to Selenium and is highly recommended for beginners. You can save the tests / test suite created in xml or html format. However to run them in an automated fashion you need Selenium Remote Control which is described next.
Selenium Remote Control - The Selenium Remote Control allows you to develop test cases and test suites in Java (supports JUnit & NGUnit), PHP, Ruby, Python, Perl and even .NET. It is the most flexible setup but requires some development knowledge to set up and use.
Selenium Grid - Selenium Grid allows several Selenium Remote Control servers to be accessed in parallel by Selenium Grid server. This is extremely useful for automated load and stress testing of web applications.
Today we will discuss on how you can easily create automatic test scripts using Selenium IDE and convert them to JUnit tests (which uses Selenium Remote Control) which can be added to your JUnit based automatic regression test suite.
Tadalist is a popular free online todo list manager with sharing capability but without fine grained permission control. Here is a list of 5 must-have features missing from Tadalist (add yours below):
Semaphore is used to restrict access to shared resources, such as shared memory or to limit the number of processes that may simultaneously use a resource, in a multi-process or multi-threaded environment.
In php using semaphore a process must wait while accessing a shared resource currently used by another process. But this may not be required for all cases. Sometimes we need to just verify whether a resource has been locked and move on. Unfortunately we have no way to check the status of a semaphore lock in php. Let's see how we can implement non-blocking semaphore access in PHP.
You have commonly heard terms like eCPM, CPM, CTR, Page Impressions, Page Views etc. What do they really mean. How are they related to each other? Let's explore these terms and their relations.
With automation in place (and fully updated database) this time we were able to deliver the latest updates for Translator Plugin Pro 5.1.1 and Translator Plugin Gold 1.1.1 before we even made the announcement! This is a big milestone. Previously it used to take weeks to deliver the orders. Read below for details and what to do if you didn't receive your update.
More News
- (Why) Mac Laptops Are Most Popular With Software Developers & Press at JavaOne 2008
- I Am Not Internet Service Provider! - A Look at Trust on the Web
- Mysterious Call From Microsoft Inquiring About Windows! … Evil Nexus With Dell?
- The Pain of Watching Someone Helplessly Die in Live Coverage…
- Are Most Link Extractors (Including WordPress Comment Link Extractor) Wrong?
- How To Fix Buggy PHP strip_tags Function
- How To Protect Linux Server From Stolen Zombie Netblocks & 100% Professional Spammer Controlled Netblocks
- Beware GMail Goofs Up On Spam Protection
- How To Answer Strange / Weird or Inappropriate Interview Questions
- Experiences & Insights in Adopting Agile Development Methodology in Corporations
- Game Review & Tips: Battle For Wesnoth
- How To Setup Postfix To Relay Outbound Mail Using SASL
- How To: Load Balancing & Failover With Dual/ Multi WAN / ADSL / Cable Connections on Linux
- A Thought Provoking Post From Past - Google & The Puzzle of Dropping Eggs Or What Makes Web 2.0 Click
- No More Spinach for Popeye
- Top 5 Reasons Why BSNL DataOne Broadband Sucks
- Java is Slow Revisited
- ExtJS Hack: Dynamic ComboBox & Remote On-Demand Loading With Local Filtering
- The Problems Of Quantifying & Measuring Service
- MySQL Tip: MySQL Server Has Gone Away Or Lost connection to server during query Fix
- Understanding Colocation, Dedicated Hosting, Managed Hosting & Fully Outsourced Solutions
- RapidShare Hack: Bypass 1 Hour Download Limit on Linux
- Understanding Translator Error Page
- Subversion: How To Ignore Files From Status Display
- Angsuman’s Translator Plugin Pro 5.0 Released
- Translator Plugin Pro / Gold 5.0: Multiple Engine Failover Support
- Understanding Race, Religion, Politics, Sex & Bigotry
- How To Read / Write Excel Spreadsheet From Java
- Understanding Automatic Machine Translation
- When You Don’t Receive Your Translator Plugin…
- How To Setup BSNL DataOne Broadband on Linux / Fedora Core
- WordPress Comment Spam Protection: Comment Guard Plugin Beta Release
- Welcome To The Lemon Law Site
- Satellite Navigation Responsible for Increased Accidents?
- On Comment Guard - WordPress Comment Spam Prevention Plugin
- Is Google AdSense Losing Its Relevance?
- The Big Void In WordPress Comment Spam Protection
- Translator Plugin Pro Translating Even Admin Pages: Bug or Feature?
- Meebo, Online Instant Messenger, Review
- Angsuman’s Translator Plugin Pro Version 3.1 Released
- Proposed Features For Angsuman’s Translator Pro Version 4.0
- Angsuman’s Translator Plugin Pro Version 3 For WordPress 2.x Blogs Released
- Angsuman’s Translator Plugin Pro Version 3.0 - New features & fixes
- The Lies Of Embryonic Stem Cell Research Objections or One Woman With Two Souls Ridicules Religious Zealots
- On Java And Ruby Communities
- One in Ten in UK “Victim of ID Crimes”
- How To Shutdown & Poweroff Microsoft Windows From Command Line Or Shortcut Key Combination
- When Windows Genuine Advantage Becomes Genuine Disadvantage
- YotoPhoto: Free Image Search Engine Review
- Reasons For Ditching Mac In Favor Of Ubuntu Linux
- OpenDNS: A Valid Web 2.0 Business Model; Is It Good For you?
- Microsoft Sues Windows Resellers Alleging Piracy
- How To Handle Exceptions From Static Code Block in Java
- Human-To-Human Bird Flu Transmission Confirmed by WHO
- CRM Software (ZOHO CRM) Goes Ajax
- Top 10 Java SE 6 Features
- How To Use cURL (in PHP) For Authentication And SSL Communication
- How To Use SAJAX (AJAX Framework) from HTML
- Top 10 Java Features (or What Makes Java Great)
- Recommended Firefox Extension - Flash Block
- Java / J2EE Needs to Add Ease of Use (Redundant) Methods
- Work Progress on Taragana’s Automatic Machine Translator Plugin v2 (WordPress)
- Angsuman’s Authenticated WordPress Plugin - Password Protection for Your WordPress Blog
- The Viability of Java Applet Based Web Applications
- Feedster & FeedBlitz Shines in Customer Support
- Toilet Disposable Cellphone
- Tips on Java Enhanced For Loop
- Saving Marriage SaveMyAss Way
- Ruminating on Design
- How to Add an AIM Buddy Icon to Trillian
- Java EE 5 (formerly J2EE 1.5) Unanimously Passes Public Review Ballot; Promises Ease of Use
- Are You Being Sub-Dosed by Your Doctor?
- Breaking News: European Study Reports Halting of Progress of Type 1 Diabetes by Drug Anti-CD3 Antibody
- How to Fight Against (sub?) Human-Written Comment Spam
- Furl is destroying Google rank of websites with 302 redirect
- Full Feed or Excerpt only in RSS Feeds?
- Understanding the Role of Manuals in Software Development
- Understanding $_SERVER['PHP_SELF'], $PHP_SELF, $_SERVER['REQUEST_URI'] and $_SERVER['SCRIPT_NAME'] in PHP and when to use what
- WordPress Plugin: AdRotator - Ad Rotating Solution for your Ads (including AdSense, Clicksor, Chitika etc.)
- Dr. Richard Stallman is talking nonsense; A look into Java Trap
- Research discovers response to beta-blocker therapy genetically pre-determined - must read if you are on beta-blocker therapy
- Salivating about Open Source Software - Pavlov’s conditioning?
- New study gains significantly better understanding of antibiotic resistance, leading to new antibiotics development
- Is there a method to Google’s madness?
- Two new clinical trials for NASH (Nonalcoholic Steatohepatitis) treatment with Vitamin E, Metformin and Pioglitazone
- How ___ to develop great software: A Guide
- Back to the drawing board on category feeds
- Asbestos menace in India
- Problem with bazaar style of development
- Mini Porting guide of Linux Applications to Windows + NailGun (for faster startup of Java Apps) Windows Port Available + Review of NailGun
- Myer-Briggs profiling…
- On the limits with JDK 1.5…
- JUnit: A critical look
- Yet another object database on RDBMS backend: A new project
- To Hibernate or not? - A commentary on ORM’s and few recommendations