Archive for June, 2009

Print This Post This page as PDF Email This Post Mgento Module - Footer More Links extension

Saturday, June 13th, 2009

By Trupti,

Magento team at OffshoreSoftwareDevelopmentIndia.com has developed an Magento module for Footer Links.

This Footer links module for Magento contains the following items,

(1) All the categories in the tree structure with Category images.

(2) Top 12 searched performed on Magento Store,

(3) All static links in structured way, as defined in Admin section.

By Default this More links section remains hide in the footer. Once user click on more links it will display all the above links in the footer sections.

All the category links contains subcategories, clicling on + sign it will show all subcategories under the root Category.

Click on image to see Full image.

Footer Link Module - More Links When All links are Hide

More links are by default hidden. Once user click on more links, it will display all links as per the following image.

Displayed More Footer Links - Magento Module

Print This Post This page as PDF Email This Post Trick to speed up Eclipse

Saturday, June 13th, 2009

By Paryank,

Trick to speed up Eclipse

Eclipse is one of the largest application in size which used for PHP development. Because of its large size and running through JVM (Java Virtual Machine), this application is very much slow in execution. Here are few configurations to be made to speed up Eclipse execution.

A file eclipse.ini is found under the directory from where eclipse is running. The following changes should be made in this file:

1. Find the lines containing -Xms40m and -Xmx256m and replace them with -Xms128m and -Xmx384m respectively.
2. Add the following lines at the end of the file

-vm
C:\Program Files\Java\jre1.6.0_11\bin\client\jvm.dll
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

NOTE: The path C:\Program Files\Java\jre1.6.0_11\bin\client\jvm.dll may differ according to JRE installation on your computer. Please find the correct path of jvm.dll file and put it accordingly.

Eclipse PDT 2.0 which is based on Eclipse 3.4 which is comparatively faster than Eclipse 3.3 or older.

Zend Studio which is also Eclipse PDT based IDE and provides similar functionality as Eclipse PDT.

But the latest version of Zend Studio (Version 6.1.2) which is still based Eclipse (Version 3.3). So it is recommended to use Eclipse PDT instead of Zend Studio for better performance until next version of Zend Studio is not released.

Print This Post This page as PDF Email This Post Magento Extension - Google XML sitemap Split Module

Saturday, June 13th, 2009

By Paryank,

Magento team at OffshoreSoftwareDevelopmentIndia.com has developed an Magento module for Google XML sitemap spilt.

Default module of Magento creates only one XML Sitemap file. Google does not accept the file more than 10 MB or 50000 links. So If there large Magento shop with products more than 50000, It requires to spilt the sitemap after every 50000 links or size more than 10 MB.

The Magento extension Google XML Sitemap Split Module developed by OffshoreSoftwareDevelopmentIndia.Com fulfills this requirement.

In the configuration Admin can specify both, the size of the XML file and Links in XML file to be splitted. Whatever the confitions fulfills first, this module will create new sitemap XML file. It will repeat this process till all the links processed.

Admin will be able to see all the generated XML files in the TXT file in the XML SiteMap module.

Everytime when Admin click on Generate the XML file, It will delete all previous XML files and recreates all new files.

Please refere the following screens to understand Module functionality perfectly well.

SiteMap Configuration:

System - Configuration - Google Sitemap

Click on image to view complete image.

Magento Extension - Google Sitemap Split Module Configuration

Adding Sitemap:

Catalog - Google Sitemap

Click on image to view complete image.

Adding New Google Sitemap

Generate Google SitemMap:

Catalog - Google Sitemap

Click on image to view complete image.

Magento generate Google split XML Sitemap

Click on Generate Link to generate the Google XML siteamap.

Once XML sitemaps generate, Click on index.txt file to list all generated XML files.

Print This Post This page as PDF Email This Post Working with Selenium-Grid and run PHP Tests

Monday, June 1st, 2009

By Vaishal,

Working with Selenium-Grid

1. Download selenium Grid from
http://seleniumhq.org/download/
And extract files any location. Mostly in C:\selenium

2. Install latest jre from

http://java.sun.com/

3. Download ant from

http://ant.apache.org/
Extract files in C:\Ant.

- Set environment variable ANT_HOME as
- Go to the properties menu of MyComputer
- Go to the advance menu and click on ‘Environment Variable’
- Click on new and Enter value ‘ANT_HOME’ variable with your folder value where you have installed Ant.
- Now set the path variable as
Edit value and add location of your ant\bin folder

4. Now go to the selenium-grid folder from command prompt and launch-hub as follow:

ant launch-hub

Hub will start on port no 4444 as follow:

5. Now start remote server from new terminal from same selenium-grid folder as follow

ant launch-remote-control

It will start as follow:

6. Now in browser go to the hub location by

http://localhost:4444/console

It will look like

7. To start more remote server enter
ant -Dport=5556 launch-remote-control
ant -Dport=5557 launch-remote-control
ant -Dport=5558 launch-remote-control

8. Now the hub on browser will show as

Available Remote Controls
Host Port Environment
localhost 5555 *firefox
localhost 5556 *firefox
localhost 5557 *firefox
localhost 5558 *firefox

Note: The total run time is directly proportional to the number of available remote controls. So don?t start more controls if not necessary.

9. Run the hub

This setup illustrates that you can run the hub and the remote controls on arbitrary machines. When you do so though, you need to provide a lot more information when launching a remote control. You need to launch it with:
ant -Dport=<port> -Dhost=<hostname> -DhubURL=<hub url> launch-remote-control
Where:

port Port that the remote control will be listening at. Must be unique on the machine the remote control runs on. hostname Hostname or IP address of the machine the remote control runs on. Must be visible from the Hub machine. Note: this information could be inferred as it is always referring to the machine the remote control runs on. It might not be required in future versions of the Selenium Grid. hub url Which hub the remote control should register/unregister to. If the hub is running on hostname my.hub.com, this URL will be http://my.hub.com:4444

10. Now to run a test open new cmd prompt and go the test folder.
phpunit Example

11. This will start the test.

Print This Post This page as PDF Email This Post Working with Selenium-IDE & Running PHP Unit tests

Monday, June 1st, 2009

By Vaishal,

Working with Selenium-IDE | Running Functional Tests | Runnig PHP Unit Tests

Selenium IDE is an integrated development environment for Selenium tests. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run.

Selenium IDE is not only recording tool: it is a complete IDE. You can choose to use its recording capability, or you may edit your scripts by hand. With auto-complete support and the ability to move commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.

1. Download selenium IDE from
http://selenium-ide.openqa.org/download.jsp

This will directly add IDE as fire-fox add-ons.
https://addons.mozilla.org/en-US/firefox/addon/2079
2. Start Firefox and then Start Selenium IDE: Tools->Selenium IDE.

You will see the following window.

3. Enter base url or open the site on which you want to perform functional testing.
IDE will directly open in play mode with the entry of base url as below. Here we want to perform testing on http://www.offshoresoftwaredevelopmentindia.com/

4. After starting the IDE now simply browse the site. It  makes entry in the table as below

Now the entire test is like

Now stop recording by pressing red button.

In html format it looks like

We can export this file in any format we want as

In PHP format it looks as

5. Now to run the recorded test open new browser and press the green - play button

6. The test will run as follow

7. If there will be any error then that test will be highlighted by red line as

8. If you are on a slow internet connection than it may help to slow the test speed.

9. You can save the test case in php as follow..

Required changes in the exported PHP file is as follow

a. Change the class name same as stored file name as default class name will be ?Example?.
b. Enter the web-site name in the
$this->setBrowserUrl(”http://change-this-to-the-site-you-are-testing/“);
Field.
c. Available browser options are
*iexplore
*konqueror
*firefox
*mock
*pifirefox
*piiexplore
*chrome
*safari
*opera
*iehta
*custom
That is write as follow
$this->setBrowser(”*chrome”);
(When we define browser as chrome then no need to get security certificate but in case of firefox or iexplore we need to take certificate. )

10. Downloading and installing Selenium RC
Selenium RC is a Java based command line server that starts browsers and runs commands you pass from your tests.

a. First make sure you have a Java runtime installed on your machine.
Otherwise download it from
http://www.java.com/en/download/manual.jsp
http://java.sun.com/javase/6/docs/technotes/guides/jweb/otherFeatures/jre_install.html
Test the version of JRE by entering command on command line as ?
java -version
b. Download Selenium RC from http://selenium-rc.seleniumhq.org/download.html.
c. After extracting the files from the archive copy the ?selenium-server.jar? file to any directory you feel appropriate.
d. Start the Selenium RC server from the command-line by issuing the following command:
java -jar selenium-server.jar
This will start the server on port 4444.
e. Now the server is ready to accept test commands from your PHP script. Make sure you keep this server running till you finish testing.

11. Changes in selenium-server.jar file requires to run in Firefox is as below:

a. Open selenium-server.jar using winrar
b. locate 2 dirs: customProfileDirCUSTFFCHROME and customProfileDirCUSTFF
c. recursively explore each of those dirs, and when you find a file called install.rdf drag it to some temp location, and edit the following line:
<em:maxVersion>2.0.0.*</em:maxVersion>
change it to:
<em:maxVersion>4.0.0.*</em:maxVersion>
d. drag the install.rdf back into the archive and overwrite the old one.
e. do this for all the install.rdf files in those 2 dirs.

12. Installing PHPUnit
a. An easy way to install PHPUnit is to use the PEAR installer. The PEAR channel (pear.phpunit.de) is used to distribute PHPUnit so make sure that it is registered with your local PEAR environment:
pear channel-discover pear.phpunit.de
After the channel is registered install PHPUnit:
pear install phpunit/PHPUnit
Actual testing

Now that PHPUnit is installed and the Selenium RC server is up and running, it?s time to run our test we saved before in our ?Example.php? file. Type the following on your command-line:
phpunit Example

13. This will start the test. The PHPUnit Selenium driver will execute each test command from your file and send it to the Selenium server, which does the job of launching the appropriate browser, opening web pages, and performing various specified actions; and closing the browser after the test completes.

This will open new browser as

After successful execution the output will be as

Note: All Images will coming soon.

Print This Post This page as PDF Email This Post Unit Testing and Selenium Testing

Monday, June 1st, 2009

By Vaishal,

Unit Testing

Unit testing is a software verification and validation method where the programmer gains confidence that individual units of source code are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class.

Ideally, each test case is independent from the others: substitutes like method stubs, mock objects, fakes and test harnesses can be used to assist testing a module in isolation. Unit tests are typically written and run by software developers to ensure that code meets its requirements and behaves as intended. Its implementation can vary from being very manual (pencil and paper) to being formalized as part of build automation.

The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits. Unit tests find problems early in the development cycle.

For the php code we are performing unit testing using PHP Unit.

Selenium Testing

Selenium is a portable software testing framework for web applications. The tests can be written as HTML tables or coded in a number of popular programming languages and can be run directly in most modern web browsers. It is used for functional testing. Selenium can be deployed on Windows, Linux, and Macintosh.

The latest side project is Selenium Grid, which provides a hub allowing the running of multiple Selenium tests concurrently on any number of local or remote systems, thus minimizing test execution time.