Switch branches/tags
Commits on Oct 31, 2012
Commits on Oct 30, 2012
Commits on Oct 5, 2012
  1. Fix chmod on

    Krinkle committed Oct 5, 2012
Commits on Oct 3, 2012
  1. Fix --terminateAll

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

    Krinkle committed Sep 29, 2012
  2. Major rewrite (version 0.2.0)

    Krinkle committed Sep 29, 2012
    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"
Commits on Aug 22, 2012
  1. Merge pull request #27 from Krinkle/2012-uaupdate1

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

    Krinkle committed Jul 4, 2012
    * Chrome 20.0 is stable, but browserstack ID still says 20.0b
Commits on Jul 14, 2012
  1. Merge pull request #25 from Krinkle/2012-cleanup

    clarkbox committed Jul 14, 2012
    Spring cleaning
Commits on Jun 28, 2012
  1. Spring cleaning

    Krinkle committed Jun 28, 2012
    * 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. Merge pull request #24 from Krinkle/master

    clarkbox committed Jun 12, 2012
    Don't kill workers that are busy running.
  2. Bug fix: Don't kill workers that are busy running.

    Krinkle committed Jun 12, 2012
    * 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. Merge pull request #22 from Krinkle/master

    clarkbox committed May 18, 2012
  2. + Chrome 19

    Krinkle committed May 18, 2012
  3. cli-output clarification

    Krinkle committed May 18, 2012
Commits on May 9, 2012
  1. Merge pull request #20 from Krinkle/master

    clarkbox committed May 9, 2012
    update map (2012-05-09)
  2. update with latest updates

    Krinkle committed May 9, 2012
    - 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. Merge pull request #17 from Krinkle/master

    clarkbox committed May 8, 2012
    use seconds instead of minutes for timeout
Commits on May 5, 2012
  1. minor modifications

    clarkbox committed May 5, 2012
Commits on May 1, 2012
  1. Merge pull request #15 from Krinkle/master

    clarkbox committed May 1, 2012
    Add --verbose to
  2. Add --verbose to

    Krinkle committed May 1, 2012
  3. Merge pull request #13 from Krinkle/master

    clarkbox committed May 1, 2012
    Implement stack limit, multiple workers for a browsers and "dry-run"
  4. Implement stack limit, multiple workers for a browsers and "dry-run"

    Krinkle committed May 1, 2012
    - 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. Fix sample

    Krinkle committed Apr 30, 2012
    - 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. Merge pull request #10 from jzaefferer/package-json

    clarkbox committed Apr 30, 2012
    Add package.json, fix for #1
  2. Add package.json to describe dependencies, drop them from the readme.…

    jzaefferer committed Apr 30, 2012
    … Add node_modules to .gitignore. Fixes #1
Commits on Apr 28, 2012
  1. testswarm-browserstack.cli.js

    clarkbox committed Apr 28, 2012
    -up cli to v1.0
    -remove unused vars in getSwarmStat()
    -move browser map to external file
    -add cron script example
  2. Merge pull request #8 from Krinkle/master

    clarkbox committed Apr 28, 2012
    issue #7: Update for TestSwarm 1.0 and some other minor fixes
Commits on Apr 27, 2012
  1. Refactor testswarm-browserstack to work with TestSwarm 1.0.0

    Krinkle committed Apr 26, 2012
    - 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