Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 31, 2012
  1. @Krinkle
Commits on Oct 30, 2012
  1. @Krinkle
  2. @Krinkle
Commits on Oct 5, 2012
  1. @Krinkle

    Fix chmod on

    Krinkle committed
  2. @Krinkle
Commits on Oct 3, 2012
  1. @Krinkle
  2. @Krinkle

    Fix --terminateAll

    Krinkle committed
    terminateWorker now only takes a worker id.
Commits on Sep 29, 2012
  1. @Krinkle
  2. @Krinkle Add note

    Krinkle committed
  3. @Krinkle

    Major rewrite (version 0.2.0)

    Krinkle committed
    Main script:
    * Most importantly: The main run() and updateBrowsers() methods
      are completely rewritten to fix all known logic problems. Such
      as where it started the wrong browsers or didn't account for
      certain limits and race conditions, and it now has a priority
      formula, which (among other things) takes into account all
      online clients (not just the workers it started). So it starts
      needed browsers while also allowing other instances of this
      script (or other scripts or human users) to join the swarm
      and fill in the needed roles instead.
    * Make browserstack client version explicit. v1 at this time,
      as v2's structure is still a bit odd. Maybe they'll change it
      (request has been made). If not, we'll do a minor refactoring
      to support the v2 flow.
    * Added method to start a worker by swarm user agent id (e.g.
      "Chrome|22" as opposed to { browser: 'chrome', version: 22 } ).
    Cli script:
    * Now uses config.json for most options. It still has a few
      options to activate "verbose" and "dryRun".
    * Added a --run-loop option that will execute "run" in a loop
      in child processes.
      Loop will not start if config is invalid. If config becomes
      invalid during the loop the child process will output an error
      message, but the loop will not stop and try again at the next
    * Actions removed/changes:
      - worker (new: get worker info)
      - spawn (new: start worker by testswarm ua id)
      - dry-run (replacing '--kill' and the old '--run')
      - getNeeded (not needed, info is now part of --verbose)
    * Various updates to map.js
    * New code base passes JSHint (see .jshintrc)
    * Updated dependencies in package.json to their latest versions
      and updated code where needed.
    * Fixes #16: "cli: Move defaults to commander declaration"
    * Fixes #17: "stackLimit is enforced wrong (too low)"
    * Fixes #21: "Online workers shouldn't take priority in the loop"
    * Fixes #23: "Implement limit for similar workers"
    * Fixes #26: "Optimize for multiple accounts"
  4. @Krinkle
Commits on Aug 22, 2012
  1. @clarkbox

    Merge pull request #27 from Krinkle/2012-uaupdate1

    clarkbox committed
    Add Chrome 20.0 and Opera 12.0
Commits on Jul 19, 2012
  1. @Krinkle

    Add Chrome 20.0 and Opera 12.0

    Krinkle committed
    * Chrome 20.0 is stable, but browserstack ID still says 20.0b
Commits on Jul 14, 2012
  1. @clarkbox

    Merge pull request #25 from Krinkle/2012-cleanup

    clarkbox committed
    Spring cleaning
Commits on Jun 28, 2012
  1. @Krinkle

    Spring cleaning

    Krinkle committed
    * package.json:
     - Use same indention as other files (4 space)
     - Adjust order to match npm-docs
     - Add 'main' property
     - Add 'keywords' property
    * Rename additional files to be named directly instead of prefixed
      and move into ./lib
    * Split arguments in over multiple lines for easier
      modification and readability.
    * Logrotate
     - Logs grow quickly. Using logrotate makes this a problem of the
    * README
     - Update section on cli.js to match the current help output
     - Use consistent markdown syntax across the file (dashes, whitespace)
     - Add short info about logrotate.
    * cli.js:
     - Use `env node` instead of hardcoded path
Commits on Jun 12, 2012
  1. @clarkbox

    Merge pull request #24 from Krinkle/master

    clarkbox committed
    Don't kill workers that are busy running.
  2. @Krinkle

    Bug fix: Don't kill workers that are busy running.

    Krinkle committed
    * Up until recently TestSwarm would only update pendingRuns after the
      run was finished.
      So if there was only 1 pending run and a browserstack worker starts
      running that, pendingRuns is still 1.
      (this also meant that it was still being distributed causing double
      work for the same run).
      Now that was fixed, testswarm-browserstack was killing workers that
      are still busy (during the last run), because at that point in time
      pendingRuns was decreased, but that doesn't mean everything is
      Now using activeRuns as well to make sure we don't kill the worker
      if there are no new runs, but there are still runs being run.
Commits on May 18, 2012
  1. @clarkbox

    Merge pull request #22 from Krinkle/master

    clarkbox committed
  2. @Krinkle

    + Chrome 19

    Krinkle committed
  3. @Krinkle

    cli-output clarification

    Krinkle committed
Commits on May 9, 2012
  1. @clarkbox

    Merge pull request #20 from Krinkle/master

    clarkbox committed
    update map (2012-05-09)
  2. @Krinkle

    update with latest updates

    Krinkle committed
    - Updating with latest version of TestSwarm and latest added browsers
      in BrowerStack (still using BrowserStack API v1, the desktop
      browsers also got added to the old API)
    - Firefox 3.5 isn't in BrowserStack (I don't think it ever was in
    - Chrome browser ID is now has a version in TestSwarm
Commits on May 8, 2012
  1. @clarkbox

    Merge pull request #17 from Krinkle/master

    clarkbox committed
    use seconds instead of minutes for timeout
  2. @Krinkle
Commits on May 5, 2012
  1. @clarkbox

    minor modifications

    clarkbox committed
Commits on May 1, 2012
  1. @clarkbox

    Merge pull request #15 from Krinkle/master

    clarkbox committed
    Add --verbose to
  2. @Krinkle

    Add --verbose to

    Krinkle committed
  3. @clarkbox

    Merge pull request #13 from Krinkle/master

    clarkbox committed
    Implement stack limit, multiple workers for a browsers and "dry-run"
  4. @Krinkle

    Implement stack limit, multiple workers for a browsers and "dry-run"

    Krinkle committed
    - Fixes:
     * fixes issue #11: Implement stackLimit
     * fixes issue #12: Add support for starting multiple workers of the same browser
     * fixes issue #9: Add timestamps to log
    - Implement stack limit
    - Potentially start multiple workers for the same browser to speed up testing by using
      all usable slots in the browserstack account.
      * getWorkerByUaId -> getWorkersByBrowser
      * updateBrowsers: Adding an extra loop in which startBrowsers[] is populated with items
        from neededBrowsers until the stackLimit is reached.
    - Add "dry-run" mode.
      Using this mode killWorker and startWorker will not access the browserstack API, but
      instead just log a message.
      Use in combination with a kill or/or run command.
      e.g. ".. --run --kill --dryRun"
      e.g. ".. --killAll --dryRun"
      e.g. ".. --killWorker 1234 --dryRun"
    - Add a space line and timestamp at the beginning of the cli.js execution output
  5. @Krinkle

    Fix sample

    Krinkle committed
    - Rename to -sample to allow keeping a clean working copy
    - Add .gitignore for the customized and log file
    - Add EOL line breaks
    - Use 'node' explicitly to avoid errors where `#!/opt/local/bin/node` doesn't exist
      (such as on MacOSX, depending on how it was installed)
Commits on Apr 30, 2012
  1. @clarkbox

    Merge pull request #10 from jzaefferer/package-json

    clarkbox committed
    Add package.json, fix for #1
  2. @jzaefferer

    Add package.json to describe dependencies, drop them from the readme.…

    jzaefferer committed
    … Add node_modules to .gitignore. Fixes #1
Commits on Apr 28, 2012
  1. @clarkbox


    clarkbox committed
    -up cli to v1.0
    -remove unused vars in getSwarmStat()
    -move browser map to external file
    -add cron script example
  2. @clarkbox

    Merge pull request #8 from Krinkle/master

    clarkbox committed
    issue #7: Update for TestSwarm 1.0 and some other minor fixes
Commits on Apr 27, 2012
  1. @Krinkle

    Refactor testswarm-browserstack to work with TestSwarm 1.0.0

    Krinkle committed
    - Using api.php?action=swarmstate instead of the (no longer existent) state=getneeded
    - This also made it possible to kill workers more precisely (since now both pendingRuns
      and onlineClients is available, not just "isNeeded").
    - Make it also compatible with testswarm installs that are not in the root of the domain.
      Previously setting swarmUrl to something other than a hostname would throw an exception
      in http.request. Now using more abstracted "request" module that takes full urls,
      instead of the lower-level "http" module directly.
    - browserMap
     * TestSwarm 1.0 uses canonical names instead of numerical IDs
     * Added Firefox 9, 10 and 11
     * Updated generic "Chrome" to version 18
     * Added placeholders for other testswarm user agent IDs that browserstack API does
       not yet support.
    - Got rid of some redundant JSON.stringify calls in console.log calls
Something went wrong with that request. Please try again.