npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vagrant-e2etesting-protractor

v0.0.19

Published

Pre-installed Selenium server Vagrant configuration for a complete AngularJS E2E Testing with Protractor

Downloads

8

Readme

Pre-installed Selenium & Protractor Vagrant configuration

This project is designed for Selenium beginners who want to install a complete Selenium infrastructure including real and headless browser support within minutes without knowing in the technical detail of Selenium installation. E2E-Testing experts who are a minimalist can also choose to add this project to your minimal set in deploying a complete Selenium infrastructure for Protractor users and you can also consider to extend this project for your advanced test automation. Everyting can be installed with single npm install command which allows AngularJS developers and testers perform the E2E-testing life-cycle with consistent Protractor environment.

Prerequisite Software

Install

$ cd {YourNodeJSProject}
$ npm install vagrant-e2etesting-protractor 
$ cd node_modules/vagrant-e2etesting-protractor
$ vagrant up

There are two folders named "TESTES" and "GettingStarted" configured in the Vagrant configuration. The default sync method is rsync. It does not require you give root password. The rsync synced folder does a one-time one-way sync from the machine running to the machine being started by Vagrant.

The default Sync folder settings.

./node_modules/vagrant-e2etesting-protractor/TESTES --> VM --> /home/vagrant/TESTS
./node_modules/vagrant-e2etesting-protractor/GettingStarted --> VM --> /home/vagrant/GettingStarted

You can change type: "rsync" to type: "nfs" in Vagrantfile for allowing you have real-time sync without reloading Vagrant. For Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows.

In order to manage the collection of Protractor files in your project, you can also choose to make a symbolic link from the TESTES folder to your project workspace outside the node_modules folder for doing file sync between your test files and the VM.

$ cd YourNodeJSProject
$ ln -s node_modules/vagrant-e2etesting-protractor/TESTS  MyProtractorTests

All files under MyProtractorTests will be synced to the VM fodler "/home/vagrant/TESTS/""

Software Specifications

OS: Ubuntu trusty 64-bit (Ubuntu 14.04.3 LTS)
WindowMgr: Fluxbox
Default Storage: 40GB
Default Memory: 500Mb
Java: OpenJDK 1.7.0_91
SeleniumServer: v2.48.2
Protractor: v3.0.0
ChromeDriver: v2.20.353124
Node.js:  v4.2.4  (NPM 2.14.12)
Git: v1.9.1
Installed Browsers:
  - Firefox (v.43.0)
  - Google Chrome (v.47.0.2526.106 64bit)
NetworkInterfaces:
  NATAdapter: eth0: 10.x.x.x 
  HostOnlyAdapter: eth1: 192.168.33.10

Network Configuration

              Internet
                 ^
                 | 
         [  Host ]
         |       ^
         v       |
    [VirtualBoxSoftware]  
         |       ^
         v       |
       [eth1]  [eth0]         
       [     VM     ]  
         eth0: 10.x.x.x  (NAT)
         eth1: 192.168.33.10  (HostOnly)
         lo: 127.0.0.1
         LocalSelenium: http://localhost:4444/wd/hub
         RemoteSelenium: http://192.168.33.10:4444/wd/hub

Run VM

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor
$ vagrant up

Stop VM

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor
$ vagrant halt

Reload VM

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor
$ vagrant reload

Selenium server will be started automatically on boot.

Access VM using SSH

Username: vagrant Password: vagrant

Access VM using VagrantSSH (does not require password):

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor
$ vagrant ssh

Access VM using SSH client (requires password):

ssh [email protected]

Selenium addresses

There are two options you can set Selenium address of Protractor configuration.

If you run Protractor inside the VM which is provided a complete Selenium infrastructure and Protractor, use this address

exports.config = {
  ...
  seleniumAddress: 'http://localhost:4444/wd/hub',
  ...
}

Running example

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor
$ vagrant ssh
$ cd ~/GettingStarted/runProtractorInsideVM
$ protractor conf.js

If you run Protractor on your physical computer and use Selenium infrastructure inside the VM , use this address

exports.config = {
  ...
  seleniumAddress: 'http://192.168.33.10:4444/wd/hub',
  ...
}

Running example

$ cd {YourNodeJSProject}/node_modules/vagrant-e2etesting-protractor/GettingStarted/runProtractorOutsideVM
$ protractor conf.js

If you dont have "protractor" command on your physical machine, Use npm to install Protractor globally with "npm install -g protractor"

Modify Vagrant configuration

Memory provisioning

# Go to edit Vagrantfile (vb.memory = <MemoryInMB>)
$ vagrant reload

Use NFS for folder sync

# Go to edit Vagrantfile with following lines
# config.vm.synced_folder "GettingStarted/", "/home/vagrant/GettingStarted" ,  type: "nfs"
# config.vm.synced_folder "TESTS/", "/home/vagrant/TESTS" ,  type: "nfs"

$ vagrant reload

Use headless browser

# Go to edit Vagrantfile (vb.gui = false)
$ vagrant reload

Use real browser

# Go to edit Vagrantfile (vb.gui = true)
$ vagrant reload

Demo

It takes time for the first "vagrant up". You need to download BaseBox (the Ubuntu server) and to execute provisioning script to install a complete Selenium infrastructure and Protractor.

This screen recording demonstrates simplified Protractor test cases that borrow from http://www.protractortest.org/#/tutorial. The screen recording shows you the steps to run test examples using real and headless browser.

Logo

License

The MIT License (MIT)

Copyright (c) 2015 Vorachet Jaroensawas

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.