Skip to content
Web Analytics Automation Testing Framework
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist adding WAAT-v2.0_BETA.jar in dist folder - Anand Aug 26, 2016
docs New architecture diagram Dec 11, 2012
resources Web Analytics for Mobile -Android Aug 25, 2016
.gitignore updated .gitignore Oct 15, 2018
LICENSE.txt Updated license information and docs Apr 19, 2011
README readding README Apr 19, 2011
README.rdoc add badge Jan 18, 2017
build.gradle update version dependencies for webdriver and appium-java-client Oct 15, 2018
build.xml add bmp to gradle dependencies - Anand Aug 20, 2016


Stories in Ready



* Created by: Anand Bagmar
* Email:
* Copyright 2010 Anand Bagmar.  Distributed under the Apache 2.0 License
* See LICENSE.txt for further details.


What is Web Analytics

Web Analytics is the measurement, collection, analysis and reporting of internet data for purposes of understanding and optimizing web usage. Web Analytics is not just a tool for measuring website traffic, but can also be used as a tool for business research and market research. Web Analytics applications can also help companies measure the results of traditional print advertising campaigns. It helps one to estimate how the traffic to the web site changed after the launch of a new advertising campaign.

Web Analytics provides data on the number of visitors, page views, etc. to gauge the traffic popularity trends which helps doing the market research. Official definition of Web Analytics from Wikipedia (

What is WAAT?

WAAT = Web Analytics Automation Testing.

See the WAAT-Java wiki for answers to questions like what, why, how, and more.

For any other questions, comments, help, email Anand Bagmar @

Setup instructions for running tests using Appium

Appium setup for Android- in OS X

Appium setup for Android- in Windows

  • JAVA JDK - and set environment variable JAVA_HOME under 'System variables'.

  • Android SDK - [Note: Appium supports Android API >=17] and set environment variable ANDROID_HOME under 'System variables'.

  • Node.js - Then run following commands on cmd:

    * npm install -g appium    # get appium
    * npm install wd    # get appium client
    * appium-doctor    # check if everything is correctly set
  • Appium.exe (zip file) (for Appium Inspector) -

  • Any IDE: IntelliJ IDEA -

  • Add all the environment variables set(in steps 1,2 and 5) along with platform-tools and npm(node package manager)path to the PATH variable.

  • So, your PATH variable would look something like: C:WindowsSystem32;%JAVA_HOME%bin;%ANDROID_HOME%bin;%M2_HOME%bin;C:UsersAdministratorAppDataLocalAndroidandroid-sdkplatform-tools;C:Program Filesnodejsnode_modulesnpmbin;

Proxy setup for Android device

  • Click Settings.

  • In Settings, click Wi-Fi.

  • Click and hold WiredSSID until a box pops up.

  • Click on “Modify network”.

  • Check the “Show advanced options” box and select Manual from the Proxy Settings menu.

  • Enter your host machine's IP address in the “Proxy hostname” field, and 5555 in the “proxy port” field and enter the URL to be bypassed.

  • Then click Save.

Latest version

Platforms supported

  • WAAT for Java.

  • WAAT for Ruby. The Ruby gem uses RJB (Ruby-Java-Bridge) to invoke APIs defined by WAAT-Java to enable Web Analytics Testing.

  • See my blog for all activity around WAAT.

New changes coming in WAAT

  • HTTPSniffer & JSSniffer will NOT be supported in the new WAAT

  • A new plugin, based on proxy server approach will be available

  • See the Issues in WAAT github repo or my blog for upcoming changes to WAAT.


  • Fork it!

  • Create your feature branch: git checkout -b my-new-feature

  • Commit your changes: git commit -am 'Add some feature'

  • Push to the branch: git push origin my-new-feature

  • Submit a pull request :D

How to use WAAT-Ruby?

See the HttpSniffer or JSSniffer wiki page for step-by-step instructions on how to use WAAT-Ruby in your project.

Changes in v1.5.1

  • Engine.isExpectedTagPresentInActualTagList in engine class is made public

  • Updated Engine to work without creating testData.xml file, and directly sending exceptedSectionList for tags

    Added a new method
        Engine.verifyWebAnalyticsData(String actionName, ArrayList<Section> expectedSectionList, String[] urlPatterns, int minimumNumberOfPackets)
  • Added an empty constructor for to prevent marshalling error

  • Support Fragmented Packets

  • Updated Engine to support Pattern comparison, instead of String contains

Changes in v1.5.0

Some APIs have changed between v1.4.0 and v1.5.0.

  • **To use JsSniffer plugin**:

    - Set the WebAnalytic Tool:
        WebAnalyticTool webAnalyticTool = WebAnalyticTool.JS_SNIFFER;
    - Initialize the WAAT engine using this:
        engine = getInstance(webAnalyticTool, inputFileType, keepLoadedFileInMemory, log4jPropertiesAbsoluteFilePath);
  • If you are using the JsSniffer plugin:

    You do not need to call the following methods :
  • The method engine.verifyWebAnalyticsData takes in different parameters for JSSniffer Vs HttpSniffer. Look at the respective wiki pages for detail info on how to use the same.

You can’t perform that action at this time.