ht

module
v3.2.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2016 License: BSD-3-Clause

README

HT: HTTP Testing Made Easy

Go Report Card GoDoc

End-to-end testing of HTTP requests/responses is easy with Go.

Writing and maintaining high level test is even easier with ht.

Goals

ht tries to achieve the following:

  • Make generating all common HTTP requests easy.
  • Provide high- and low-level checks on the received response.
  • Make measuring response times easy.

Non-Goals

ht is not the jack of all trades in testing web applications:

  • Simulating different browsers is not done.
  • Simulating interactions in a browser is not done.

Installation

Installing ht should be simple if Go 1.5 and git are available and working:

  • Run GO15VENDOREXPERIMENT=1 go get github.com/vdobler/ht/cmd/ht which should download, compile and install everything.

  • Run $GOPATH/bin/ht help to get you started.

  • For a quick check of a HTML page do a

    $GOPATH/bin/ht quick <URL-of-HTML-page>

    and check the generated Report.html file.

If you want to run checks on rendered HTML pages you need a local installation of PhantomJS in version >= 2.0. See http://phantomjs.org .

Documentation

For a start have a look at the

Tutorial https://github.com/vdobler/ht/blob/master/cmd/ht/Tutorial.md

or the

Showcase here https://github.com/vdobler/ht/tree/master/showcase

The showcase is pretty nonsensical but show almost all features in just a few files. You might want to $ go run showcase.go to have a dummy server listening on localhost:8080 to run the tests against: $ ht exec showcase.suite

For details see the the godoc for reference:

Copyright 2016 Volker Dobler

All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Attribution

Ht includes open source from the following sources:

  • Go Libraries. Copyright 2012 The Go Authors. Licensed under the BSD license (http://golang.org/LICENSE).
  • Bender. Copyright 2014 Pinterest.com. Licensed under the Apache License, Version 2.0
  • Cascadia. Copyright (c) 2011 Andy Balholm. Licensed under the BSD 2-clasue license.
  • Gojee. Copyright (c) 2013 The New York Times Company. Licensed under the Apache License, Version 2.0
  • Gojsonexplode. Copyright (c) 2013 The New York Times Company. Licensed under the Apache License, Version 2.0
  • Otto. Copyright (c) 2012 Robert Krimen. Licensed under the MIT License.
  • Xmlpath. Copyright (c) 2013-2014 Canonical Inc. Licensed under the LGPLv3. See https://gopkg.in/xmlpath.v2
  • Hjson. Copyright (c) 2016 Christian Zangl. Licensed under the MIT License.
  • Sourcemap. Copyright (c) 2016 The github.com/go-sourcemap/sourcemap Contributors. Licensed under the BSD 2-clasue license.

Directories

Path Synopsis
cmd
ht
ht generates HTTP requests and checks the received responses.
ht generates HTTP requests and checks the received responses.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package fingerprint provides fingerprinting of images.
Package fingerprint provides fingerprinting of images.
Package ht provides functions for easy testing of HTTP based protocols.
Package ht provides functions for easy testing of HTTP based protocols.
internal
bender
Package bender makes it easy to build load testing applications for services using protocols like HTTP, Thrift, Protocol Buffers and many others.
Package bender makes it easy to build load testing applications for services using protocols like HTTP, Thrift, Protocol Buffers and many others.
Package loghist provides integer histograms with exponentially growing bucket sizes.
Package loghist provides integer histograms with exponentially growing bucket sizes.
Package mime provides a map of mime types to file extensions.
Package mime provides a map of mime types to file extensions.
Package populate provides function to populate Go values from an untyped interface{} soup.
Package populate provides function to populate Go values from an untyped interface{} soup.
Package recorder allows to capture request/response pairs via a reverse proxy and generate tests for these pairs.
Package recorder allows to capture request/response pairs via a reverse proxy and generate tests for these pairs.
Package sanitize contains functions to sanitize filenames.
Package sanitize contains functions to sanitize filenames.
showcase implements a server to run the showcase.suite against
showcase implements a server to run the showcase.suite against
Package suite contains functions to input tests from disk and execute suites of tests in a controlled way.
Package suite contains functions to input tests from disk and execute suites of tests in a controlled way.

Jump to

Keyboard shortcuts

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