go-smoke

command module
v0.0.0-...-bb3e6dd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2016 License: GPL-3.0 Imports: 5 Imported by: 0

README

go-smoke

go microservice to smoke test a website.

  • RESTful JSON-based API Server.
  • Supports OAuth for authentication and JWT for authorization.
  • Third-party packages: (no web development framework such as NET MVC, Ruby on Rails or Beego for Go.)
    • gopkg.in/mgo.v2: MongoDB driver for Go and implementation of BSON spec for Go.
    • gorilla/mux: request router and dispatcher.
    • dgrijalva/jwt-go: helper functions for working with JSON Web Tokens (JWT).
    • codegangsta/negroni: idiomatic approach to HTTP middleware.
  • Deployed in Linux with Docker container.

Usage

Runs a smoke test of multiple URLs on a website using concurrent go routines to prime and check the status of a host recently deployed to via a CI job, returns PASS or FAIL along with the status code, duration and size of http responses to each of the URLs. Normally called from every host in a target environment during a rolling deployment by taking a host down behind the load balancer (reverse proxy), deploying a new build and smoke testing it.

###Happy flow

#####First time

  • register user
  • login user
  • add site e.g. www.carnival.com
  • add URLs
  • run a smoke test against a site on a host

#####Going forward

  • login user
  • run a smoke test against a site on a host

#URIs

URI, HTTP Verb, Functionality

/users/register, Post, Creates a new user, e.g. chefdeliveryusr

/users/login, Post, User logs in to the system, which returns a JWT if login is successful.

/sites, Post, Creates a new site. E.g. www.carnival.com, www.carnival.co.uk, ww4.uatcarnival.com

/sites, Get, Gets all sites

/smoketests, Post, Runs a smoke test. Host IP, site name from JSON data on Http request Body. JWT on Header.

/urls/sites/{id}, Get, Gets all URLs for a given site ID. The value of the ID comes from the route parameter

/urls, Post, Creates a new URL against an existing site

E.g. Prime and check status of ..

Core "http://www.carnival.com"

BookingEngine "https://secure.carnival.com/BookingEngine/Booking/Book?durDays=4&embkCode=MIA&isMilitary=N&isOver55=N&isPastGuest=N&itinCode=ZW0&numGuests=2&sailDate=03062017&sailingID=77874&shipCode=VI&showDbl=False&subRegionCode=CW&be_version=22#/number-of-staterooms"

Login "https://secure.carnival.com/BookedGuest/guestmanagement/mycarnival/logon?returnUrl=http%3A%2F%2Fwww.carnival.com%2F"

BookedGuest "https://secure.carnival.com/BookedGuest/"

ShoreEx "https://https://secure.carnival.com/shore-excursions"

Funshops "http://www.carnival.com/Funshops/"

OnlineCheckIn "TO DO"

TO DO: Add URIs for reporting, updating and deleting previously created users, sites, URLs and smoke tests.

atom packages

go-plus, emmet, terminal-plus, minimap, atom-bootstrap4

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Smoke crawls web links starting with the smoketest and urls arguments.
Smoke crawls web links starting with the smoketest and urls arguments.
test
dockertest
Package dockertest contains helper functions for setting up and tearing down docker containers to aid in testing.
Package dockertest contains helper functions for setting up and tearing down docker containers to aid in testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL