Testing: Selenium: Running ZimbraDesktop

Revision as of 18:51, 1 December 2011 by Jhidayat (talk | contribs) (Created page with "== Important Resources & URLs == *[http://www.zimbra.com/desktop7/help/en_US/Zimbra_Mail_Help.htm http://www.zimbra.com/desktop7/help/en_US/Zimbra_Mail_Help.htm] - Zimbra D...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Important Resources & URLs

Zimbra Desktop Test Information

Managers In Charge

Engineers In Charge 

Developers In Charge

Latest Recommended Builds

For 7.1.2 RTM Testing

- Windows: WINDOWS/ZDESKTOP-712/20110910070101_ZDESKTOP

- Linux: RHEL4/ZDESKTOP-712/20110910070101_ZDESKTOP

- Mac OS: MACOSXx86_10.6/ZDESKTOP-712/20110910070101_ZDESKTOP

For 7.1.1 RTM Testing

- Windows: WINDOWS/ZDESKTOP-711/20110726070101_ZDESKTOP

- Linux: RHEL4/ZDESKTOP-711/20110726070101_ZDESKTOP

- Mac OS: MACOSXx86_10.6/ZDESKTOP-711/20110726070101_ZDESKTOP

Zimbra Desktop Automation:


Parallel to Zimbra Ajax Selenium project (with combination of Selenium and TestNG), Zimbra Desktop Automation mainly focuses on front-end interactions, while also utilizes some back-end interactions (using SOAP) for test set-up & teardown, and Zimbra server-backend verification. There are 3 main packages in Zimbra Desktop automation, they are:
1. Framework package
This package contains low level codes including object helper methods, wrapper to native selenium APIs, and framework-level utility APIs. This package is shared with other selenium-related projects, such as Ajax, HTML, and mobile. 

2. UI package
This package contains UI container classes, such as Forms, Dialogs, Pages, Trees, and Toaster. These classes utilize and inherit some classes from Framework package. With Object-oriented structure, each of the UI container classes' APIs function differently from each other.

3. Test package
This package has 2 sub-packages: Core and Tests. In Core package, there are AjaxCommonTest and DesktopInstallUtil classes, while in Test package, there are test classes, which contain test methods (test cases).
- AjaxCommonTest acts as a parent of Test classes. As TestNG is chosen as test driver for Zimbra selenium project, AjaxCommonTest utilizes and inherits classes from Framework package to build the @BeforeSuite, @BeforeClass, @BeforeMethod, @AfterSuite, @AfterClass, @AfterMethod for framework-level Setup and Teardown respectively, which configurable from config.properties file located inside "conf" folder at project level.
- DesktopInstallUtil contains methods that are used for Zimbra Desktop Installation and Uninstallation. NOTE: There is a near-future plan of moving this class into Framework-level Utils package.
- Test classes simply inherit from AjaxCommonTest and contain test methods. The test classes might also have @BeforeMethod and @AfterMethod annotated methods, but they are only limited to UI interactions as part of test setup and cleanup, NOT the framework-level configuration
ZD Sel Fr.jpg

How to run it


To run Zimbra Desktop locally using ant with ZimbraSelenium/build.xml, there are some important elements in config.properties to be set properly:

- <COMPUTER_NAME>.desktop.test=true

This parameter is a must. To get the <COMPUTER_NAME>, go to command line console, and type "hostname". Without this paramter set to true, it will run Ajax selenium test.

- desktop.productBranch=ZDESKTOP_712

This is to set the product branch, in case the product branch is different (look at zre-matrix column), please change this accordingly (NOTE: keep in mind, '-' is '_' for this parameter).

- desktop.forceInstall=true

This is to set whether forceInstallation of Zimbra Desktop will be done. To run with pre-installed Zimbra Desktop build, please set this parameter to false, if other builds are expected, please leave this to true.

- desktop.uninstallAfterTest=false

This is to set whether ZD app uninstallation will take place after the test. If cleaning up is expected after the test, please set this to true, otherwise to false. By default this is set to false, so that if there are some bugs, the important information could still be retrieved from the system at the end of test.

- desktop.buildUrl=

Please specify this build URL up to a folder before the binary file, such as: http://zre-matrix.eng.vmware.com/links/MACOSXx86_10.6/ZDESKTOP-711/20110706070101_ZDESKTOP/ZimbraBuild/i386/ . If this is left empty and installation is required (either from desktop.forceInstall=true parameter or no pre-installed Zimbra Desktop), the framework will download and install the latest Zimbra Desktop build from zre-matrix based on the OS and given product name and branch.


Target "Run-ExecuteHarnessMain" needs to be fixed up to run ZD properly, please see the underlined word below:

 <target name="Run-ExecuteHarnessMain" depends="jar" description="Run all tests per specified arguments">
    <property name="jarfile" value="${dist.lib.dir}/zimbraselenium.jar"/>
    <property name="pattern" value="projects.desktop.tests.addressbook"/>
    <property name="groups" value="always,sanity,smoke"/>
    <echo>Executing ...</echo>
    <java classname="framework.core.ExecuteHarnessMain" classpathref="class.path" fork="true" failonerror="true">
       <arg line="-j '${jarfile}' -p ${pattern} -g ${groups} -l conf/log4j.properties"/> 

Rest of the steps...

The rest of the steps are exactly similar to http://wiki.zimbra.com/wiki/Testing:_Selenium:_Running_ZimbraSelenium#Running_ZimbraSelenium

Jump to: navigation, search