How eggPlant can test on Flex/Flash applications in Windows?

I’m very impressed of the approach that eggPlant is doing to test SUT. I have been doing FE test automation for about 10 years and have been using a lot of different automation tools. There is no single tool available that can satisfy all the requirements. We have been switching from tool to tool to meet different requirements and technology of the GUI changes. I really hope that eggPlant will finally meet our requirements. But I still doubt about how reliable and robust is the image matching approach that may require lots of maintenance. I want to show my boss that eggPlant can really work. Please give me some info about:

How eggPlant can test on Flex/Flash applications in Windows XP/Vista?

How easy to maintain the scripts and the images of the objects if the GUI is still being developed and keeps changing?

How to deal with dynamic UI objects? e.g. the movie images are kept changing in Netflix, how do you click on a movie image and test on it?

How to test on different language versions of the SUT? e.g. there are more than 40 different Intl locales for Yahoo Mail. Do you need to have 40 different images for the compose button which is displayed in different language?

Why I need to use eggPlant if I can test Flex apps with open source tools such as Flexmonkey and Selenium-Flex?

I need to draft a proposal to convince my boss about this, so please give me as much info as possible.

Thanks a lot
-joe

Hi Joe–

[quote=“chimanfu”]I’m very impressed of the approach that eggPlant is doing to test SUT. I have been doing FE test automation for about 10 years and have been using a lot of different automation tools. There is no single tool available that can satisfy all the requirements. We have been switching from tool to tool to meet different requirements and technology of the GUI changes. I really hope that eggPlant will finally meet our requirements. But I still doubt about how reliable and robust is the image matching approach that may require lots of maintenance. I want to show my boss that eggPlant can really work. Please give me some info about:

How eggPlant can test on Flex/Flash applications in Windows XP/Vista? [/quote]
Since Eggplant is image-based, and only requires a VNC connection over TCP/IP, it can test Flex and Flash applications in a way much like a human would–by performing clicks and other system interaction on the remote system.

How easy to maintain the scripts and the images of the objects if the GUI is still being developed and keeps changing?

Maintaining scripts is quite straight forward, for a couple of reasons. First, Eggplant is not co-ordinate based, meaning if a button or other GUI widget is moved to another location on the screen, Eggplant will still find it on the screen. Second, our ImageDoctor function allows you to quickly re-capture images that have changed, and if an GUI widget has more than one state, you can add a representation and create an Image Collection.[/quote]

How to deal with dynamic UI objects? e.g. the movie images are kept changing in Netflix, how do you click on a movie image and test on it?

For that example, I would consider importing images that are already being used on the site into Eggplant and use the image collection feature as mentioned previously.

How to test on different language versions of the SUT? e.g. there are more than 40 different Intl locales for Yahoo Mail. Do you need to have 40 different images for the compose button which is displayed in different language?

If the text is selectable, you can use Eggplant’s clipboard sharing feature to pull the text into Eggplant for comparison, otherwise, I would use Eggplant’s Text Image Generation feature. You can provide a string to match, font, size, style and background and Eggplant will generate an image automatically.

Why I need to use eggPlant if I can test Flex apps with open source tools such as Flexmonkey and Selenium-Flex?

FlexMonkey is an open source tool designed to do Unit testing opposed to end-to-end Functional User Experience Testing which is what eggPlant has been designed for. It also seems that FlexMonkey limited to Flex alone and does not offer support for any other technologies, nor cross platform support. Furthermore it looks like the scrips can not be developed in an intelligent way to ensure maximum reusability of the components increasing the need for constant script maintenance.

Selenium is Firefox only, where as Eggplant can be used on multiple browsers.

I need to draft a proposal to convince my boss about this, so please give me as much info as possible.

I would highly encourage you to contact sales@testplant.com and they will be happy to assist you in preparing your report for your manager.

Thanks for the detailed info. I already contacted the Sales for the license quote, etc…

regarding to your answer for the dynamic UI objects e.g. the movie images are kept changing in Netflix. But the problem is there are so many movies and there are new movies coming. How can you keep up with all the movie images??? How do you deal with an object that is very dynamic that you won’t know in advance? In Selenium, we can use the DOM to locate that object and use the attributes of the objects to do movie name or other description comparison on the fly. Eg. I click on the movie icon to open another page to show more details for the movie. Can Eggplant grip the attributes or properties of the object being tested on? e.g. object id, object name, etc…from the DOM? Or call the Javascript or Actionscript for the the GUI?

Hi Joe–

[quote=“chimanfu”]
regarding to your answer for the dynamic UI objects e.g. the movie images are kept changing in Netflix. But the problem is there are so many movies and there are new movies coming. How can you keep up with all the movie images???[/quote]
What I would recommend is giving your Eggplant controller machine access to where the images are stored and using Eggplant’s powerful file handling to pick up a list of images and searching that for the image you want to use. Each time you run the script, it grabs the file list and if there are new images, the script will take it into account.

How do you deal with an object that is very dynamic that you won’t know in advance? In Selenium, we can use the DOM to locate that object and use the attributes of the objects to do movie name or other description comparison on the fly. Eg. I click on the movie icon to open another page to show more details for the movie. Can Eggplant grip the attributes or properties of the object being tested on? e.g. object id, object name, etc…from the DOM? Or call the Javascript or Actionscript for the the GUI?

Eggplant works from a black-box, user experience perspective, so while it cannot grip the attributes of the DOM, it does have the advantage of if the DOM changes, but the user experience does not, the script will not have to be adjusted.

I hope this helps!

To followup on Allen’s comments, Eggplant works differently than many automation tools it works much more like a person/manual tester would.

You wouldn’t ask a manual tester to click on a particular DOM object you would ask them to “Click the movie that shows up at this part of the screen”. If that element is dynamic you can often know where to click based on other static elements on the screen maybe a label that says “Your Selected Movie:”.

If validating the image is actually part of the test then you will definitely want to have those images coming in from a data base or data file. If validating the title is adequate then you can either use Copy/Paste to “read” the field or use Text Image Generation (see Eggplant Help from the menu for more information).

The bottom line is that I’m confident that we can use Eggplant to automate against your web application, but it helps to think like a user rather than like a computer when testing with Eggplant.

If you have other specific questions though we’ll be glad to help.

Hi Guys,

Can automated UI testing be done for Flex pure AS3 projects. I have a requirement where we need to automate testing for AS3 projects which most of the automation tools I have found do not work. If its possible with eggplant then please attach a sample project for the same.

Yogendra

Hi Yogendra–

Please check here for the answer to your question. Just want to make sure you see it.