Saturday, June 13, 2009

Revolutionary Testing Tools for AJAX Applications

Revolutionary Testing Tools for AJAX Applications

A few years ago, we used JMeter to try and load test a chat application we were building. Since the chat application used Comet and AJAX, I knew that the JMeter test was going to be grossly inaccurate. However, we did the best we could with tools that clearly weren't right for the job, as nothing was out there that could simulate an AJAX or Comet load test.

A few weeks ago, while working with some other consultants on a project, we discussed the use of Selenium to run some functional testing on a Firefox Extension that inserts signatures into an email. We needed a tool that could automatically send an email using Gmail, Yahoo, and Hotmail, and verify that the signature was still injecting. From my days writing HTML Reply Signatures for Gmail, I knew that this was indeed important, as any change by these third parties could have a drastic effect on the tool's ability to insert a signature.

Today, one consultant and I worked to try to insert an email address into the "To" field of the Gmail Compose window using Selenium. I've done this already in the Firefox extension, and anyone who has ever written a Greasemonkey script or Firefox extension that works with Gmail 2 can attest that this is not always an easy task if you are working outside of the API exposed by Gmail. Google engineers have put lots of effort in writing server-side code that ensures that all the id attributes in the Gmail application randomly change each session. Their creativity has sparked our creativity, and we have solved this problem. With enough time and patience, any problem can be solved.

Anyway, with Selenium, one must locate elements in the HTML of a web application by using XPATH queries. Armed with my trusty Firebug tool, I inspected the element in question and worked my way up the tree one element at a time, writing down the element tag names and positions at each step. Like a complex code, we ended up with long XPATH queries, a seemingly endless series of div[1]/div[2]/div[1]/div[1]. Although I would have preferred to just use JavaScript and a good for loop or regular expression to locate what I wanted, being a code cracker and approaching this problem from another angle was an eye-opener, XPATH is perhaps the way to go!

So that's a little background on my experience so far with testing tools. Selenium isn't a load testing tool of course, but it's a great tool to automate functional testing. It's almost like a macro recorder, similar to iMacros. Our plan is to set our test up on a VMWare image and configure this to run automatically every day. We'll get emails with our signature if it's successful, and broken or no email if it's not successful. We're also configuring it to be really loud and obnoxious if it does detect that something is amiss, just so we don't gloss over the automated emails.

Selenium can do functional testing, but what about load testing? Sure, Selenium can do load testing as well! Selenium uses real web browsers in testing, but it's up to the person doing the tests to go out and purchase the hardware to run the tests. In other words, if you want to do a 100 user load test with Selenium, you need to have 100 computers in your lab and 100 people to all click "Run" at the same time.

This is analogous to a symphony with you as the conductor who tells everyone exactly when to click "Run Test".

Of course, coordinating such an event can be costly, so one of the developers of Selenium Remote Control founded BrowserMob. BrowserMob solves this issue by providing the hardware. They claim to load test your web application using Selenium scripts and N number of real web browsers! I would be really interested to know how this was accomplished and how the costs have been kept so low.

To start, they probably use VMWare and Linux, which is one way to reduce the amount of physical hardware while still trying to simulate real hardware. They say they use Firefox 3.0, which is available on Linux. Finally, if Selenium Remote Control launches Firefox browsers to simulate functional tests, then my guess is BrowserMob is controlling a series of Selenium Remote Control instances, all running on VMWare Linux machines, and allowing BrowserMob to monitor the load.

While there are some costs associated with BrowserMob, I imagine one could use Selenium Remote Control installed on several VMWare images to run a small load test. If anyone has experience with either Selenium Remote Control or BrowserMob, I'd love to hear your thoughts on the two products!


kovalan Jayamurugan said...

Thanks for your informative post on selenium automation testing tool. Your article helped me a lot in understanding the future of automation testing tool and its career prospects. Selenium Training

hadoop training in chennai said...

Grateful for hadoop training in chennai your enlightening post on selenium mechanization oracle Training in chennai testing contraption. Your article helped me a mind blowing plan in comprehension the fate of robotization hadoop training in chennai testing instrument and its occupation prospects

Jamuna Pandy said...

Hi friends, This is Jamuna from Chennai. Your technical information is really useful for me. Keep update your blog.
Oracle Training in Chennai

john son said...

Thanks for sharing your innovative ideas..Its really useful and interesting...


Salesforce Administrator Training in Chennai

Victoria John said...

I get a lot of great information from this blog. Thank you for your sharing this informative blog. Recently I did PHP course at a leading academy. If you are looking for best PHP Training Institute in Chennai visit FITA IT training academy which offer real timePHP Training Chennai.

Emi Jackson said...

Cloud computing is storing and accessing the large data sets over the internet instead of your PC computer. So that you can manage the data and program anywhere through the internet.
Cloud Computing Training in Chennai

murali karthik said...

Java is one of the popular technologies with improved job opportunity for hopeful professionals. Java Training in Chennai helps you to study this technology in details.If you are looking for best Java Training Institutes in Chennai reach Fita academy.

Martina Christy said...

Hi, Your blog is really very informative and useful for me. Thanks for sharing this valuable blog.
Unix Training

jack wilson said...

Really awesome blog. Software testing is a method of executing the application or program with the intent of searching the software errors. Software Testing Training in Chennai offering this course at reasonable cost.

Stephen said...

There are lots of information about latest technology and how to get trained in them, like Hadoop Training Chennai have spread around the web, but this is a unique one according to me. The strategy you have updated here will make me to get trained in future technologies(Hadoop Training in Chennai). By the way you are running a great blog. Thanks for sharing this.

Yasmin Priya said...

Thanks for sharing your ideas. It’s really useful for me. Selenium is an automation testing tool used for web applications. I did Selenium Training in Chennai at besant technologies. It’s useful for me to make a bright career in IT industry. For more details visit Selenium Training in Chennai.

Mathew Stephen said...

Interesting and worth able content is discussed here. The fact about current technology is explicitly stated over here. I do agree on your thoughts on how the influencers are taking advantage over emerging technology. Thanks for sharing this in here. Keep bloging like this.

Hadoop Course in Chennai | Big Data Training | Big data training

Embedded Training in Chennai said...

Welcome to Wiztech Automation - Embedded System Training in Chennai. We have knowledgeable Team for Embedded Courses handling and we also are after Job Placements offer provide once your Successful Completion of Course. We are Providing on Microcontrollers such as 8051, PIC, AVR, ARM7, ARM9, ARM11 and RTOS. Free Accommodation, Individual Focus, Best Lab facilities, 100% Practical Training and Job opportunities.

Embedded System Training in chennai
Embedded System Training Institute in chennai
Embedded Training in chennai
Embedded Course in chennai
Embedded Systems Course in chennai
Best Embedded System Training Institute in chennai
Best Embedded System Training Institutes in chennai
Embedded Training Institute in chennai
Embedded System Course in chennai
Best Embedded System Training in chennai
VLSI Training in chennai

John Son said...

The Information which you provided is very much useful for Testing Training Learners Thank You for Sharing Valuable Information.
Software Testing Training in Chennai | Software Testing Training in Chennai

Anna said...

Great and Useful Article.

Online Java Training

Online Java Course

Java EE course

Java Course in Chennai

Java Training in Chennai

Java Training Institutes in Chennai

Java Interview Questions

Java Interview Questions

Jhon David said...

Well Said. The content provided is true up to my knowledge. This made me to understand the concepts very clear. Thanks for sharing this wonderful information in here. Keep blogging article like this. I have bookmarked this page for future reference as well.

Hadoop Training Chennai | Big Data Training in Chennai | JAVA Course in Chennai

geethu said...

Excellant content thanks for sharing the unique information and keep posting.
Android Training in Chennai | android courses in Chennai | FITA Velachery | FITA Training

Hasini said...

This is really a great post. Thank you for taking time to provide us some of the useful and exclusive information with us. Keep on blogging!!

PHP Training in Chennai

Giri Mani 2 said...

Thank you for this brief explanation and ver nice information. well, got a good knowledge. Have a nice idea, this is more helpful to me. This can gives the better performance.
Hadoop Training in Chennai

Rose Angel said...

Thanks a lot for letting me a chance to visit your any pointers. Your article about web design is really impressed me very much.Buzz Apps

mary Brown said...

Java Articles | IT Technical Articles | Dot Net Framework Articles |
JavaScript Articles | Java Training Institutes | Single Page Application Development

mary Brown said...

Java Training in Chennai
Online MVC Training India | Angularjs Training | javase j2ee javaee interview questions | Java Training in Chennai |

Java Training in CHennai

mary Brown said...

Interesting Article
Javascript Training in Chennai | HTML5 Online Training | JavaScript Online Training

mary Brown said...

Angularjs Online Training | Backbone.JS Online Training | Bootstrap Online Training | Node.js Online Training | Typescript Online Training

fiona Allen said...

This theory of Selenium looks great to learn. Professional SEO Packages

hadoop training in hyderabad said...

revolutanary post thanks for sharing..
Hadoop training in hyderabad.All the basic and get the full knowledge of hadoop.
hadoop training in hyderabad

Devi.Angularjs said...

JavaScript Training in Chennai | Ecmascript 6 Training in Chennai | ES6 Training in Chennai | Angular 2 Training in Chennai | HTML5 Training in Chennai

Yeoman Training | D3 Training | ReactJS Training | Gulp Training | CommonJS Training

Fathima Fazal said...

Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information.
Performance Tuning Training in Chennai | Oracle PL/SQL Training in Chennai

Priya R said...

The strategy you have posted on this technology helped me to get into the next level and had lot of information in it. The python programming language is very popular and most widely used.
Python Training in Chennai | Python Course in Chennai

Anu Priya said...

Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
QTP Training Centers in Chennai | Selenium Training Centers in Chennai

Saradha Devi said...

great blog keep sharing

Best Selenium Training Center in Chennai | Best Automation Testing Training in Chennai | Best selenium training and placement in chennai | Selenium Training in velachery

Gopi said...

Great to know about the Revolutionary Testing Tools for AJAX Applications. I'm have been waiting for a long time. Thanks :)
Selenium training in Chennai |Best Selenium training institute in Chennai

Sankar lp said...

I have read your blog its very attractive and impressive. I like it your blog.

Email Marketing India Email Marketing Services India

aliisajoseph said...

We Reduced the batch size to make our training more interactive, well structured & timing too made more flexible for students convenient.
Android Training in Velachery |
Android Training in Anna Nagar |
Android Training in Velachery |
Android Training in Chennai |

Logavani G said...

Wow. It is sounds good to hear about java. You have given wonderful suggestion and guidance about java. thanks for posting your comprehensive tactics about java.
java training in chennai

Logavani G said...

hi welcome to this blog. really you have posted an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Logavani G said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Logavani G said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Logavani G said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

Logavani G said...

Nice tips for someone new into the world of java. Really great tips and finally definitely will help to develop a program in java.
java training in chennai

Swathy Vignesh said...

hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.
java training in chennai

sunilkumarkuppam said...

This article provides the information about Java its key features and scope for java professionals. This information is really helpful me to know more about Java programming language. Java Training in Chennai | Java Training | Java Course in Chennai

vigneswaran said...

I really appreciated to our blog site information Thank you so much for this article here. Truly it is an astounding article I had ever learned.Thanks for sharing this informative content that guided me to know the details about the training offered in different technology.
Dot Net Training in Chennai | Dot Net Training Institute in Chennai | Dot Net Training with Placement in Chennai

Priya B said...

This is really a great post. Thank you for taking time to provide us some of the useful and exclusive information with us. Keep on blogging!!

Android Training Institute in Chennai

Shalini Mudhalayar said...

Your Java blog has explained the concepts clearly with suitable examples. Many programming languages have evolved but Java is still in NO:1 position due to its great features.


JAVA J2EE Training in Chennai |
JAVA Training Institutes in Chennai

Ishu Sathya said...

The way you have explained the Big Data concept is really superb! I have never come across such a informative blog in my career. Nowadays, Hadoop course is in high demand by most of the professional to enhance their career.


hadoop training in velachery |
big data training in velachery

Aswin Karthick said...

Good and first-rate blog post, thanks for sharing your facts.. It's miles very useful to me seo training in Chennai