diff --git a/.jpmignore b/.jpmignore new file mode 100644 index 0000000..4a06bbe --- /dev/null +++ b/.jpmignore @@ -0,0 +1,10 @@ +nbproject +mpAddonDev +EventBreak_Results +README_EventBreak_Artifact.txt +.gitignore +*~ +*.swp +tests/tizen +.idea +*debuglog.txt diff --git a/README.md b/README.md index 4e25aac..688fa62 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,47 @@ at Conference on Object-Oriented Programming, Systems, Languages, and Applicatio This repository provides the source code of our implementation. The easiest way to experiment with EventBreak is to use this [Virtualbox VM image](http://www.eecs.berkeley.edu/~pradel/EventBreak_OOPSLA_Artifact2.tar.gz), where EventBreak, all its requirements, and several benchmark applications are pre-installed. The image contains a file README_EventBreak_Artifact.txt with instructions on how to use it. -WebAppWalker has been tested with Firefox versions up to 39.0 and currently does not support newer versions. + + +## Installation + + 1. Clone this repository: +``` +git clone https://github.com/michaelpradel/WebAppWalker.git +``` + + 2. Install jpm (required to launch WebAppWalker): +``` +npm install jpm --global +``` + + 3. Install Firefox >= 38.0 + + +## Usage + +Start Firefox with the WebAppWalker extension: +``` +jpm run -b /path/to/your/firefox --binary-args="-no-remote" +``` + +By default, jpm creates a new Firefox profile each time you run WebAppWalker. To store visited URLs, settings, etc., create and use a profile specifically for WebAppWalker. + 1. Create a new profile via the profile manager: +``` +/path/to/your/firefox -no-remote --ProfileManager +``` + 2. Start WebAppWalker with the newly created profile: +``` +jpm run -b /path/to/your/firefox --binary-args="-no-remote" -p nameOfYourProfile + +``` + +Go to some URL and start WebAppWalker by clicking the "Play" button. You should see that WebAppWalker triggers events, such as clicks. To stop it, click the "Pause" button. + + +## Search strategies + +By default, WebAppWalker uses a random search strategy to decide which event to trigger next. We have developed several other strategies, e.g., the EventBreak strategy. To modify the strategy, open the ```lib/main.js``` file and modify the line that starts with ```var search =```. + +To implement your own strategy, the easiest will be to copy ```lib/search/random_search.js``` and start from there. + diff --git a/package.json b/package.json index 4076c27..70b491f 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "webappwalker", "fullName": "WebAppWalker", - "id": "jid1-UjG7KyBWEwwDZg", + "id": "jid1-UjG7KyBWEwwDZg@jetpack", "description": "Test generator for web applications", "author": "Michael Pradel", "license": "GPLv2", - "version": "0.2" + "version": "0.2.0", + "main": "lib/main.js" }