Testing: Selenium: ZimbraSelenium Overview: Difference between revisions
(→Design) |
|||
Line 23: | Line 23: | ||
===Project Structure=== | ===Project Structure=== | ||
[[Image:ZimbraSeleniumProjectStructure.jpeg|thumb|right|200px|Selenium Structure]] | The following folders are located in the ZimbraSelenium java project. [[Image:ZimbraSeleniumProjectStructure.jpeg|thumb|right|200px|Selenium Structure]] | ||
* conf: contains configuration files for how the harness executes | * conf: contains configuration files for how the harness executes | ||
Line 39: | Line 37: | ||
* framework: basic java classes that apply to all testable clients | * framework: basic java classes that apply to all testable clients | ||
* projects: java classes specific to the tested clients | |||
* staf: java classes that apply to integration with [[http://staf.sourceforge.net/ STAF]] | |||
====Framework==== | |||
The framework package contains basic classes that apply to all testable clients. | |||
"framework.core" contains the main execution method and Zimbra selenium classes. | |||
"framework.items" contains classes that define basic Zimbra objects, such as Mail, Appointments, Contacts, Tasks, Tags, and Folders. | |||
"framework.ui" contains abstract classes that define basic GUI objects, such as an Client Application, Application Page, Displayed Object, Form Object, Folder Tree Object. | |||
"framework.util" contains utilities classes, such as injecting a MIME or creating a Zimbra Account. | |||
====Projects==== | |||
Each web application is contained in a package in projects. | |||
* projects.admin: java classes specific to the Admin Console | * projects.admin: java classes specific to the Admin Console | ||
* projects.ajax: java classes specific to the Ajax client | * projects.ajax: java classes specific to the Ajax client | ||
Line 44: | Line 61: | ||
* projects.mobile: java classes specific to the Mobile client | * projects.mobile: java classes specific to the Mobile client | ||
* projects.desktop: java classes specific to the Desktop client | * projects.desktop: java classes specific to the Desktop client | ||
Each project contains 3 sub-packages: | |||
* projects.name.tests: all TestNG test classes are placed in "tests". Classes are further separated by functional areas within the package. | |||
* projects.name.ui: all abstract classes from "framework.ui" are placed in "ui". | |||
* projects.name.core: all non-test classes and non-ui classes are placed in the core package | |||
==Troubleshooting== | ==Troubleshooting== |
Revision as of 02:02, 17 November 2010
General Information
The Zimbra Selenium Harness is a system testing test harness for the Zimbra Web Clients. The Selenium harness uses Java, Selenium, and TestNG technologies to drive web client usage against the Zimbra server.
These Zimbra clients are tested by the Selenium Harness:
- Ajax Client
- HTML Client
- Mobile Client
- Admin Console
- Desktop
Source Code
Javadoc
Javadoc can be generated from the source code tree. After building the software, run the "javadocs" target from ZimbraSelenium/build.xml. A javadoc tree will be created in ZimbraSelenium/build/generated/javadocs. Open index.html to view the javadocs.
Design
Project Structure
The following folders are located in the ZimbraSelenium java project.
- conf: contains configuration files for how the harness executes
- data: contains test data files, such as MIME files, ICS files.
- jars: contains third party external jar files
- src/bin: contains test scripts, such as perl scripts and shell scripts
- src/java: contains java source code
- build.xml: project ant build file
Java Structure
The following major packages are located in the ZimbraSelenium java project.
- framework: basic java classes that apply to all testable clients
- projects: java classes specific to the tested clients
- staf: java classes that apply to integration with [STAF]
Framework
The framework package contains basic classes that apply to all testable clients.
"framework.core" contains the main execution method and Zimbra selenium classes.
"framework.items" contains classes that define basic Zimbra objects, such as Mail, Appointments, Contacts, Tasks, Tags, and Folders.
"framework.ui" contains abstract classes that define basic GUI objects, such as an Client Application, Application Page, Displayed Object, Form Object, Folder Tree Object.
"framework.util" contains utilities classes, such as injecting a MIME or creating a Zimbra Account.
Projects
Each web application is contained in a package in projects.
- projects.admin: java classes specific to the Admin Console
- projects.ajax: java classes specific to the Ajax client
- projects.html: java classes specific to the HTML client
- projects.mobile: java classes specific to the Mobile client
- projects.desktop: java classes specific to the Desktop client
Each project contains 3 sub-packages:
- projects.name.tests: all TestNG test classes are placed in "tests". Classes are further separated by functional areas within the package.
- projects.name.ui: all abstract classes from "framework.ui" are placed in "ui".
- projects.name.core: all non-test classes and non-ui classes are placed in the core package
Troubleshooting