Documentation ¶
Index ¶
- Constants
- func Asset(name string) ([]byte, error)
- func AssetDigest(name string) ([sha256.Size]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetInfo(name string) (os.FileInfo, error)
- func AssetNames() []string
- func AssetString(name string) (string, error)
- func Digests() (map[string][sha256.Size]byte, error)
- func GeneratePostsSearchTerm(words []string, opts PostsSearchOpts) string
- func GenerateRandomSentences(count int) string
- func IsVersionSupported(version, serverVersionString string) (bool, error)
- func MustAsset(name string) []byte
- func MustAssetString(name string) string
- func PickIdleTimeMs(minIdleTimeMs, avgIdleTimeMs int, rate float64) time.Duration
- func PickRandomWord() string
- func RandomizeTeamDisplayName(name string) string
- func RandomizeUserName(name string) string
- func RestoreAsset(dir, name string) error
- func RestoreAssets(dir, name string) error
- func SelectWeighted(weights []int) (int, error)
- type PostsSearchOpts
- type UserAction
- type UserActionResponse
- func AddReaction(u user.User) UserActionResponse
- func CollapsedThreadsEnabled(u user.User) (bool, UserActionResponse)
- func CreateDirectChannel(u user.User) UserActionResponse
- func CreateGroupChannel(u user.User) UserActionResponse
- func CreatePost(u user.User) UserActionResponse
- func CreatePostReply(u user.User) UserActionResponse
- func CreatePrivateChannel(u user.User) UserActionResponse
- func CreatePublicChannel(u user.User) UserActionResponse
- func EditPost(u user.User) UserActionResponse
- func EmulateUserTyping(t string, cb func(term string) UserActionResponse) UserActionResponse
- func FetchStaticAssets(u user.User) UserActionResponse
- func GetPinnedPosts(u user.User) UserActionResponse
- func JoinChannel(u user.User) UserActionResponse
- func JoinTeam(u user.User) UserActionResponse
- func LeaveChannel(u user.User) UserActionResponse
- func Login(u user.User) UserActionResponse
- func Logout(u user.User) UserActionResponse
- func MessageExport(u user.User) UserActionResponse
- func Reload(u user.User) UserActionResponse
- func RemoveReaction(u user.User) UserActionResponse
- func SearchChannels(u user.User) UserActionResponse
- func SearchPosts(u user.User) UserActionResponse
- func SearchUsers(u user.User) UserActionResponse
- func SignUp(u user.User) UserActionResponse
- func UpdateProfileImage(u user.User) UserActionResponse
- func ViewChannel(u user.User) UserActionResponse
- func ViewUser(u user.User) UserActionResponse
- type UserController
- type UserError
- type UserStatus
Constants ¶
const ( USER_STATUS_UNKNOWN int = iota USER_STATUS_STARTED USER_STATUS_STOPPED USER_STATUS_DONE USER_STATUS_ERROR USER_STATUS_FAILED USER_STATUS_INFO )
User status types.
const AssetDebug = false
AssetDebug is true if the assets were built with the debug flag enabled.
Variables ¶
This section is empty.
Functions ¶
func Asset ¶
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetDigest ¶
AssetDigest returns the digest of the file with the given name. It returns an error if the asset could not be found or the digest could not be loaded.
func AssetDir ¶
AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:
data/ foo.txt img/ a.png b.png
then AssetDir("data") would return []string{"foo.txt", "img"}, AssetDir("data/img") would return []string{"a.png", "b.png"}, AssetDir("foo.txt") and AssetDir("notexist") would return an error, and AssetDir("") will return []string{"data"}.
func AssetInfo ¶
AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetString ¶
AssetString returns the asset contents as a string (instead of a []byte).
func GeneratePostsSearchTerm ¶ added in v1.1.0
func GeneratePostsSearchTerm(words []string, opts PostsSearchOpts) string
GeneratePostsSearchTerm generates a posts search term from the given words and options.
func GenerateRandomSentences ¶
GenerateRandomSentences generates random string from test_text file.
func IsVersionSupported ¶ added in v1.2.0
IsVersionSupported returns whether a given version is supported by the provided server version string.
func MustAsset ¶
MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.
func MustAssetString ¶
MustAssetString is like AssetString but panics when Asset would return an error. It simplifies safe initialization of global variables.
func PickIdleTimeMs ¶ added in v1.2.0
func PickRandomWord ¶ added in v1.1.0
func PickRandomWord() string
PickRandomWord returns a random word.
func RandomizeTeamDisplayName ¶
RandomizeTeamDisplayName is a utility function to set a random team display name while keeping the basic pattern unchanged. Assumes the given name has a pattern of team{{number}}[-letter].
func RandomizeUserName ¶
RandomizeUserName is a utility function used by UserController's implementations to randomize a username while keeping a basic pattern unchanged. Assumes the given name has a pattern of {{agent-id}}-{{user-name}}-{{user-number}}. If the pattern is not found it will return the input string unaltered.
func RestoreAsset ¶
RestoreAsset restores an asset under the given directory.
func RestoreAssets ¶
RestoreAssets restores an asset under the given directory recursively.
func SelectWeighted ¶
SelectWeighted does a random weighted selection on a given slice of weights.
Types ¶
type PostsSearchOpts ¶ added in v1.1.0
type UserAction ¶
type UserAction func(user.User) UserActionResponse
UserAction is a function that simulates a specific behaviour for the provided user.User. It returns a UserActionResponse.
type UserActionResponse ¶
type UserActionResponse struct { // Info contains a string with information about the action // execution. Info string // Err contains an error when the action failed. Err error }
UserActionResponse is a structure containing information about the result of running a UserAction.
func AddReaction ¶
func AddReaction(u user.User) UserActionResponse
AddReaction adds a reaction by the user to a random post.
func CollapsedThreadsEnabled ¶ added in v1.3.0
func CollapsedThreadsEnabled(u user.User) (bool, UserActionResponse)
func CreateDirectChannel ¶
func CreateDirectChannel(u user.User) UserActionResponse
CreateDirectChannel creates a direct message channel with a random user from a random team/channel.
func CreateGroupChannel ¶
func CreateGroupChannel(u user.User) UserActionResponse
CreateGroupChannel creates a group channel with 3 random users.
func CreatePost ¶
func CreatePost(u user.User) UserActionResponse
CreatePost creates a new post in a random channel by the given user.
func CreatePostReply ¶
func CreatePostReply(u user.User) UserActionResponse
CreatePostReply replies to a randomly picked post.
func CreatePrivateChannel ¶
func CreatePrivateChannel(u user.User) UserActionResponse
CreatePrivateChannel creates a private channel in a random team.
func CreatePublicChannel ¶
func CreatePublicChannel(u user.User) UserActionResponse
CreatePublicChannel creates a public channel in a random team.
func EmulateUserTyping ¶
func EmulateUserTyping(t string, cb func(term string) UserActionResponse) UserActionResponse
EmulateUserTyping calls cb function for each rune in the input string.
func FetchStaticAssets ¶
func FetchStaticAssets(u user.User) UserActionResponse
FetchStaticAssets parses index.html and fetches static assets mentioned in it
func GetPinnedPosts ¶
func GetPinnedPosts(u user.User) UserActionResponse
GetPinnedPosts fetches the pinned posts in a channel that user is a member of.
func JoinChannel ¶
func JoinChannel(u user.User) UserActionResponse
JoinChannel adds the user to the first channel that has been found in the store and which the user is not a member of.
func JoinTeam ¶
func JoinTeam(u user.User) UserActionResponse
JoinTeam adds the given user to the first team that has been found in the store and which the user is not a member of.
func LeaveChannel ¶
func LeaveChannel(u user.User) UserActionResponse
LeaveChannel removes the user from the first channel that has been found in the store and which the user is a member of.
func Login ¶
func Login(u user.User) UserActionResponse
Login authenticates the user with the server and fetches teams, users and channels that are related with the user.
func Logout ¶
func Logout(u user.User) UserActionResponse
Logout disconnects the user from the server and logs out from the server.
func MessageExport ¶ added in v1.3.0
func MessageExport(u user.User) UserActionResponse
MessageExport simulates the given user performing a compliance message export
func Reload ¶
func Reload(u user.User) UserActionResponse
Reload simulates the given user reloading the page while connected to the server by executing the API calls seen during a real page reload.
func RemoveReaction ¶
func RemoveReaction(u user.User) UserActionResponse
RemoveReaction removes a reaction from a random post which is added by the user.
func SearchChannels ¶
func SearchChannels(u user.User) UserActionResponse
SearchChannels searches for channels by the given user.
func SearchPosts ¶
func SearchPosts(u user.User) UserActionResponse
SearchPosts searches for posts by the given user.
func SearchUsers ¶
func SearchUsers(u user.User) UserActionResponse
SearchUsers searches for users by the given user.
func SignUp ¶
func SignUp(u user.User) UserActionResponse
SignUp signs up the given user to the server.
func UpdateProfileImage ¶
func UpdateProfileImage(u user.User) UserActionResponse
UpdateProfileImage uploads a new profile picture for the given user.
func ViewChannel ¶
func ViewChannel(u user.User) UserActionResponse
ViewChannel performs a view action in a random team/channel for the given user, which will mark all posts as read in the channel.
func ViewUser ¶
func ViewUser(u user.User) UserActionResponse
ViewUser simulates opening a random user profile for the given user.
type UserController ¶
type UserController interface { // Run starts the controller to begin performing the user actions. Run() // SetRate determines the relative speed in which user actions are performed // one after the other. A rate of 1.0 will run the actions in their usual // speed. A rate of 2.0 will slow down the actions by a factor of 2. SetRate(rate float64) error // Stop stops the controller. Stop() }
UserController defines the behavior of a single user in a load test. It contains a very simple interface to just start/stop the actions performed by a user.
type UserError ¶
type UserError struct { // Err contains the error encountered while performing the action. Err error // Origin contains information about where the error originated. Origin string }
UserError is a custom error type used to report user errors.
func NewUserError ¶
NewUserError returns a new UserError object with the given error including location information.
type UserStatus ¶
type UserStatus struct { // ControllerId is the id of the controller. ControllerId int // User is the user who is performing the action. User user.User // Code is an integer code of the status returned. Code int // Info contains any extra information attached with the status. Info string // Custom error containing the error encountered and location information. Err error }
UserStatus contains the status of an action performed by a user.