Documentation ¶
Index ¶
- func Run(outputType OutputType, outputDir, profilePath string, args []string)
- type Browser
- type Cache
- type CacheObject
- type CaseHar
- type CasePostman
- type Content
- type ConverterHAR
- type ConverterJSON
- func (c *ConverterJSON) MakePyTestScript() (string, error)
- func (c *ConverterJSON) Struct() *TCaseConverter
- func (c *ConverterJSON) ToGoTest() (string, error)
- func (c *ConverterJSON) ToJSON() (string, error)
- func (c *ConverterJSON) ToPyTest() (string, error)
- func (c *ConverterJSON) ToYAML() (string, error)
- type ConverterPostman
- type ConverterYAML
- type Cookie
- type Creator
- type Entry
- type ICaseConverter
- type InputType
- type Log
- type NVP
- type OutputType
- type Page
- type PageTiming
- type PageTimings
- type PostData
- type PostParam
- type Profile
- type Request
- type Response
- type TBody
- type TCaseConverter
- type TField
- type TInfo
- type TItem
- type TRequest
- type TResponse
- type TUrl
- type TestResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Run ¶
func Run(outputType OutputType, outputDir, profilePath string, args []string)
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 { // optional State of a cache entry before the request. Leave out this field // if the information is not available. BeforeRequest CacheObject `json:"beforeRequest,omitempty"` // optional State of a cache entry after the request. Leave out this field if // the information is not available. AfterRequest CacheObject `json:"afterRequest,omitempty"` // optional (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
Cache contains info about a request coming from browser cache.
type CacheObject ¶
type CacheObject struct { // optional - Expiration time of the cache entry. Expires string `json:"expires,omitempty"` // The last time the cache entry was opened. LastAccess string `json:"lastAccess"` // Etag ETag string `json:"eTag"` // The number of times the cache entry has been opened. HitCount int `json:"hitCount"` // optional (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
CacheObject is used by both beforeRequest and afterRequest
type CaseHar ¶
type CaseHar struct {
Log Log `json:"log"`
}
CaseHar is a container type for deserialization
type CasePostman ¶
CasePostman represents the postman exported file
type Content ¶
type Content struct { // 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 int `json:"size"` // optional Number of bytes saved. Leave out this field if the information // is not available. Compression int `json:"compression,omitempty"` // MIME type of the response text (value of the Content-Type response // header). The charset attribute of the MIME type is included (if // available). MimeType string `json:"mimeType"` // optional 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"` // optional (new in 1.2) 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"` // optional (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
Content describes details about response content (embedded in <response> object).
type ConverterHAR ¶
type ConverterHAR struct {
// contains filtered or unexported fields
}
func NewConverterHAR ¶
func NewConverterHAR(converter *TCaseConverter) *ConverterHAR
func (*ConverterHAR) Struct ¶
func (c *ConverterHAR) Struct() *TCaseConverter
func (*ConverterHAR) ToGoTest ¶
func (c *ConverterHAR) ToGoTest() (string, error)
func (*ConverterHAR) ToJSON ¶
func (c *ConverterHAR) ToJSON() (string, error)
func (*ConverterHAR) ToPyTest ¶
func (c *ConverterHAR) ToPyTest() (string, error)
func (*ConverterHAR) ToYAML ¶
func (c *ConverterHAR) ToYAML() (string, error)
type ConverterJSON ¶
type ConverterJSON struct {
// contains filtered or unexported fields
}
func NewConverterJSON ¶
func NewConverterJSON(converter *TCaseConverter) *ConverterJSON
func (*ConverterJSON) MakePyTestScript ¶
func (c *ConverterJSON) MakePyTestScript() (string, error)
func (*ConverterJSON) Struct ¶
func (c *ConverterJSON) Struct() *TCaseConverter
func (*ConverterJSON) ToGoTest ¶
func (c *ConverterJSON) ToGoTest() (string, error)
func (*ConverterJSON) ToJSON ¶
func (c *ConverterJSON) ToJSON() (string, error)
func (*ConverterJSON) ToPyTest ¶
func (c *ConverterJSON) ToPyTest() (string, error)
func (*ConverterJSON) ToYAML ¶
func (c *ConverterJSON) ToYAML() (string, error)
type ConverterPostman ¶
type ConverterPostman struct {
// contains filtered or unexported fields
}
func NewConverterPostman ¶
func NewConverterPostman(converter *TCaseConverter) *ConverterPostman
func (*ConverterPostman) Struct ¶
func (c *ConverterPostman) Struct() *TCaseConverter
func (*ConverterPostman) ToGoTest ¶
func (c *ConverterPostman) ToGoTest() (string, error)
func (*ConverterPostman) ToJSON ¶
func (c *ConverterPostman) ToJSON() (string, error)
func (*ConverterPostman) ToPyTest ¶
func (c *ConverterPostman) ToPyTest() (string, error)
func (*ConverterPostman) ToYAML ¶
func (c *ConverterPostman) ToYAML() (string, error)
type ConverterYAML ¶
type ConverterYAML struct {
// contains filtered or unexported fields
}
func NewConverterYAML ¶
func NewConverterYAML(converter *TCaseConverter) *ConverterYAML
func (*ConverterYAML) Struct ¶
func (c *ConverterYAML) Struct() *TCaseConverter
func (*ConverterYAML) ToGoTest ¶
func (c *ConverterYAML) ToGoTest() (string, error)
func (*ConverterYAML) ToJSON ¶
func (c *ConverterYAML) ToJSON() (string, error)
func (*ConverterYAML) ToPyTest ¶
func (c *ConverterYAML) ToPyTest() (string, error)
func (*ConverterYAML) ToYAML ¶
func (c *ConverterYAML) ToYAML() (string, error)
type Cookie ¶
type Cookie struct { // The name of the cookie. Name string `json:"name"` // The cookie value. Value string `json:"value"` // optional The path pertaining to the cookie. Path string `json:"path,omitempty"` // optional The host of the cookie. Domain string `json:"domain,omitempty"` // optional Cookie expiration time. // (ISO 8601 YYYY-MM-DDThh:mm:ss.sTZD, e.g. 2009-07-24T19:20:30.123+02:00). Expires string `json:"expires,omitempty"` // optional Set to true if the cookie is HTTP only, false otherwise. HTTPOnly bool `json:"httpOnly,omitempty"` // optional (new in 1.2) True if the cookie was transmitted over ssl, false // otherwise. Secure bool `json:"secure,omitempty"` // optional (new in 1.2) A comment provided by the user or the application. Comment bool `json:"comment,omitempty"` }
Cookie contains list of all cookies (used in <request> and <response> objects).
type Creator ¶
type Creator struct { // Required. The name of the application that created the log. Name string `json:"name"` // Required. The version number of the application that created the log. Version string `json:"version"` // Optional. A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
Creator contains information about the log creator application
type Entry ¶
type Entry struct { Pageref string `json:"pageref,omitempty"` // Date and time stamp of the request start // (ISO 8601 YYYY-MM-DDThh:mm:ss.sTZD). StartedDateTime string `json:"startedDateTime"` // Total elapsed time of the request in milliseconds. This is the sum of all // timings available in the timings object (i.e. not including -1 values) . Time float32 `json:"time"` // Detailed info about the request. Request Request `json:"request"` // Detailed info about the response. Response Response `json:"response"` // Info about cache usage. Cache Cache `json:"cache"` // Detailed timing info about request/response round trip. PageTimings PageTimings `json:"pageTimings"` // optional (new in 1.2) IP address of the server that was connected // (result of DNS resolution). ServerIPAddress string `json:"serverIPAddress,omitempty"` // optional (new in 1.2) Unique ID of the parent TCP/IP connection, can be // the client port number. Note that a port number doesn't have to be unique // identifier in cases where the port is shared for more connections. If the // port isn't available for the application, any other unique connection ID // can be used instead (e.g. connection index). Leave out this field if the // application doesn't support this info. Connection string `json:"connection,omitempty"` // (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
Entry is a unique, optional Reference to the parent page. Leave out this field if the application does not support grouping by pages.
type ICaseConverter ¶
type ICaseConverter interface { Struct() *TCaseConverter ToJSON() (string, error) ToYAML() (string, error) ToGoTest() (string, error) ToPyTest() (string, error) }
ICaseConverter represents all kinds of case converters which could convert case into JSON/YAML/gotest/pytest format
type Log ¶
type Log struct { // Required. Version number of the format. Version string `json:"version"` // Required. An object of type creator that contains the name and version // information of the log creator application. Creator Creator `json:"creator"` // Optional. An object of type browser that contains the name and version // information of the user agent. Browser Browser `json:"browser"` // Optional. An array of objects of type page, each representing one exported // (tracked) page. Leave out this field if the application does not support // grouping by pages. Pages []Page `json:"pages,omitempty"` // Required. An array of objects of type entry, each representing one // exported (tracked) HTTP request. Entries []Entry `json:"entries"` // Optional. A comment provided by the user or the application. Sorting // entries by startedDateTime (starting from the oldest) is preferred way how // to export data since it can make importing faster. However the reader // application should always make sure the array is sorted (if required for // the import). Comment string `json:"comment"` }
Log represents the root of the exported data. This object MUST be present and its name MUST be "log".
type NVP ¶
type NVP struct { Name string `json:"name"` Value string `json:"value"` Comment string `json:"comment,omitempty"` }
NVP is simply a name/value pair with a comment
type OutputType ¶
type OutputType int
const ( OutputTypeJSON OutputType = iota // default output type: JSON OutputTypeYAML OutputTypeGoTest OutputTypePyTest )
func (OutputType) String ¶
func (outputType OutputType) String() string
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 string `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"` // Detailed timing info about page load. PageTiming PageTiming `json:"pageTiming"` // (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 PageTiming ¶
type PageTiming struct { // Content of the page loaded. Number of milliseconds since page load started // (page.startedDateTime). Use -1 if the timing does not apply to the current // request. // Depeding on the browser, onContentLoad property represents DOMContentLoad // event or document.readyState == interactive. OnContentLoad int `json:"onContentLoad"` // Page is loaded (onLoad event fired). Number of milliseconds since page // load started (page.startedDateTime). Use -1 if the timing does not apply // to the current request. OnLoad int `json:"onLoad"` // (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment"` }
PageTiming describes timings for various events (states) fired during the page load. All times are specified in milliseconds. If a time info is not available appropriate field is set to -1.
type PageTimings ¶
type PageTimings struct { Blocked int `json:"blocked,omitempty"` // optional - Time spent in a queue waiting for a network connection. Use -1 // if the timing does not apply to the current request. DNS int `json:"dns,omitempty"` // optional - DNS resolution time. The time required to resolve a host name. // Use -1 if the timing does not apply to the current request. Connect int `json:"connect,omitempty"` // optional - Time required to create TCP connection. Use -1 if the timing // does not apply to the current request. Send int `json:"send"` // Time required to send HTTP request to the server. Wait int `json:"wait"` // Waiting for a response from the server. Receive int `json:"receive"` // Time required to read entire response from the server (or cache). Ssl int `json:"ssl,omitempty"` // optional (new in 1.2) - Time required for SSL/TLS negotiation. If this // field is defined then the time is also included in the connect field (to // ensure backward compatibility with HAR 1.1). Use -1 if the timing does not // apply to the current request. Comment string `json:"comment,omitempty"` }
PageTimings describes various phases within request-response round trip. All times are specified in milliseconds.
type PostData ¶
type PostData struct { // Mime type of posted data. MimeType string `json:"mimeType"` // List of posted parameters (in case of URL encoded parameters). Params []PostParam `json:"params"` // Plain text posted data Text string `json:"text"` // optional (new in 1.2) A comment provided by the user or the // application. Comment string `json:"comment,omitempty"` }
PostData describes posted data, if any (embedded in <request> object).
type PostParam ¶
type PostParam struct { // name of a posted parameter. Name string `json:"name"` // optional value of a posted parameter or content of a posted file. Value string `json:"value,omitempty"` // optional name of a posted file. FileName string `json:"fileName,omitempty"` // optional content type of a posted file. ContentType string `json:"contentType,omitempty"` // optional (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
PostParam is a list of posted parameters, if any (embedded in <postData> object).
type Profile ¶
type Profile struct { Override bool `json:"override" yaml:"override"` Headers map[string]string `json:"headers" yaml:"headers"` Cookies map[string]string `json:"cookies" yaml:"cookies"` }
Profile is used to override or update(create if not existed) original headers and cookies
type Request ¶
type Request struct { // Request method (GET, POST, ...). Method string `json:"method"` // Absolute URL of the request (fragments are not included). URL string `json:"url"` // Request HTTP Version. HTTPVersion string `json:"httpVersion"` // List of cookie objects. Cookies []Cookie `json:"cookies"` // List of header objects. Headers []NVP `json:"headers"` // List of query parameter objects. QueryString []NVP `json:"queryString"` // Posted data. PostData PostData `json:"postData"` // Total number of bytes from the start of the HTTP request message until // (and including) the double CRLF before the body. Set to -1 if the info // is not available. HeaderSize int `json:"headerSize"` // Size of the request body (POST data payload) in bytes. Set to -1 if the // info is not available. BodySize int `json:"bodySize"` // (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment"` }
Request contains detailed info about performed request.
type Response ¶
type Response struct { // Response status. Status int `json:"status"` // Response status description. StatusText string `json:"statusText"` // Response HTTP Version. HTTPVersion string `json:"httpVersion"` // List of cookie objects. Cookies []Cookie `json:"cookies"` // List of header objects. Headers []NVP `json:"headers"` // Details about the response body. Content Content `json:"content"` // Redirection target URL from the Location response header. RedirectURL string `json:"redirectURL"` // Total number of bytes from the start of the HTTP response message until // (and including) the double CRLF before the body. Set to -1 if the info is // not available. // The size of received response-headers is computed only from headers that // are really received from the server. Additional headers appended by the // browser are not included in this number, but they appear in the list of // header objects. HeadersSize int `json:"headersSize"` // Size of the received response body in bytes. Set to zero in case of // responses coming from the cache (304). Set to -1 if the info is not // available. BodySize int `json:"bodySize"` // optional (new in 1.2) A comment provided by the user or the application. Comment string `json:"comment,omitempty"` }
Response contains detailed info about the response.
type TCaseConverter ¶
type TCaseConverter struct { InputPath string OutputDir string Profile *Profile InputType InputType OutputType OutputType CaseHAR *CaseHar CasePostman *CasePostman CaseSwagger *spec.Swagger TCase *hrp.TCase }
TCaseConverter holds the common properties of case converter
func NewTCaseConverter ¶
func NewTCaseConverter(path string) (tCaseConverter *TCaseConverter)
func (*TCaseConverter) SetOutputDir ¶
func (c *TCaseConverter) SetOutputDir(dir string)
func (*TCaseConverter) SetProfile ¶
func (c *TCaseConverter) SetProfile(path string)
func (*TCaseConverter) ToGoTest ¶
func (c *TCaseConverter) ToGoTest() (string, error)
func (*TCaseConverter) ToPyTest ¶
func (c *TCaseConverter) ToPyTest() (string, error)
type TInfo ¶
type TInfo struct { Name string `json:"name"` Description string `json:"description"` Schema string `json:"schema"` }
TInfo gives information about the collection
type TItem ¶
type TItem struct { Items []TItem `json:"item"` Name string `json:"name"` Request TRequest `json:"request"` Responses []TResponse `json:"response"` }
TItem contains the detail information of request and expected responses item could be defined recursively
type TestResult ¶
type TestResult struct { URL string `json:"url"` Status int `json:"status"` // 200, 500, etc. StartTime time.Time `json:"startTime"` EndTime time.Time `json:"endTime"` Latency int `json:"latency"` // milliseconds Method string `json:"method"` HarFile string `json:"harfile"` }
TestResult contains results for an individual HTTP request