Documentation
¶
Index ¶
- func Convert(h HAR, options lib.Options, minSleep, maxSleep uint, enableChecks bool, ...) (result string, convertErr error)
- func IsAllowedURL(url string, only, skip []string) bool
- func SplitEntriesInBatches(entries []*Entry, interval uint) [][]*Entry
- type Browser
- type Cache
- type Content
- type Cookie
- type Creator
- type Entry
- type EntryByStarted
- type HAR
- type Header
- type Log
- type Page
- type PageByStarted
- type Param
- type PostData
- type QueryString
- type Request
- type Response
- type Timings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Convert ¶
func Convert(h HAR, options lib.Options, minSleep, maxSleep uint, enableChecks bool, returnOnFailedCheck bool, batchTime uint, nobatch bool, correlate bool, only, skip []string) (result string, convertErr error)
TODO: refactor this to have fewer parameters... or just refactor in general...
func IsAllowedURL ¶
Returns true if the given url is allowed from the only (only domains) and skip (skip domains) values, otherwise false
func SplitEntriesInBatches ¶
Types ¶
type Browser ¶
type Browser struct {
// Required. The name of the browser that created the log.
Name string `json:"name"`
// Required. The version number of the browser that created the log.
Version string `json:"version"`
// Optional. A comment provided by the user or the browser.
Comment string `json:"comment"`
}
Browser that created the log
type Cache ¶
type Cache struct {
}
Cache contains information about a request coming from browser cache.
type Content ¶
type Content struct {
// Size is the length of the returned content in bytes. Should be equal to
// response.bodySize if there is no compression and bigger when the content
// has been compressed.
Size int64 `json:"size"`
// MimeType is the MIME type of the response text (value of the Content-Type
// response header).
MimeType string `json:"mimeType"`
// Text contains the response body sent from the server or loaded from the
// browser cache. This field is populated with textual content only. The text
// field is either HTTP decoded text or a encoded (e.g. "base64")
// representation of the response body. Leave out this field if the
// information is not available.
Text string `json:"text,omitempty"`
// Encoding used for response text field e.g "base64". Leave out this field
// if the text field is HTTP decoded (decompressed & unchunked), than
// trans-coded from its original character set into UTF-8.
Encoding string `json:"encoding,omitempty"`
}
Content describes details about response content.
type Cookie ¶
type Cookie struct {
// Name is the cookie name.
Name string `json:"name"`
// Value is the cookie value.
Value string `json:"value"`
// Path is the path pertaining to the cookie.
Path string `json:"path,omitempty"`
// Domain is the host of the cookie.
Domain string `json:"domain,omitempty"`
// Expires contains cookie expiration time.
Expires time.Time `json:"-"`
// Expires8601 contains cookie expiration time in ISO 8601 format.
Expires8601 string `json:"expires,omitempty"`
// HTTPOnly is set to true if the cookie is HTTP only, false otherwise.
HTTPOnly bool `json:"httpOnly,omitempty"`
// Secure is set to true if the cookie was transmitted over SSL, false
// otherwise.
Secure bool `json:"secure,omitempty"`
}
Cookie is the data about a cookie on a request or response.
type Creator ¶
type Creator struct {
// Name of the log creator application.
Name string `json:"name"`
// Version of the log creator application.
Version string `json:"version"`
}
Creator is the program responsible for generating the log. Martian, in this case.
type Entry ¶
type Entry struct {
Pageref string `json:"pageref,omitempty"`
// ID is the unique ID for the entry.
ID string `json:"_id"`
// StartedDateTime is the date and time stamp of the request start (ISO 8601).
StartedDateTime time.Time `json:"startedDateTime"`
// Time is the total elapsed time of the request in milliseconds.
Time float32 `json:"time"`
// Request contains the detailed information about the request.
Request *Request `json:"request"`
// Response contains the detailed information about the response.
Response *Response `json:"response,omitempty"`
// Cache contains information about a request coming from browser cache.
Cache *Cache `json:"cache"`
// Timings describes various phases within request-response round trip. All
// times are specified in milliseconds.
Timings *Timings `json:"timings"`
}
Entry is a individual log entry for a request or response.
type EntryByStarted ¶
type EntryByStarted []*Entry
Define new types to sort
func (EntryByStarted) Len ¶
func (e EntryByStarted) Len() int
func (EntryByStarted) Less ¶
func (e EntryByStarted) Less(i, j int) bool
func (EntryByStarted) Swap ¶
func (e EntryByStarted) Swap(i, j int)
type Header ¶
type Header struct {
// Name is the header name.
Name string `json:"name"`
// Value is the header value.
Value string `json:"value"`
}
Header is an HTTP request or response header.
type Log ¶
type Log struct {
// Version number of the HAR format.
Version string `json:"version"`
// Creator holds information about the log creator application.
Creator *Creator `json:"creator"`
// Browser
Browser *Browser `json:"browser,omitempty"`
// Pages
Pages []Page `json:"pages,omitempty"`
// Entries is a list containing requests and responses.
Entries []*Entry `json:"entries"`
//
Comment string `json:"comment,omitempty"`
}
Log is the HAR HTTP request and response log.
type Page ¶
type Page struct {
// Date and time stamp for the beginning of the page load
// (ISO 8601 YYYY-MM-DDThh:mm:ss.sTZD, e.g. 2009-07-24T19:20:30.45+01:00).
StartedDateTime time.Time `json:"startedDateTime"`
// Unique identifier of a page within the . Entries use it to refer the parent page.
ID string `json:"id"`
// Page title.
Title string `json:"title"`
// (new in 1.2) A comment provided by the user or the application.
Comment string `json:"comment,omitempty"`
}
Page object for every exported web page and one <entry> object for every HTTP request. In case when an HTTP trace tool isn't able to group requests by a page, the <pages> object is empty and individual requests doesn't have a parent page.
type PageByStarted ¶
type PageByStarted []Page
func (PageByStarted) Len ¶
func (e PageByStarted) Len() int
func (PageByStarted) Less ¶
func (e PageByStarted) Less(i, j int) bool
func (PageByStarted) Swap ¶
func (e PageByStarted) Swap(i, j int)
type Param ¶
type Param struct {
// Name of the posted parameter.
Name string `json:"name"`
// Value of the posted parameter.
Value string `json:"value,omitempty"`
// Filename of a posted file.
Filename string `json:"fileName,omitempty"`
// ContentType is the content type of a posted file.
ContentType string `json:"contentType,omitempty"`
}
Param describes an individual posted parameter.
type PostData ¶
type PostData struct {
// MimeType is the MIME type of the posted data.
MimeType string `json:"mimeType"`
// Params is a list of posted parameters (in case of URL encoded parameters).
Params []Param `json:"params"`
// Text contains the plain text posted data.
Text string `json:"text"`
}
PostData describes posted data on a request.
type QueryString ¶
type QueryString struct {
// Name is the query parameter name.
Name string `json:"name"`
// Value is the query parameter value.
Value string `json:"value"`
}
QueryString is a query string parameter on a request.
type Request ¶
type Request struct {
// Method is the request method (GET, POST, ...).
Method string `json:"method"`
// URL is the absolute URL of the request (fragments are not included).
URL string `json:"url"`
// HTTPVersion is the Request HTTP version (HTTP/1.1).
HTTPVersion string `json:"httpVersion"`
// Cookies is a list of cookies.
Cookies []Cookie `json:"cookies"`
// Headers is a list of headers.
Headers []Header `json:"headers"`
// QueryString is a list of query parameters.
QueryString []QueryString `json:"queryString"`
// PostData is the posted data information.
PostData *PostData `json:"postData,omitempty"`
// HeaderSize is the Total number of bytes from the start of the HTTP request
// message until (and including) the double CLRF before the body. Set to -1
// if the info is not available.
HeadersSize int64 `json:"headersSize"`
// BodySize is the size of the request body (POST data payload) in bytes. Set
// to -1 if the info is not available.
BodySize int64 `json:"bodySize"`
// (new in 1.2) A comment provided by the user or the application.
Comment string `json:"comment"`
}
Request holds data about an individual HTTP request.
type Response ¶
type Response struct {
// Status is the response status code.
Status int `json:"status"`
// StatusText is the response status description.
StatusText string `json:"statusText"`
// HTTPVersion is the Response HTTP version (HTTP/1.1).
HTTPVersion string `json:"httpVersion"`
// Cookies is a list of cookies.
Cookies []Cookie `json:"cookies"`
// Headers is a list of headers.
Headers []Header `json:"headers"`
// Content contains the details of the response body.
Content *Content `json:"content"`
// RedirectURL is the target URL from the Location response header.
RedirectURL string `json:"redirectURL"`
// HeadersSize is the total number of bytes from the start of the HTTP
// request message until (and including) the double CLRF before the body.
// Set to -1 if the info is not available.
HeadersSize int64 `json:"headersSize"`
// BodySize is the size of the request body (POST data payload) in bytes. Set
// to -1 if the info is not available.
BodySize int64 `json:"bodySize"`
}
Response holds data about an individual HTTP response.
type Timings ¶
type Timings struct {
// Send is the time required to send HTTP request to the server.
Send float32 `json:"send"`
// Wait is the time spent waiting for a response from the server.
Wait float32 `json:"wait"`
// Receive is the time required to read entire response from server or cache.
Receive float32 `json:"receive"`
}
Timings describes various phases within request-response round trip. All times are specified in milliseconds