"}},"component({\"componentId\":\"custom.widget.Custom_Style_Helper\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:readyapi-questions\",\"message:19607\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.smartbear.com\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"component({\"componentId\":\"custom.widget.Footer_Links\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:readyapi-questions\",\"message:19607\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.smartbear.com\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/EscalatedMessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/AcceptedSolutionButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000"}],"message({\"id\":\"message:19659\"})":{"__ref":"ForumReplyMessage:message:19659"},"message({\"id\":\"message:19612\"})":{"__ref":"ForumReplyMessage:message:19612"},"message({\"id\":\"message:19617\"})":{"__ref":"ForumReplyMessage:message:19617"},"message({\"id\":\"message:19623\"})":{"__ref":"ForumReplyMessage:message:19623"},"message({\"id\":\"message:19628\"})":{"__ref":"ForumReplyMessage:message:19628"},"message({\"id\":\"message:19633\"})":{"__ref":"ForumReplyMessage:message:19633"},"message({\"id\":\"message:19638\"})":{"__ref":"ForumReplyMessage:message:19638"},"message({\"id\":\"message:19644\"})":{"__ref":"ForumReplyMessage:message:19644"},"message({\"id\":\"message:19649\"})":{"__ref":"ForumReplyMessage:message:19649"},"message({\"id\":\"message:19654\"})":{"__ref":"ForumReplyMessage:message:19654"},"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/attachments/AttachmentView/AttachmentViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/attachments/AttachmentView/AttachmentViewChip-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolvedBadge\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1720711077000"}]},"CachedAsset:pages-1737143803832":{"__typename":"CachedAsset","id":"pages-1737143803832","value":[{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ChampionRules.Page","type":"COMMUNITY","urlPath":"/c/champion-rules/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143803832,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Anonymous","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"true","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MM-dd-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201","mimeType":"image/png"},"Category:category:ready_api_forums":{"__typename":"Category","id":"category:ready_api_forums","entityType":"CATEGORY","displayId":"ready_api_forums","nodeType":"category","depth":1,"title":"ReadyAPI","shortTitle":"ReadyAPI Community","parent":{"__ref":"Category:category:top"}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Forum:board:readyapi-questions":{"__typename":"Forum","id":"board:readyapi-questions","entityType":"FORUM","displayId":"readyapi-questions","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"ReadyAPI Questions","description":"","avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201\"}"},"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:ready_api_forums"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:nwkab66374"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:ready_api_forums"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Questions","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"LIKES","repliesFormat":"threaded"},"eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"PRESET_ONLY"},"Rank:rank:29":{"__typename":"Rank","id":"rank:29","position":0,"name":"SmartBear Alumni (Retired)","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:11594":{"__typename":"User","id":"user:11594","uid":11594,"login":"SmartBear_Suppo","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"},"rank":{"__ref":"Rank:rank:29"},"email":"","messagesCount":8810,"biography":null,"topicsCount":41,"kudosReceivedCount":0,"kudosGivenCount":0,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2009-02-16T01:53:18.000-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"followersCount":null,"solutionsCount":10,"ssoId":null,"entityType":"USER","eventPath":"community:nwkab66374/user:11594"},"ForumTopicMessage:message:19607":{"__typename":"ForumTopicMessage","uid":19607,"subject":"Share your components here","id":"message:19607","revisionNum":1,"repliesCount":17,"author":{"__ref":"User:user:11594"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:19607"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:19607"},"body":"So, you have made a custom loadUI component that you think might be useful to other users? Well, go ahead and post it in this topic and it will be published at loadui.org/Custom-Components.

Below is a template that you can use when posting:


[hr:3haswfjc][/hr:3haswfjc]
Component name:
Process Runner

Developer:
Ole Lensmar, eviware

Description:
Runs an operating system process. Example component taken from http://www.eviware.com/blog/?p=196.

Source code:
/**
* Runs a process
*
* @name Process Runner
* @category runners
*/

// the command itself
createProperty('command', String,\"\")

sample = { message, sampleId ->
try
{
// start a process and wait for it to finish
def proc = command.value.execute()
proc.waitFor()

// add result properties
message[\"ExitValue\"] = proc.exitValue()
message[\"Stdout\"] = proc.in.text
message[\"Errout\"] = proc.err.text

// fail if process failed
if( proc.exitValue() != 0 )
failureCounter.increment()
}
catch( e )
{
// add error properties
message[\"ExitValue\"] = -1
message[\"Errout\"] = e.message

failureCounter.increment()
}

return message
}

layout {
property( property:command, label:\"Command\", constraints: 'w 200!' )
action( label:'Run Once', action: { triggerAction('SAMPLE') }, constraints: 'aligny bottom' )
}
","body@stringLength":"2042","rawBody":"So, you have made a custom loadUI component that you think might be useful to other users? Well, go ahead and post it in this topic and it will be published at loadui.org/Custom-Components.

Below is a template that you can use when posting:


[hr:3haswfjc][/hr:3haswfjc]
Component name:
Process Runner

Developer:
Ole Lensmar, eviware

Description:
Runs an operating system process. Example component taken from http://www.eviware.com/blog/?p=196.

Source code:
/**
* Runs a process
*
* @name Process Runner
* @category runners
*/

// the command itself
createProperty('command', String,\"\")

sample = { message, sampleId ->
try
{
// start a process and wait for it to finish
def proc = command.value.execute()
proc.waitFor()

// add result properties
message[\"ExitValue\"] = proc.exitValue()
message[\"Stdout\"] = proc.in.text
message[\"Errout\"] = proc.err.text

// fail if process failed
if( proc.exitValue() != 0 )
failureCounter.increment()
}
catch( e )
{
// add error properties
message[\"ExitValue\"] = -1
message[\"Errout\"] = e.message

failureCounter.increment()
}

return message
}

layout {
property( property:command, label:\"Command\", constraints: 'w 200!' )
action( label:'Run Once', action: { triggerAction('SAMPLE') }, constraints: 'aligny bottom' )
}
","kudosSumWeight":0,"postTime":"2011-05-04T04:03:59.000-07:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:19607_1"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":40663},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"isEscalated":null,"placeholder":false,"originalMessageForPlaceholder":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"archivalData":null,"searchSnippet":"So, you have made a custom loadUI component that you think might be useful to other users? Well, go ahead and post it in this topic and it will be published at loadui.org/Custom-Components. Below ...","replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDE","node":{"__ref":"ForumReplyMessage:message:19612"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDI","node":{"__ref":"ForumReplyMessage:message:19617"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDM","node":{"__ref":"ForumReplyMessage:message:19623"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDQ","node":{"__ref":"ForumReplyMessage:message:19628"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDU","node":{"__ref":"ForumReplyMessage:message:19633"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDY","node":{"__ref":"ForumReplyMessage:message:19638"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDc","node":{"__ref":"ForumReplyMessage:message:19644"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDg","node":{"__ref":"ForumReplyMessage:message:19649"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDk","node":{"__ref":"ForumReplyMessage:message:19654"}},{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDEw","node":{"__ref":"ForumReplyMessage:message:19659"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDEw","hasPreviousPage":false,"startCursor":null}},"customFields":[]},"Conversation:conversation:19607":{"__typename":"Conversation","id":"conversation:19607","solved":false,"topic":{"__ref":"ForumTopicMessage:message:19607"},"lastPostingActivityTime":"2014-03-05T23:53:55.000-08:00","lastPostTime":"2014-03-05T23:53:55.000-08:00","unreadReplyCount":17,"isSubscribed":false},"ModerationData:moderation_data:19607":{"__typename":"ModerationData","id":"moderation_data:19607","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:19607_1":{"__typename":"Revision","id":"revision:19607_1","lastEditTime":"2011-05-04T04:03:59.000-07:00"},"CachedAsset:theme:customTheme1-1737143803319":{"__typename":"CachedAsset","id":"theme:customTheme1-1737143803319","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"Favicon-1702330027750.png","imageLastModified":"1702330030805","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"SmartBear_Community-1737041278408.png","imageLastModified":"1737041280700","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1200px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"4px","borderRadius":"4px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-body-color)","secondaryTextHoverColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-primary)","tertiaryTextHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"NONE","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.06)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"600","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#28B1FD","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#08B130","blogColor":"#000000","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#00537C","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#173647","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#097EB2","secondary":"#333333","bodyText":"#212429","bodyBg":"#FFFFFF","info":"#097EB2","success":"#08B130","warning":"#FCC844","danger":"#D13A1F","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#F8FAFB","#F0F3F5","#E4EAF1","#D8DDE4","#28B1FD","#00537C","#173647","#FF730B"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Roboto","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"38px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":null,"h2FontWeight":null,"h3FontWeight":null,"h4FontWeight":null,"h5FontWeight":null,"h6FontWeight":null,"__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"30px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"30px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Open Sans","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1720711077000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1737143801457":{"__typename":"CachedAsset","id":"quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1737143801457","value":{"id":"ForumMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"message-list","layout":"MAIN_SIDE","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[{"id":"messages.widget.topicWithThreadedReplyListWidget","className":"lia-topic-with-replies","props":{"editLevel":"CONFIGURE"},"__typename":"QuiltComponent"}],"side":[{"id":"messages.widget.relatedContentWidget","className":null,"props":null,"__typename":"QuiltComponent"},{"id":"messages.widget.messageListForNodeByRecentActivityWidget","className":null,"props":{"hideIfEmpty":true,"useTitle":true,"showTabs":false,"pageSize":5,"pagerVariant":{"type":"loadMore"},"style":"compact","viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","truncateBodyLength":-1,"useNodeLink":true,"usePreviewMedia":false,"timeStampType":"conversation.lastPostingActivityTime","avatarSize":"40","useTextBody":true,"useSolvedBadge":true,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":true,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":false,"clampBodyLines":3,"useAuthorLogin":true,"useUnreadCount":false,"useNodeHoverCard":true,"useSearchSnippet":false}},"panelType":"divider","sorts":{"conversationLastPostingActivityTime":{"direction":"DESC"}}},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-pages/forums/ForumMessagePage-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-pages/forums/ForumMessagePage-1720711077000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This message cannot be found","name":"Forum Message Page","section.message-list.title":"Forum Discussion","archivedMessageTitle":"This Content Has Been Archived"},"localOverride":false},"CachedAsset:quiltWrapper:smartbear.prod:Common:1737143749308":{"__typename":"CachedAsset","id":"quiltWrapper:smartbear.prod:Common:1737143749308","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","linkFontWeight":"400","controllerHighlightColor":"hsla(30, 100%, 50%)","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkFontSize":"14px","linkBoxShadowHover":"none","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","linkTextBorderBottom":"none","hamburgerColor":"var(--lia-nav-controller-icon-color)","brandLogoHeight":"48px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","collapseMenuDividerOpacity":0.16,"paddingBottom":"15px","dropdownPaddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","linkJustifyContent":"flex-start","linkColor":"var(--lia-bs-body-color)","collapseMenuDividerBg":"var(--lia-nav-link-color)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-primary)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"0","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","linkPaddingX":"10px","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","paddingTop":"15px","linkPaddingY":"5px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkBgColor":"transparent","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[]},"showSearchIcon":true,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":null,"__typename":"QuiltComponent"},{"id":"community.widget.bannerWidget","props":null,"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-gray-800)","items":[{"id":"custom.widget.Footer_Links","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Tag_Manager_Helper","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":false,"useBackground":false,"title":"Tag Manager","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Custom_Style_Helper","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1720711077000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.Footer_Links-en-1737143827903":{"__typename":"CachedAsset","id":"component:custom.widget.Footer_Links-en-1737143827903","value":{"component":{"id":"custom.widget.Footer_Links","template":{"id":"Footer_Links","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Footer Links","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Footer_Links","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Footer Links","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Tag_Manager_Helper-en-1737143827903":{"__typename":"CachedAsset","id":"component:custom.widget.Tag_Manager_Helper-en-1737143827903","value":{"component":{"id":"custom.widget.Tag_Manager_Helper","template":{"id":"Tag_Manager_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject Google Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Tag_Manager_Helper","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject Google Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Custom_Style_Helper-en-1737143827903":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Style_Helper-en-1737143827903","value":{"component":{"id":"custom.widget.Custom_Style_Helper","template":{"id":"Custom_Style_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject SmartBear Styles","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Custom_Style_Helper","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject SmartBear Styles","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Navbar-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1720711077000","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1720711077000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1720711077000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1720711077000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/search/SpotlightSearchIcon-1720711077000","value":{"search":"Search"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1720711077000","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1720711077000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1720711077000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/RelatedContentWidget-1720711077000","value":{"title":"Related Content","emptyDescription":"No content to show"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1720711077000","value":{"title@userScope:other":"Recent Content","title@userScope:self":"Contributions","title@board:FORUM@userScope:other":"Recent Discussions","title@board:BLOG@userScope:other":"Recent Blogs","emptyDescription":"No content to show","MessageListForNodeByRecentActivityWidgetEditor.nodeScope.label":"Scope","title@instance:1703254420736":"Latest Posts","title@instance:1698433901422":"Latest Posts"},"localOverride":false},"Conversation:conversation:273626":{"__typename":"Conversation","id":"conversation:273626","topic":{"__typename":"ForumTopicMessage","uid":273626},"lastPostingActivityTime":"2025-01-16T07:21:37.611-08:00","solved":false},"ForumTopicMessage:message:273626":{"__typename":"ForumTopicMessage","subject":"Reporting on call-to-testcase","conversation":{"__ref":"Conversation:conversation:273626"},"id":"message:273626","revisionNum":1,"uid":273626,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128152,"login":"joostdgfed","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"}},"metrics":{"__typename":"MessageMetrics","views":37},"postTime":"2025-01-09T08:40:21.698-08:00","lastPublishTime":"2025-01-09T08:40:21.698-08:00","readOnly":false},"Conversation:conversation:273768":{"__typename":"Conversation","id":"conversation:273768","topic":{"__typename":"ForumTopicMessage","uid":273768},"lastPostingActivityTime":"2025-01-14T00:29:22.029-08:00","solved":false},"ForumTopicMessage:message:273768":{"__typename":"ForumTopicMessage","subject":"Get Data Dialog - generated xpath not working","conversation":{"__ref":"Conversation:conversation:273768"},"id":"message:273768","revisionNum":1,"uid":273768,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128236,"login":"Meinhard","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-7.svg"}},"metrics":{"__typename":"MessageMetrics","views":18},"postTime":"2025-01-14T00:29:22.029-08:00","lastPublishTime":"2025-01-14T00:29:22.029-08:00","readOnly":false},"Conversation:conversation:273630":{"__typename":"Conversation","id":"conversation:273630","topic":{"__typename":"ForumTopicMessage","uid":273630},"lastPostingActivityTime":"2025-01-13T06:32:58.435-08:00","solved":false},"ForumTopicMessage:message:273630":{"__typename":"ForumTopicMessage","subject":"Differences with GIT check-ins for Windows and iOS ARM users","conversation":{"__ref":"Conversation:conversation:273630"},"id":"message:273630","revisionNum":1,"uid":273630,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":126607,"login":"sdeevers_starz","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-9.svg"}},"metrics":{"__typename":"MessageMetrics","views":57},"postTime":"2025-01-09T12:54:01.850-08:00","lastPublishTime":"2025-01-09T12:54:01.850-08:00","readOnly":false},"Conversation:conversation:273690":{"__typename":"Conversation","id":"conversation:273690","topic":{"__typename":"ForumTopicMessage","uid":273690},"lastPostingActivityTime":"2025-01-13T01:01:45.996-08:00","solved":false},"ForumTopicMessage:message:273690":{"__typename":"ForumTopicMessage","subject":"Cannot pass the test result to another script","conversation":{"__ref":"Conversation:conversation:273690"},"id":"message:273690","revisionNum":1,"uid":273690,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128116,"login":"chuckmolak","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"}},"metrics":{"__typename":"MessageMetrics","views":17},"postTime":"2025-01-13T00:21:36.750-08:00","lastPublishTime":"2025-01-13T00:21:36.750-08:00","readOnly":false},"Conversation:conversation:273622":{"__typename":"Conversation","id":"conversation:273622","topic":{"__typename":"ForumTopicMessage","uid":273622},"lastPostingActivityTime":"2025-01-10T04:20:47.221-08:00","solved":true},"ForumTopicMessage:message:273622":{"__typename":"ForumTopicMessage","subject":"How to set different Content-Types in multipart/form-data POST Request?","conversation":{"__ref":"Conversation:conversation:273622"},"id":"message:273622","revisionNum":1,"uid":273622,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128142,"login":"rasierapparat","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"}},"metrics":{"__typename":"MessageMetrics","views":62},"postTime":"2025-01-09T05:13:30.763-08:00","lastPublishTime":"2025-01-09T05:13:30.763-08:00","readOnly":false},"Rank:rank:1":{"__typename":"Rank","id":"rank:1","position":1,"name":"Community Manager","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:123820":{"__typename":"User","id":"user:123820","uid":123820,"login":"Stoplight","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2024-03-07T07:47:09.276-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/images/dS0xMjM4MjAteWxNQ2NQ?image-coordinates=0%2C0%2C600%2C600"},"rank":{"__ref":"Rank:rank:1"},"messagesCount":459,"kudosGivenCount":0,"kudosReceivedCount":4,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":158,"entityType":"USER","eventPath":"community:nwkab66374/user:123820"},"Category:category:Stoplight":{"__typename":"Category","id":"category:Stoplight","entityType":"CATEGORY","displayId":"Stoplight","nodeType":"category","depth":1,"title":"Stoplight","shortTitle":"Stoplight"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yOTgtclFhQzI3?image-coordinates=0%2C0%2C500%2C500\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yOTgtclFhQzI3?image-coordinates=0%2C0%2C500%2C500","mimeType":"image/png"},"Forum:board:Stoplight":{"__typename":"Forum","id":"board:Stoplight","entityType":"FORUM","displayId":"Stoplight","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"Stoplight Questions","shortTitle":"Stoplight Questions","parent":{"__ref":"Category:category:Stoplight"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yOTgtclFhQzI3?image-coordinates=0%2C0%2C500%2C500\"}"},"description":"","eventPath":"category:Stoplight/community:nwkab66374board:Stoplight/"},"ForumTopicMessage:message:263370":{"__typename":"ForumTopicMessage","uid":263370,"subject":"Resolving Shared-Components Error","id":"message:263370","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:123820"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:Stoplight"},"conversation":{"__ref":"Conversation:conversation:263370"},"moderationData":{"__ref":"ModerationData:moderation_data:263370"},"postTime":"2024-03-08T13:57:50.913-08:00","lastPublishTime":"2024-03-08T13:57:50.913-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":32},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:Stoplight/community:nwkab66374board:Stoplight/message:263370"},"Conversation:conversation:263370":{"__typename":"Conversation","id":"conversation:263370","solved":true,"topic":{"__ref":"ForumTopicMessage:message:263370"},"lastPostingActivityTime":"2024-03-08T13:58:05.870-08:00","lastPostTime":"2024-03-08T13:58:05.870-08:00"},"ModerationData:moderation_data:263370":{"__typename":"ModerationData","id":"moderation_data:263370","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:263370":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:263370","relatedMessage":{"__ref":"ForumTopicMessage:message:263370"}},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":21,"name":"New Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:97778":{"__typename":"User","id":"user:97778","uid":97778,"login":"iaqa","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-04-27T12:19:22.461-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":2,"kudosGivenCount":1,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:97778"},"Category:category:zephyr-scale-community":{"__typename":"Category","id":"category:zephyr-scale-community","entityType":"CATEGORY","displayId":"zephyr-scale-community","nodeType":"category","depth":1,"title":"Zephyr Scale","shortTitle":"Zephyr Scale"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjMtc052NUtM?image-coordinates=0%2C0%2C401%2C401\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjMtc052NUtM?image-coordinates=0%2C0%2C401%2C401","mimeType":"image/png"},"Forum:board:ZephyrScale":{"__typename":"Forum","id":"board:ZephyrScale","entityType":"FORUM","displayId":"ZephyrScale","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"Zephyr Scale Questions","shortTitle":"Zephyr Scale Questions","parent":{"__ref":"Category:category:zephyr-scale-community"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjMtc052NUtM?image-coordinates=0%2C0%2C401%2C401\"}"},"description":"","eventPath":"category:zephyr-scale-community/community:nwkab66374board:ZephyrScale/"},"ForumTopicMessage:message:216572":{"__typename":"ForumTopicMessage","uid":216572,"subject":"Shared Steps","id":"message:216572","revisionNum":1,"repliesCount":3,"author":{"__ref":"User:user:97778"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:ZephyrScale"},"conversation":{"__ref":"Conversation:conversation:216572"},"moderationData":{"__ref":"ModerationData:moderation_data:216572"},"postTime":"2021-04-27T12:22:28.723-07:00","lastPublishTime":"2021-04-27T12:22:28.723-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1770},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:zephyr-scale-community/community:nwkab66374board:ZephyrScale/message:216572"},"Conversation:conversation:216572":{"__typename":"Conversation","id":"conversation:216572","solved":true,"topic":{"__ref":"ForumTopicMessage:message:216572"},"lastPostingActivityTime":"2021-04-29T07:31:42.916-07:00","lastPostTime":"2021-04-29T07:31:42.916-07:00"},"ModerationData:moderation_data:216572":{"__typename":"ModerationData","id":"moderation_data:216572","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:216572":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:216572","relatedMessage":{"__ref":"ForumTopicMessage:message:216572"}},"Rank:rank:14":{"__typename":"Rank","id":"rank:14","position":20,"name":"Occasional Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:71866":{"__typename":"User","id":"user:71866","uid":71866,"login":"yassir","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2016-08-24T09:58:37.896-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-11.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":15,"kudosGivenCount":2,"kudosReceivedCount":1,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":2,"entityType":"USER","eventPath":"community:nwkab66374/user:71866"},"ForumTopicMessage:message:201791":{"__typename":"ForumTopicMessage","uid":201791,"subject":"Browser component disabled.","id":"message:201791","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:71866"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:201791"},"moderationData":{"__ref":"ModerationData:moderation_data:201791"},"postTime":"2020-05-15T13:09:31.086-07:00","lastPublishTime":"2020-05-15T13:09:31.086-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1746},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:201791"},"Conversation:conversation:201791":{"__typename":"Conversation","id":"conversation:201791","solved":true,"topic":{"__ref":"ForumTopicMessage:message:201791"},"lastPostingActivityTime":"2020-05-19T23:52:46.699-07:00","lastPostTime":"2020-05-19T23:52:46.699-07:00"},"ModerationData:moderation_data:201791":{"__typename":"ModerationData","id":"moderation_data:201791","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:201791":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:201791","relatedMessage":{"__ref":"ForumTopicMessage:message:201791"}},"User:user:103040":{"__typename":"User","id":"user:103040","uid":103040,"login":"Harish2","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-11-15T11:06:08.600-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":2,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:103040"},"ForumTopicMessage:message:225649":{"__typename":"ForumTopicMessage","uid":225649,"subject":"Browser component is disabled","id":"message:225649","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:103040"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:225649"},"moderationData":{"__ref":"ModerationData:moderation_data:225649"},"postTime":"2021-11-15T11:10:50.348-08:00","lastPublishTime":"2021-11-15T11:10:50.348-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1272},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:225649"},"Conversation:conversation:225649":{"__typename":"Conversation","id":"conversation:225649","solved":true,"topic":{"__ref":"ForumTopicMessage:message:225649"},"lastPostingActivityTime":"2021-11-17T08:35:54.380-08:00","lastPostTime":"2021-11-17T08:35:54.380-08:00"},"ModerationData:moderation_data:225649":{"__typename":"ModerationData","id":"moderation_data:225649","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:225649":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:225649","relatedMessage":{"__ref":"ForumTopicMessage:message:225649"}},"User:user:79063":{"__typename":"User","id":"user:79063","uid":79063,"login":"misi01","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2018-04-18T04:01:46.982-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-10.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":4,"kudosGivenCount":1,"kudosReceivedCount":1,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:79063"},"Category:category:soapui-os-community":{"__typename":"Category","id":"category:soapui-os-community","entityType":"CATEGORY","displayId":"soapui-os-community","nodeType":"category","depth":1,"title":"SoapUI Open Source","shortTitle":"SoapUI Open Source"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209","mimeType":"image/png"},"Forum:board:SoapUI_OS":{"__typename":"Forum","id":"board:SoapUI_OS","entityType":"FORUM","displayId":"SoapUI_OS","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"SoapUI Open Source Questions","shortTitle":"SoapUI Open Source Questions","parent":{"__ref":"Category:category:soapui-os-community"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209\"}"},"description":"","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/"},"ForumTopicMessage:message:171688":{"__typename":"ForumTopicMessage","uid":171688,"subject":"Shared workspaces","id":"message:171688","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:79063"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:SoapUI_OS"},"conversation":{"__ref":"Conversation:conversation:171688"},"moderationData":{"__ref":"ModerationData:moderation_data:171688"},"postTime":"2018-09-22T00:59:27.642-07:00","lastPublishTime":"2018-09-22T00:59:27.642-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1713},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/message:171688"},"Conversation:conversation:171688":{"__typename":"Conversation","id":"conversation:171688","solved":true,"topic":{"__ref":"ForumTopicMessage:message:171688"},"lastPostingActivityTime":"2018-10-04T01:21:16.809-07:00","lastPostTime":"2018-10-04T01:21:16.809-07:00"},"ModerationData:moderation_data:171688":{"__typename":"ModerationData","id":"moderation_data:171688","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:171688":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:171688","relatedMessage":{"__ref":"ForumTopicMessage:message:171688"}},"QueryVariables:TopicReplyList:message:19607:1":{"__typename":"QueryVariables","id":"TopicReplyList:message:19607:1","value":{"id":"message:19607","first":10,"sorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":true,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/nodes/NodeLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1720711077000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1720711077000","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1720711077000","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1720711077000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1720711077000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1720711077000","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"User:user:11363":{"__typename":"User","id":"user:11363","uid":11363,"login":"erikralenius","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2011-03-24T13:46:03.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-12.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":8,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:11363"},"ModerationData:moderation_data:19612":{"__typename":"ModerationData","id":"moderation_data:19612","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19612":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:11363"},"id":"message:19612","revisionNum":1,"uid":19612,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19612"},"body":"Component name:
JIRA

Developer:
Erik RÃ¥lenius

Description:
Creates a JIRA issue for all Web Page Runner failures after a completed test


Source code:
//
// Copyright (C) 2011 Erik RÃ¥lenius (erik@ralenius.se)

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

/**
* Create JIRA issue for Web Page Runner failures.
*
* @name JIRA
* @category output
* @dependency org.codehaus.groovy:groovy-xmlrpc:0.4
*/

import groovy.net.xmlrpc.XMLRPCServerProxy as Proxy
import com.eviware.loadui.util.layout.DelayedFormattedString
import com.eviware.loadui.api.events.ActionEvent
import com.eviware.loadui.api.events.PropertyEvent
import com.eviware.loadui.impl.component.ActivityStrategies

class JiraProxy extends Proxy {
JiraProxy(url) { super(url) }
Object invokeMethod(String methodname, args) {
super.invokeMethod('jira1.'+methodname, args)
}
}

createProperty('project', String)
createProperty('type', Integer, 1)
createProperty('priority', Long, 4)
createProperty('assignee', String)
createProperty('jiraServer', String)
createProperty('username', String)
password = createProperty('_password', String)
createProperty('maxCapturedFailures', Integer, 100)

status = 'Not ready'
issueDescription = \"\"
capturedFailures = 0
isConnected = false

capturedFailuresDisplay = new DelayedFormattedString('%d', 200, value {capturedFailures} )
statusDisplay = new DelayedFormattedString('%s', 200, value {status})

addEventListener( ActionEvent ) { event ->
if (isConnected && event.key == 'START' ) {
status = 'Capturing'
setActivityStrategy(ActivityStrategies.BLINKING)
}
else if (isConnected && event.key == 'STOP') {
status = 'Stopped'
setActivityStrategy(ActivityStrategies.OFF)
}
else if (isConnected && event.key == 'COMPLETE') {
if (capturedFailures > 0) {
createIssue()
issueDescription = \"\"
setActivityStrategy(ActivityStrategies.OFF)
} else {
status = 'No captures'
}
}
else if (event.key == 'RESET') {
capturedFailures = 0
issuesDescription = \"\"
}
}

output = { message ->
if (capturedFailures < maxCapturedFailures.value) {
if (isConnected && message['Status'] == false) {
addFailureToIssue(message)
capturedFailures++
}
}
}

onConnect = { outgoing, incoming ->
if (outgoing.terminalHolder.label == 'Web Page Runner'
&& outgoing.label == 'resultTerminal') {
isConnected = true
status = 'Ready'
}
}

onDisconnect = { outgoing, incoming ->
isConnected = false
status = 'Not ready'
}

onRelease = {
capturedFailuresDisplay.release()
statusDisplay.release()
}

// Layout
layout {
property(property: maxCapturedFailures, label: 'Max captured failures', min: 1, max: 100)
separator(vertical: true)
box(widget: 'display') {
node(label: 'Failures captured', fString: capturedFailuresDisplay, constraints: 'wmin 75')
node(label: 'Status', fString: statusDisplay, constraints: 'wmin 75')
}
}

compactLayout {
box(widget:'display') {
node(label: 'Failures captured', fString: capturedFailuresDisplay, constraints: 'wmin 75')
node(label: 'Status', fString: statusDisplay, constraints: 'wmin 75')
}
}

// Settings
settings(label: 'Issue properties') {
property(property: project, label: 'Project (required)')
property(property: assignee, label: 'Assignee')
box {
property(property: priority, label:
'Priority (1: Blocker, 2: Critical, 3: Major, 4: Minor, 5: Trivial)')
}
}

settings(label: 'Authentication') {
property(property: jiraServer, label: 'JIRA server')
property(property: username, label: 'Username')
property(property: password, widget: 'password', label: 'Pasword')
}

private def addFailureToIssue(message) {
generatorsProperties = getGeneratorPropertiesAsMessage()
formatedTimestamp = timestampToFormatedDate(message['TriggerTimestamp'])
issueDescription += \"\"\"Request to ${message['ID']} failed at $formatedTimestamp
$generatorsProperties
---

\"\"\"
}

private def timestampToFormatedDate(long timestamp) {
return new Date(timestamp)
}

private def createIssue() {
// JIRA won't accept null values
if (assignee.value == null) {
assignee.value = \"\"
}

Map issueData =
[
summary: \"loadUI: $capturedFailures failures captured while running ${canvas.label}\",
description: issueDescription,
type: 1,
assignee: assignee.value,
project: project.value,
priority: priority.value
]

String jiraURL = \"${jiraServer.value}/rpc/xmlrpc\"

try {
jira = new JiraProxy(jiraURL)
loginToken = jira.login(username.value, password.value)
issue = jira.createIssue(loginToken, issueData)
status = 'Issue created'
}
catch (exception) {
log.error(exception.message, exception)
status = 'Creation failed'
}
}

private def getGeneratorPropertiesAsMessage() {
message = \"\"
for (component in canvas.components) {
if (component.category == 'generators') {
message = message + \"\\n\" + \"Generator: \" + component.label + \"\\n\"
for (property in component.properties) {
if (isAllowed(property.key)) {
message = message + property.key.capitalize() + \": \" + property.value + \"\\n\"
}
}
}
}
return message
}

private def isAllowed(key) {
return key[0] != '_' && key != 'ModelItem.description';
}
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2011-05-11T22:50:43.000-07:00","lastPublishTime":"2011-05-11T22:50:43.000-07:00","metrics":{"__typename":"MessageMetrics","views":4268},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19612","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:15125":{"__typename":"User","id":"user:15125","uid":15125,"login":"thzinc","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2011-08-18T09:33:19.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":6,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:15125"},"ModerationData:moderation_data:19617":{"__typename":"ModerationData","id":"moderation_data:19617","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19617":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:15125"},"id":"message:19617","revisionNum":1,"uid":19617,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19617"},"body":"Component Name
Custom HTTP Runner

Developer
Daniel James, Casting Networks, Inc.

Description
Derivative of Web Runner, Custom HTTP Runner allows you to execute an HTTP request using any method desired. (e.g., GET, HEAD, POST, PUT, any other arbitrary verb) The Custom HTTP Runner also allows you to specify a pre-encoded HTTP entity body, which is especially useful for POST or PUT requests.

Source Code

// Custom HTTP Runner, Copyright 2011 Casting Networks, Inc.
//
// Derivative work of Web Runner, Copyright 2011 eviware software ab
//
// Licensed under the EUPL, Version 1.1 or - as soon they will be approved by the European Commission - subsequent
// versions of the EUPL (the \"Licence\");
// You may not use this work except in compliance with the Licence.
// You may obtain a copy of the Licence at:
//
// http://ec.europa.eu/idabc/eupl5
//
// Unless required by applicable law or agreed to in writing, software distributed under the Licence is
// distributed on an \"AS IS\" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the Licence for the specific language governing permissions and limitations
// under the Licence.
//

/**
* Sends an HTTP request
*
* @id com.castingnetworksinc.CustomHTTPRunner
* @help http://www.loadui.org/Runners/web-page-runner-component.html
* @name Custom HTTP Runner
* @category runners
* @dependency org.apache.httpcomponents:httpcore:4.1
* @dependency org.apache.httpcomponents:httpclient:4.1.1
*/

import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.auth.*
import org.apache.http.conn.params.*
import org.apache.http.conn.scheme.*
import org.apache.http.client.methods.*
import org.apache.http.conn.ClientConnectionManager
import org.apache.http.entity.StringEntity
import org.apache.http.util.EntityUtils
import org.apache.http.impl.client.DefaultHttpClient
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
import com.eviware.loadui.api.events.ActionEvent
import com.eviware.loadui.api.events.PropertyEvent
import com.eviware.loadui.api.model.CanvasItem
import com.eviware.loadui.impl.component.categories.RunnerBase.SampleCancelledException
import com.eviware.loadui.impl.component.ActivityStrategies
import com.eviware.loadui.util.layout.DelayedFormattedString
import com.eviware.loadui.util.ReleasableUtils

import java.util.concurrent.TimeUnit

import org.apache.http.conn.scheme.Scheme
import org.apache.http.conn.ssl.SSLSocketFactory
import java.net.URI
import javax.net.ssl.SSLContext
import javax.net.ssl.KeyManager
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
import java.security.cert.X509Certificate
import java.security.cert.CertificateException
import java.security.SecureRandom
import java.util.HashMap
import java.util.Map
import java.util.concurrent.TimeUnit

// Create a custom HTTP request based off of the Apache HTTP Client base class
class HttpCustom extends HttpEntityEnclosingRequestBase {
def _method
HttpCustom(method, uri) {
super.setURI(URI.create(uri))
_method = method
}

String getMethod() { _method }
}

scheduleAtFixedRate( { updateLed() }, 500, 500, TimeUnit.MILLISECONDS )

createOutput( 'statisticsOutput', 'Statistics', 'Connect to a Statistics component to feed it with the displayed values.' )

//SSL support, trust all certificates and hostnames.
class NaiveTrustManager implements X509TrustManager {
void checkClientTrusted ( X509Certificate[] cert, String authType ) throws CertificateException {}
void checkServerTrusted ( X509Certificate[] cert, String authType ) throws CertificateException {}
X509Certificate[] getAcceptedIssuers () { null }
}
def sslContext = SSLContext.getInstance(\"SSL\")
TrustManager[] tms = [ new NaiveTrustManager() ]
sslContext.init( new KeyManager[0], tms, new SecureRandom() )
def sslSocketFactory = new SSLSocketFactory( sslContext )
sslSocketFactory.setHostnameVerifier( SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER )

def sr = new SchemeRegistry()
sr.register( new Scheme( \"http\", 80, PlainSocketFactory.socketFactory ) )
sr.register( new Scheme( \"https\", 443, sslSocketFactory ) )

def cm = new ThreadSafeClientConnManager( sr )
cm.maxTotal = 50000
cm.defaultMaxPerRoute = 50000


//Properties
createProperty( 'url', String ) { ->
validateUrl()
}

// Default method to GET
createProperty( 'method', String, 'GET' )
createProperty( 'entityBody', String )
createProperty( 'outputBody', Boolean, false )

createProperty( 'readResponse', Boolean, false )
createProperty( 'errorCodeList', String )

createProperty( 'proxyHost', String )
createProperty( 'proxyPort', Long )
createProperty( 'proxyUsername', String )
proxyPassword = createProperty( '_proxyPassword', String )
authUsername = createProperty( '_authUsername', String )
authPassword = createProperty( '_authPassword', String )

http = new DefaultHttpClient( cm )

inlineUrlAuthUsername = null
inlineUrlAuthPassword = null

def runningSamples = ([] as Set).asSynchronized()
runAction = null

def dummyUrl = \"http://GoSpamYourself.com\"

validateUrl = {
if( url.value && !( url.value.toLowerCase().startsWith( \"http://\" ) || url.value.toLowerCase().startsWith( \"https://\" ) ) ) {
url.value = \"http://\" + url.value
}

if( url.value =~ /https?:\\/\\/(www\\.)?(eviware\\.com|(soapui|loadui)\\.org)(\\/.*)?/ ) url.value = dummyUrl

// extract possible username and password from username:password@domain syntax
matcher = url.value?.replace( \"http://\", \"\" ) =~ /([^:]+):([^@]+)@(.+)/
if ( matcher ) {
inlineUrlAuthUsername = matcher[0][1]
inlineUrlAuthPassword = matcher[0][2]
} else {
inlineUrlAuthUsername = inlineUrlAuthPassword = null
}
updateAuth()

setInvalid( !url.value || url.value == dummyUrl )
runAction?.enabled = !isInvalid()
}

updateLed = {
setActivityStrategy( runAction?.enabled ? ( currentlyRunning > 0 ? ActivityStrategies.BLINKING : ActivityStrategies.ON ) : ActivityStrategies.OFF )
}

updateProxy = {
if( proxyHost.value?.trim() && proxyPort.value ) {
HttpHost hcProxyHost = new HttpHost( proxyHost.value, (int)proxyPort.value, \"http\" )
http.params.setParameter( ConnRoutePNames.DEFAULT_PROXY, hcProxyHost )

if( proxyUsername.value?.trim() && proxyPassword.value ) {
http.credentialsProvider.setCredentials(
new AuthScope( proxyHost.value, (int)proxyPort.value ),
new UsernamePasswordCredentials( proxyUsername.value, proxyPassword.value )
)
} else {
http.credentialsProvider.clear()
}
} else {
http.params.setParameter( ConnRoutePNames.DEFAULT_PROXY, null )
}
}

updateAuth = {
def username = null
def password = null
if( inlineUrlAuthUsername && inlineUrlAuthPassword ) {
username = inlineUrlAuthUsername
password = inlineUrlAuthPassword
} else if( authUsername.value?.trim() && authPassword.value?.trim() ) {
username = authUsername.value
password = authPassword.value
}

if( username && password ) {
http.credentialsProvider.setCredentials(
new AuthScope( AuthScope.ANY ),
new UsernamePasswordCredentials( username, password )
)
}
}

validateUrl()
updateProxy()

requestResetValue = 0
sampleResetValue = 0
discardResetValue = 0
failedResetValue = 0

displayRequests = new DelayedFormattedString( '%d', 500, value { requestCounter.get() - requestResetValue } )
displayRunning = new DelayedFormattedString( '%d', 500, value { currentlyRunning } )
displayTotal = new DelayedFormattedString( '%d', 500, value { sampleCounter.get() - sampleResetValue } )
displayQueue = new DelayedFormattedString( '%d', 500, value { queueSize } )
displayDiscarded = new DelayedFormattedString( '%d', 500, value { discardCounter.get() - discardResetValue } )
displayFailed = new DelayedFormattedString( '%d', 500, value { failureCounter.get() - failedResetValue } )

sample = { message, sampleId ->
def uri = message['url'] ?: url.value
def method = message['method'] ?: method.value
def entityBody = message['entityBody'] ?: entityBody.value ?: \"\"

if( uri ) {
def httpRequest = new HttpCustom( method, uri )
httpRequest.setEntity(new StringEntity(entityBody, \"application/x-www-form-urlencoded\", \"utf-8\"))
message['ID'] = method + \" \" + uri + \"?\" + entityBody

runningSamples.add( httpRequest )
try {
def response = http.execute( httpRequest )
message['Status'] = true
message['URI'] = uri
message['HttpStatus'] = response.statusLine.statusCode

if( errorCodeList.value ) {
def assertionCodes = errorCodeList.value.split(',')

for( code in assertionCodes ) {
if( code.trim() == response.statusLine.statusCode.toString() ) {
failedRequestCounter.increment()
failureCounter.increment()
break
}
}
}

if( response.entity != null ) {
int contentLength = response.entity.contentLength
message['Bytes'] = contentLength

if( outputBody.value )
message['Response'] = EntityUtils.toString( response.entity )

if( contentLength < 0 ) {
if( outputBody.value )
message['Bytes'] = message['Response'].length()
else
message['Bytes'] = EntityUtils.toString( response.entity ).length()
}

response.entity.consumeContent()

if( !runningSamples.remove( httpRequest ) ) {
throw new SampleCancelledException()
}

return message
}
} catch( e ) {
if( e instanceof SampleCancelledException )
throw e

if( e instanceof IOException )
log.warn( \"IOException in {}: {}\", label, e.message )
else
log.error( \"Exception in $label:\", e )

httpRequest.abort()

if ( !runningSamples.remove( httpRequest ) ) {
throw new SampleCancelledException()
}

message['Status'] = false
message['Exception'] = e.toString()
failedRequestCounter.increment()
failureCounter.increment()

return message
}
} else {
throw new SampleCancelledException()
}

}

onCancel = {
def numberOfRunning = 0
synchronized( runningSamples ) {
def methods = runningSamples.toArray()
numberOfRunning = methods.size()
runningSamples.clear()
methods.each { if( !it.aborted ) it.abort() }
}

return numberOfRunning
}

onRelease = {
ReleasableUtils.releaseAll( displayRunning, displayTotal, displayQueue, displayDiscarded, displayFailed, displayRequests )
}

onAction( \"RESET\" ) {
requestResetValue = 0
sampleResetValue = 0
discardResetValue = 0
failedResetValue = 0
}

addEventListener( PropertyEvent ) { event ->
if ( event.event == PropertyEvent.Event.VALUE ) {
if( event.property in [ proxyHost, proxyPort, proxyUsername, proxyPassword, authUsername, authPassword ] ) {
http.credentialsProvider.clear()
updateProxy()
updateAuth()
}
}
}

//Layout
layout {
box( layout:'wrap 2, ins 0' ) {
property( property:method, label:'HTTP Method', constraints: 'w 300!, spanx 2')
property( property:url, label:'URL', constraints: 'w 300!, spanx 2', style: '-fx-font-size: 17pt' )
property( property:entityBody, label:'HTTP Entity Body', constraints: 'w 300!, spanx 2')
runAction = action( label:'Run Once', action: { triggerAction( 'SAMPLE' ) } )
action( label:'Abort Running Pages', action: { triggerAction( 'CANCEL' ) } )
}
separator(vertical:true)
box( layout:'wrap, ins 0' ){
box( widget:'display', layout:'wrap 3, align right' ) {
node( label:'Requests', fString:displayRequests, constraints:'w 50!' )
node( label:'Running', fString:displayRunning, constraints:'w 50!' )
node( label:'Completed', fString:displayTotal, constraints:'w 60!' )
node( label:'Queued', fString:displayQueue, constraints:'w 50!' )
node( label:'Discarded', fString:displayDiscarded, constraints:'w 50!' )
node( label:'Failed', fString:displayFailed, constraints:'w 60!' )
}
action( label:'Reset', action: {
requestResetValue = requestCounter.get()
sampleResetValue = sampleCounter.get()
discardResetValue = discardCounter.get()
failedResetValue = failureCounter.get()
triggerAction('CANCEL')
}, constraints:'align right' )
}
}

//Compact Layout
compactLayout {
box( widget:'display', layout:'wrap 3, align right' ) {
node( label:'Requests', fString:displayRequests, constraints:'w 50!' )
node( label:'Running', fString:displayRunning, constraints:'w 50!' )
node( label:'Completed', fString:displayTotal, constraints:'w 60!' )
node( label:'Queued', fString:displayQueue, constraints:'w 50!' )
node( label:'Discarded', fString:displayDiscarded, constraints:'w 50!' )
node( label:'Failed', fString:displayFailed, constraints:'w 60!' )
}
}

settings( label: \"Basic\" ) {
property( property: outputBody, label: 'Output Response Body' )
//property( property: propagateSession, label: 'Propagate Session' )
property( property: readResponse, label: 'Read Response' )
property( property: concurrentSamples, label: 'Max Concurrent Requests' )
property( property: maxQueueSize, label: 'Max Queue' )
property( property: errorCodeList, label: 'Error Codes that Count as Failures', constraints:'w 200!')
property( property: countDiscarded, label: 'Count Discarded Requests as Failed' )
}

settings( label: \"Authentication\" ) {
property( property: authUsername, label: 'Username' )
property( property: authPassword, widget: 'password', label: 'Password' )
}

settings( label: \"Proxy\" ) {
property( property: proxyHost, label: 'Proxy Host' )
property( property: proxyPort, label: 'Proxy Port' )
property( property: proxyUsername, label: 'Proxy Username' )
property( property: proxyPassword, widget: 'password', label: 'Proxy Password' )
}

scheduleAtFixedRate( {
def message = newMessage()
Integer.with {
message[\"Requests\"] = parseInt( displayRequests.currentValue )
message[\"Running\"] = parseInt( displayRunning.currentValue )
message[\"Discarded\"] = parseInt( displayDiscarded.currentValue )
message[\"Failed\"] = parseInt( displayFailed.currentValue )
message[\"Queued\"] = parseInt( displayQueue.currentValue )
message[\"Completed\"] = parseInt( displayTotal.currentValue )
}
send( statisticsOutput, message )
}, 1, 1, TimeUnit.SECONDS )

def statisticsSignature = [
\"Requests\" : Integer.class,
\"Running\" : Integer.class,
\"Discarded\" : Integer.class,
\"Failed\" : Integer.class,
\"Queued\" : Integer.class,
\"Completed\" : Integer.class
]

setSignature( statisticsOutput, statisticsSignature )
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2011-08-30T09:35:42.000-07:00","lastPublishTime":"2011-08-30T09:35:42.000-07:00","metrics":{"__typename":"MessageMetrics","views":4268},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19617","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:19623":{"__typename":"ModerationData","id":"moderation_data:19623","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19623":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:11594"},"id":"message:19623","revisionNum":1,"uid":19623,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19623"},"body":"
thzinc wrote:
Component Name
Custom HTTP Runner

Developer
Daniel James, Casting Networks, Inc.

[...]

Looking really good Daniel!

In case you haven't already noticed, your component have been published in the custom components gallery.

Henrik
loadUI developer","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2011-09-13T00:52:20.000-07:00","lastPublishTime":"2011-09-13T00:52:20.000-07:00","metrics":{"__typename":"MessageMetrics","views":4268},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19623","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:25317":{"__typename":"User","id":"user:25317","uid":25317,"login":"tunen2fate","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2011-09-27T14:44:09.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-3.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":7,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:25317"},"ModerationData:moderation_data:19628":{"__typename":"ModerationData","id":"moderation_data:19628","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19628":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:25317"},"id":"message:19628","revisionNum":1,"uid":19628,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19628"},"body":"I love this comp. However when I am testing this it seems that I do not have a place to connect to. Why is that am i missing a step someplace? I added a screenshot of what am saying. i hope this is the right place for this if not I am sorry in advance.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2011-09-28T07:43:41.000-07:00","lastPublishTime":"2011-09-28T07:43:41.000-07:00","metrics":{"__typename":"MessageMetrics","views":4269},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19628","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[{"__typename":"AttachmentEdge","cursor":"MjQuMTF8Mi4xfG98NXxfTlZffDE","node":{"__ref":"Attachment:{\"id\":\"attachment:message19628AttachmentNumber1\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2979/1/2011-09-28_0941LOAD.png\"}"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:19633":{"__typename":"ModerationData","id":"moderation_data:19633","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19633":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:11363"},"id":"message:19633","revisionNum":1,"uid":19633,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19633"},"body":"Hi!

I have now updated the JIRA plugin to fix the problems with the missing connection point and also the missing smack depencency.

You can download the new version from my personal site: http://erik.r.yverling.se/creations/plugin/jira or from the custom component gallery: http://www.loadui.org/Custom-Components

Happy load testing!
Erik R. Yverling (formally RÃ¥lenius)","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2011-12-01T08:14:28.000-08:00","lastPublishTime":"2011-12-01T08:14:28.000-08:00","metrics":{"__typename":"MessageMetrics","views":4270},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19633","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:13":{"__typename":"Rank","id":"rank:13","position":19,"name":"Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:28911":{"__typename":"User","id":"user:28911","uid":28911,"login":"Elvorin","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-02-15T10:29:25.000-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"},"rank":{"__ref":"Rank:rank:13"},"messagesCount":44,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:28911"},"ModerationData:moderation_data:19638":{"__typename":"ModerationData","id":"moderation_data:19638","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19638":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:28911"},"id":"message:19638","revisionNum":1,"uid":19638,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19638"},"body":"Component name:
Rate Multiplier

Developer:
Abhishek Dasgupta

Description:
Multiplies the rate of attached Generators (rate based) for easy load setting increase/decrease while keeping the load distribution ratio intact.

Source code:


/**
* Multiplies the rate of attached Generators (rate based) for easy load increase/decrease
* while keeping the load distribution ratio intact.
*
* @name Rate Multiplier
* @nonBlocking false
*/

import com.eviware.loadui.util.layout.DelayedFormattedString

import java.lang.Math


// inputs and outputs
createOutput('multiplierOutput', 'Multiplier', 'Multiply current rate with')

// properties
createProperty('multiplicationFactor', Long, 1) { newRate, oldRate ->
displayFactor.setArgs(multiplicationFactor.value)

if (oldRate == null) {
oldRate = storedRate
}

adjustRate(oldRate, newRate)
}

displayFactor = new DelayedFormattedString('x %d', 200, multiplicationFactor.value)
storedRate = multiplicationFactor.value
calculatedNewRate = 1;
calculatedNewUnit = 'Sec'

onRelease = {
displayFactor.release()
}

def adjustRate(oldRate, newRate) {
def connectedComponent
for (c in multiplierOutput.connections) {
connectedComponent = c.inputTerminal.terminalHolder
if (connectedComponent.category == 'generators') {
//Supports only the generators with 'rate' property
//Assumption is it will also have a 'unit' property with Sec, Min, Hour as possible values
if (connectedComponent.getProperty(\"rate\") != null) {
def generatorRate = connectedComponent.getProperty(\"rate\").value
def generatorUnit = connectedComponent.getProperty(\"unit\").getStringValue()
calculateRateAndUnit(oldRate, newRate, generatorRate, generatorUnit)

connectedComponent.getProperty(\"rate\").value = calculatedNewRate
connectedComponent.getProperty(\"unit\").setValue(calculatedNewUnit)
}
}
}
}

def calculateRateAndUnit(oldRate, newRate, generatorRate, generatorUnit) {
//Convert rate to hour for easier calculation
def multiplyBy = 1;
if (generatorUnit == 'Sec') {
multiplyBy = (60 * 60)
} else if (generatorUnit == 'Min') {
multiplyBy = 60
}

calculatedNewUnit = 'Hour'
calculatedNewRate = (generatorRate * multiplyBy)

//Round rate
if (newRate > oldRate) {
calculatedNewRate = Math.ceil((calculatedNewRate * newRate) / oldRate)
} else {
calculatedNewRate = Math.floor((calculatedNewRate * newRate) / oldRate)
}

if (calculatedNewRate == 0) {
calculatedNewRate = 1
}

//Normalize
if ((calculatedNewRate % 60) == 0) {
calculatedNewUnit = 'Min'
calculatedNewRate = (calculatedNewRate / 60)

if ((calculatedNewRate % 60) == 0) {
calculatedNewUnit = 'Sec'
calculatedNewRate = (calculatedNewRate / 60)
}
}
}

// main layout
layout {
property(property:multiplicationFactor, label:'Multiplier', min:1)
separator(vertical:true)
box(widget:'display') {
node(label:'Multiplication Factor', fString:displayFactor, constraints:'wmin 75')
}
}

// compact layout
compactLayout {
box(widget:'display') {
node(label:'Multiplication Factor', fString:displayFactor)
}
}

// basic settings tab
settings(label:'Basic') {
property( property:multiplicationFactor, label:'Multiplication Factor')
}



Note:
  • This currently works only with rate based generators, i.e. Fixed, Random and Variance.
  • If multiplier is changed very rapidly and randomly, error might get thrown from the random generators due to a previously reported bug (viewtopic.php?f=12&t=12859)
  • As rate is a whole number, changing multiplier value back-n-forth may not bring the initial rate setting back due to rounding up/down operation done during rate value calculation.

    Any suggestion to improve the component is most welcome.
  • ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2012-03-08T15:12:03.000-08:00","lastPublishTime":"2012-03-08T15:12:03.000-08:00","metrics":{"__typename":"MessageMetrics","views":4270},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19638","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[{"__typename":"AttachmentEdge","cursor":"MjQuMTF8Mi4xfG98NXxfTlZffDE","node":{"__ref":"Attachment:{\"id\":\"attachment:message19638AttachmentNumber1\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/1/RateMultiplier.zip\"}"}},{"__typename":"AttachmentEdge","cursor":"MjQuMTF8Mi4xfG98NXxfTlZffDI","node":{"__ref":"Attachment:{\"id\":\"attachment:message19638AttachmentNumber2\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/2/Example.png\"}"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:27925":{"__typename":"User","id":"user:27925","uid":27925,"login":"njcoutinho","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-03-02T20:46:27.000-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-2.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":3,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:27925"},"ModerationData:moderation_data:19644":{"__typename":"ModerationData","id":"moderation_data:19644","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19644":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:27925"},"id":"message:19644","revisionNum":1,"uid":19644,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19644"},"body":"
    SmartBear Support wrote:
    thzinc wrote:
    Component Name
    Custom HTTP Runner

    Developer
    Daniel James, Casting Networks, Inc.

    [...]

    Looking really good Daniel!

    In case you haven't already noticed, your component have been published in the custom components gallery.

    Henrik
    loadUI developer



    Hi Daniel ,

    Where can i find the documentation of your product","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2012-04-12T21:34:04.000-07:00","lastPublishTime":"2012-04-12T21:34:04.000-07:00","metrics":{"__typename":"MessageMetrics","views":4271},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19644","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:28917":{"__typename":"User","id":"user:28917","uid":28917,"login":"lomewbartho","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-04-27T04:21:27.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-11.svg"},"rank":null,"messagesCount":1,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:28917"},"ModerationData:moderation_data:19649":{"__typename":"ModerationData","id":"moderation_data:19649","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19649":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:28917"},"id":"message:19649","revisionNum":1,"uid":19649,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19649"},"body":"Derivative of Web Runner, Custom HTTP Runner allows you to execute an HTTP request using any method desired. (e.g., GET, HEAD, POST, PUT, any other arbitrary verb) The Custom HTTP Runner also allows you to specify a pre-encoded HTTP entity body, which is especially useful for POST or PUT requests.Derivative of Web Runner, Custom HTTP Runner allows you to execute an HTTP request using any method desired. (e.g., GET, HEAD, POST, PUT, any other arbitrary verb) The Custom HTTP Runner also allows you to specify a pre-encoded HTTP entity body, which is especially useful for POST or PUT requests.Derivative of Web Runner, Custom HTTP Runner allows you to execute an HTTP request using any method desired. (e.g., GET, HEAD, POST, PUT, any other arbitrary verb) The Custom HTTP Runner also allows you to specify a pre-encoded HTTP entity body, which is especially useful for POST or PUT requests.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2012-04-27T04:29:15.000-07:00","lastPublishTime":"2012-04-27T04:29:15.000-07:00","metrics":{"__typename":"MessageMetrics","views":4271},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19649","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:30592":{"__typename":"User","id":"user:30592","uid":30592,"login":"inkless","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-05-29T06:55:36.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-4.svg"},"rank":null,"messagesCount":1,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:30592"},"ModerationData:moderation_data:19654":{"__typename":"ModerationData","id":"moderation_data:19654","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19654":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:30592"},"id":"message:19654","revisionNum":1,"uid":19654,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19654"},"body":"Component name:
    HTML Runner

    Description:
    Fetches a webpage (including images) and runs JavaScript.

    Source code:
    /**
    * Fetches a web page.
    *
    * @id com.eviware.HtmlRunner
    * @name HTML Runner
    * @category runners
    * @dependency org.apache.httpcomponents:httpcore:4.1
    * @dependency org.apache.httpcomponents:httpclient:4.1.1
    * @dependency net.sourceforge.htmlunit:htmlunit:2.9
    */

    import org.apache.http.*
    import org.apache.http.client.*
    import org.apache.http.auth.*
    import org.apache.http.conn.params.*
    import org.apache.http.conn.scheme.*
    import org.apache.http.impl.client.BasicCredentialsProvider
    import com.eviware.loadui.api.events.PropertyEvent
    import com.eviware.loadui.impl.component.categories.RunnerBase.SampleCancelledException

    import org.apache.http.conn.scheme.Scheme
    import org.apache.http.conn.ssl.SSLSocketFactory
    import javax.net.ssl.SSLContext
    import javax.net.ssl.KeyManager
    import javax.net.ssl.TrustManager
    import javax.net.ssl.X509TrustManager
    import java.security.cert.X509Certificate
    import java.security.cert.CertificateException
    import java.security.SecureRandom
    import java.util.HashMap
    import java.util.concurrent.TimeUnit

    import com.gargoylesoftware.htmlunit.WebClient
    import com.gargoylesoftware.htmlunit.WebRequestSettings

    //SSL support, trust all certificates and hostnames.
    class NaiveTrustManager implements X509TrustManager {
    void checkClientTrusted ( X509Certificate[] cert, String authType ) throws CertificateException {}
    void checkServerTrusted ( X509Certificate[] cert, String authType ) throws CertificateException {}
    X509Certificate[] getAcceptedIssuers () { null }
    }
    def sslContext = SSLContext.getInstance( 'SSL' )
    TrustManager[] tms = [ new NaiveTrustManager() ]
    sslContext.init( new KeyManager[0], tms, new SecureRandom() )
    def sslSocketFactory = new SSLSocketFactory( sslContext )
    sslSocketFactory.hostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER

    def sr = new SchemeRegistry()
    sr.register( new Scheme( \"http\", PlainSocketFactory.socketFactory, 80 ) )
    sr.register( new Scheme( \"https\", sslSocketFactory, 443 ) )

    //Properties
    createProperty( 'url', String ) { ->
    validateUrl()
    }
    createProperty( 'outputBody', Boolean, false )
    createProperty( 'downloadResources', Boolean, true )
    createProperty( 'runJavaScript', Boolean, true )
    createProperty( 'errorCodeList', String )

    authUsername = createProperty( '_authUsername', String )
    authPassword = createProperty( '_authPassword', String )

    inlineUrlAuthUsername = null
    inlineUrlAuthPassword = null
    credentialsProvider = new BasicCredentialsProvider()

    def runningSamples = ( [] as Set ).asSynchronized()
    runAction = null

    def dummyUrl = \"http://GoSpamYourself.com\"

    validateUrl = {
    if( url.value && !( url.value.toLowerCase().startsWith( \"http://\" ) || url.value.toLowerCase().startsWith( \"https://\" ) ) ) {
    url.value = \"http://\" + url.value
    }

    if( url.value =~ /https?:\\/\\/(www\\.)?(eviware\\.com|(soapui|loadui)\\.org)(\\/.*)?/ ) url.value = dummyUrl

    // extract possible username and password from username:password@domain syntax
    matcher = url.value?.replace( \"http://\", \"\" ) =~ /([^:]+):([^@]+)@(.+)/
    if ( matcher ) {
    inlineUrlAuthUsername = matcher[0][1]
    inlineUrlAuthPassword = matcher[0][2]
    } else {
    inlineUrlAuthUsername = inlineUrlAuthPassword = null
    }
    updateAuth()

    try {
    new URI( url.value )
    setInvalid( !url.value || url.value == dummyUrl )
    } catch( e ) {
    setInvalid( true )
    }

    runAction?.enabled = !isInvalid()
    }

    updateAuth = {
    def username = null
    def password = null
    if( inlineUrlAuthUsername && inlineUrlAuthPassword ) {
    username = inlineUrlAuthUsername
    password = inlineUrlAuthPassword
    } else if( authUsername.value?.trim() && authPassword.value?.trim() ) {
    username = authUsername.value
    password = authPassword.value
    }

    if( username && password ) {
    credentialsProvider.setCredentials(
    new AuthScope( AuthScope.ANY ),
    new UsernamePasswordCredentials( username, password )
    )
    }
    }

    validateUrl()

    requestResetValue = 0
    sampleResetValue = 0
    discardResetValue = 0
    failedResetValue = 0


    acceptTypes = new HashMap<String, String>()
    acceptTypes.put(\"html\", \"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\")
    acceptTypes.put(\"img\", \"image/png,image/*;q=0.8,*/*;q=0.5\")
    acceptTypes.put(\"script\", \"*/*\")
    acceptTypes.put(\"style\", \"text/css,*/*;q=0.1\")

    def downloadCssAndImages( page ) {
    def bytesDownloaded = 0
    def xPathExpression = \"//*[name() = 'img' or name() = 'link' and @type = 'text/css']\"
    def resultList = page.getByXPath(xPathExpression)
    resultList.each {
    try {
    println( \"next is $it\" )

    def path = it.getAttribute( 'src' ).equals( '' ) ? it.getAttribute( 'href' ) : it.getAttribute( 'src' )
    if ( path != null && !path.equals( '' ) ) {

    def url = page.getFullyQualifiedUrl(path)
    def wrs = new WebRequestSettings(url)
    wrs.setAdditionalHeader( 'Referer', page.webResponse.requestSettings.url.toString() )

    client.addRequestHeader( 'Accept', acceptTypes[ it.tagName.toLowerCase() ] )
    bytesDownloaded += client.getPage( wrs ).webResponse.contentAsString.length()
    println( \"downloading $wrs\" )
    }
    } catch ( e ) { println \"!!! $e\" }
    }

    client.removeRequestHeader( 'Accept' )
    return bytesDownloaded
    }

    sample = { message, sampleId ->

    def uri = message['url'] ?: url.value
    if( uri ) {
    message['ID'] = uri

    client = new WebClient()
    client.setJavaScriptEnabled( runJavaScript.value )
    runningSamples.add( client )
    try {
    //client.setCredentialsProvider( credentialsProvider )
    def page = client.getPage( uri )

    def bytesDownloaded = 0
    if( downloadResources.value )
    bytesDownloaded = downloadCssAndImages( page )

    //def response = http.execute( get )
    message['Status'] = true
    message['URI'] = uri
    def statusCode = page.webResponse.statusCode
    message['HttpStatus'] = statusCode

    if( errorCodeList.value ) {
    def assertionCodes = errorCodeList.value.split(',')*.trim()
    if( assertionCodes.contains( statusCode.toString() ) )
    {
    failedRequestCounter.increment()
    failureCounter.increment()
    }
    }

    if( true /* response.entity != null */ ) {
    message['Bytes'] = page.webResponse.contentAsString.length() + bytesDownloaded

    if( outputBody.value )
    message['Response'] = page.webResponse.contentAsString()

    if( !runningSamples.remove( client ) ) {
    throw new SampleCancelledException()
    }

    return message
    }
    } catch( e ) {
    if( e instanceof SampleCancelledException )
    throw e

    if( e instanceof IOException )
    log.warn( \"IOException in {}: {}\", label, e.message )
    else
    log.error( \"Exception in $label:\", e )

    if ( !runningSamples.remove( client ) ) {
    throw new SampleCancelledException()
    }

    message['Status'] = false
    failedRequestCounter.increment()
    failureCounter.increment()

    return message
    }
    } else {
    throw new SampleCancelledException()
    }

    }

    /*
    onCancel = {
    def numberOfRunning = 0
    synchronized( runningSamples ) {
    def methods = runningSamples.toArray()
    numberOfRunning = methods.size()
    runningSamples.clear()
    methods.each { if( !it.aborted ) it.abort() }
    }

    return numberOfRunning
    }*/

    onAction( 'RESET' ) {
    requestResetValue = 0
    sampleResetValue = 0
    discardResetValue = 0
    failedResetValue = 0
    }

    addEventListener( PropertyEvent ) { event ->
    if ( event.event == PropertyEvent.Event.VALUE ) {
    if( event.property in [ authUsername, authPassword ] ) {
    credentialsProvider.clear()
    updateAuth()
    }
    }
    }

    //Layout
    layout {
    box( layout:'wrap 2, ins 0' ) {
    property( property:url, label:'Web Page Address', constraints: 'w 270!, spanx 2' )

    separator()

    property( property:runJavaScript, label:'Enable JavaScript', constraints: 'w 110!, spanx 1' )
    property( property:downloadResources, label:'Download images and CSS', constraints: 'w 150!, spanx 1' )

    runAction = action( label:'Run Once', action: { triggerAction( 'SAMPLE' ) } )
    action( label:'Abort Running Pages', action: { triggerAction( 'CANCEL' ) } )
    }
    separator(vertical:true)
    box( layout:'wrap, ins 0' ){
    box( widget:'display', layout:'wrap 3, align right' ) {
    node( label:'Requests', content: { requestCounter.get() - requestResetValue }, constraints:'w 50!' )
    node( label:'Running', content: { currentlyRunning }, constraints:'w 50!' )
    node( label:'Completed', content: { sampleCounter.get() - sampleResetValue }, constraints:'w 60!' )
    node( label:'Queued', content: { queueSize }, constraints:'w 50!' )
    node( label:'Discarded', content: { discardCounter.get() - discardResetValue }, constraints:'w 50!' )
    node( label:'Failed', content: { failureCounter.get() - failedResetValue }, constraints:'w 60!' )
    }
    action( label:'Reset', action: {
    requestResetValue = requestCounter.get()
    sampleResetValue = sampleCounter.get()
    discardResetValue = discardCounter.get()
    failedResetValue = failureCounter.get()
    triggerAction( 'CANCEL' )
    }, constraints:'align right' )
    }
    }

    //Compact Layout
    compactLayout {
    box( widget:'display', layout:'wrap 3, align right' ) {
    node( label:'Requests', content: { requestCounter.get() - requestResetValue }, constraints:'w 50!' )
    node( label:'Running', content: { currentlyRunning }, constraints:'w 50!' )
    node( label:'Completed', content: { sampleCounter.get() - sampleResetValue }, constraints:'w 60!' )
    node( label:'Queued', content: { queueSize }, constraints:'w 50!' )
    node( label:'Discarded', content: { discardCounter.get() - discardResetValue }, constraints:'w 50!' )
    node( label:'Failed', content: { failureCounter.get() - failedResetValue }, constraints:'w 60!' )
    }
    }

    settings( label: 'Basic' ) {
    property( property: outputBody, label: 'Output Response Body' )
    property( property: concurrentSamples, label: 'Max Concurrent Requests' )
    property( property: maxQueueSize, label: 'Max Queue' )
    property( property: errorCodeList, label: 'Error Codes that Count as Failures', constraints:'w 200!')
    property( property: countDiscarded, label: 'Count Discarded Requests as Failed' )
    }

    settings( label: 'Authentication' ) {
    property( property: authUsername, label: 'Username' )
    property( property: authPassword, widget: 'password', label: 'Password' )
    }
    ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2012-05-29T07:00:29.000-07:00","lastPublishTime":"2012-05-29T07:00:29.000-07:00","metrics":{"__typename":"MessageMetrics","views":4270},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19654","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:19659":{"__typename":"ModerationData","id":"moderation_data:19659","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:19659":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:11594"},"id":"message:19659","revisionNum":1,"uid":19659,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:19607"},"conversation":{"__ref":"Conversation:conversation:19607"},"subject":"Re: Share your components here","moderationData":{"__ref":"ModerationData:moderation_data:19659"},"body":"Component name:
    Geb Runner

    Description:
    Runs Geb scripts. Geb is a browser automation solution for Groovy that can be used for functional/web/acceptance testing. This component has been published here: http://loadui.org/Custom-Components/

    Source code:
    /**
    * Runs a Geb (http://www.gebish.org/) Script
    *
    * @name Geb Runner
    * @category runners
    * @id com.eviware.GebRunner
    * @dependency net.sourceforge.htmlunit:htmlunit:2.9
    * @dependency org.codehaus.geb:geb-core:latest.release
    * @dependency org.seleniumhq.selenium:selenium-htmlunit-driver:2.4.0
    */

    import com.eviware.loadui.impl.component.categories.RunnerBase.SampleCancelledException

    import java.util.HashSet
    import java.util.Collections

    import groovy.lang.GroovyShell
    import groovy.lang.Binding


    //Properties
    createProperty( 'scriptFile', File, null, false )
    createProperty( 'cacheScriptContent', Boolean, true, false )
    createProperty( 'setBinding', Boolean, true )
    scriptContent = createProperty( '_scriptContent', String ) {
    parseScript()
    }

    runningSamples = Collections.synchronizedSet( new HashSet() )

    requestResetValue = 0
    sampleResetValue = 0
    discardResetValue = 0
    failedResetValue = 0
    runButton = null

    parseScript = {
    if( !scriptContent.value )
    {
    runButton?.enabled = false
    return
    }

    try {
    //script = shell.parse( imports + scriptContent.value )
    log.info( scriptContent.value )
    runButton?.enabled = true
    } catch( e ) {
    log.error( e.message, e )
    runButton?.enabled = false
    }
    }

    //We'll only ever read the file on the controller, and send out the script content as a String to the agents.
    if( controller ) {
    lastModified = null
    updateScript = {
    if( scriptFile.value && scriptFile.value.exists() ) {
    if( lastModified != scriptFile.value.lastModified() ) {
    scriptContent.value = scriptFile.value.text
    lastModified = scriptFile.value.lastModified()
    parseScript()
    }
    } else {
    lastModified = null
    scriptContent.value = null
    }
    }
    updateScript()

    onReplace( scriptFile, updateScript )
    onReplace( cacheScriptContent, updateScript )
    }


    sample = { message, sampleId ->
    try {
    runningSamples.add( Thread.currentThread() )
    if( controller && !cacheScriptContent.value )
    updateScript()

    def result = evaluate( scriptContent.value )

    message['Status'] = true
    if( result instanceof Map ) {
    message.putAll( result )
    } else {
    message['Result'] = String.valueOf( result )
    }
    } catch( Throwable e ) {
    if( e instanceof InterruptedException )
    throw new SampleCancelledException()
    message['Status'] = false
    message['Result'] = e.toString()
    //failedRequestCounter.increment()
    failureCounter.increment()
    } finally {
    runningSamples.remove( Thread.currentThread() )
    }

    return message
    }

    onCancel = {
    synchronized( runningSamples ) {
    def threads = runningSamples.toArray()
    runningSamples.clear()
    threads.each { it.interrupt() }
    return threads.length
    }
    }

    onAction( \"RESET\" ) {
    if( controller ) updateScript()
    requestResetValue = 0
    sampleResetValue = 0
    discardResetValue = 0
    failedResetValue = 0
    }

    //Layout
    layout {
    box( layout: 'wrap 2, ins 0' ) {
    property( property: scriptFile, label: 'Geb Script File', constraints: 'w 300!, spanx 2', style: '-fx-font-size: 17pt' )
    property( property: cacheScriptContent, label: 'Cache script content', constraints: 'growx, spanx 2' )
    separator()
    runButton = action( label: 'Run Once', action: { triggerAction('SAMPLE') }, enabled: ( scriptFile.value && scriptFile.value.exists() ) )
    action( label: 'Abort Running Scripts', action: { triggerAction('CANCEL') } )
    }
    separator( vertical: true )
    box( layout: 'wrap, ins 0' ){
    box( widget: 'display', layout: 'wrap 3, align right', column: '[50|50|60]' ) {
    node( label: 'Requests', content: { requestCounter.get() - requestResetValue } )
    node( label: 'Running', content: { currentlyRunning } )
    node( label: 'Completed', content: { sampleCounter.get() - sampleResetValue } )
    node( label: 'Queued', content: { queueSize } )
    node( label: 'Discarded', content: { discardCounter.get() - discardResetValue } )
    node( label: 'Failed', content: { failureCounter.get() - failedResetValue } )
    }
    action( label: 'Reset', action: {
    requestResetValue = requestCounter.get()
    sampleResetValue = sampleCounter.get()
    discardResetValue = discardCounter.get()
    failedResetValue = failureCounter.get()
    triggerAction('CANCEL')
    }, constraints:'align right' )
    }
    }

    compactLayout {
    box( widget: 'display', layout: 'wrap 3, align right', column: '[50|50|60]' ) {
    node( label: 'Requests', content: { requestCounter.get() - requestResetValue } )
    node( label: 'Running', content: { currentlyRunning } )
    node( label: 'Completed', content: { sampleCounter.get() - sampleResetValue } )
    node( label: 'Queued', content: { queueSize } )
    node( label: 'Discarded', content: { discardCounter.get() - discardResetValue } )
    node( label: 'Failed', content: { failureCounter.get() - failedResetValue } )
    }
    }

    settings( label: \"Basic\" ) {
    property( property: setBinding, label: 'Make trigger message parameters available to the script' )
    }
    ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2012-06-05T02:04:19.000-07:00","lastPublishTime":"2012-06-05T02:04:19.000-07:00","metrics":{"__typename":"MessageMetrics","views":1535},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:19607/message:19659","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1720711077000","value":{"escalationMessage":"Escalated to Salesforce by {username} on {date}","viewDetails":"View Details","modalTitle":"Case Details","escalatedBy":"Escalated by: ","escalatedOn":"Escalated on: ","caseNumber":"Case Number: ","status":"Status: ","lastUpdateDate":"Last Update: ","automaticEscalation":"automatic escalation","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1720711077000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1720711077000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1720711077000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1720711077000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1720711077000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1720711077000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1720711077000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1720711077000","value":{"accept":"Mark as Solution","accepted":"Marked as Solution","errorHeader":"Error!","errorAdd":"There was an error marking as solution.","errorRemove":"There was an error unmarking as solution.","solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1720711077000","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1720711077000","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000","value":{"loadMore":"Show More"},"localOverride":false},"Attachment:{\"id\":\"attachment:message19628AttachmentNumber1\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2979/1/2011-09-28_0941LOAD.png\"}":{"__typename":"Attachment","id":"attachment:message19628AttachmentNumber1","filename":"2011-09-28_0941LOAD.png","filesize":29706,"contentType":"image/png","url":"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2979/1/2011-09-28_0941LOAD.png"},"Attachment:{\"id\":\"attachment:message19638AttachmentNumber1\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/1/RateMultiplier.zip\"}":{"__typename":"Attachment","id":"attachment:message19638AttachmentNumber1","filename":"RateMultiplier.zip","filesize":3814,"contentType":"application/zip","url":"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/1/RateMultiplier.zip"},"Attachment:{\"id\":\"attachment:message19638AttachmentNumber2\",\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/2/Example.png\"}":{"__typename":"Attachment","id":"attachment:message19638AttachmentNumber2","filename":"Example.png","filesize":100281,"contentType":"image/png","url":"https://community.smartbear.com/t5/s/nwkab66374/attachments/nwkab66374/readyapi-questions/2981/2/Example.png"},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1720711077000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/attachments/AttachmentView/AttachmentViewChip-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/attachments/AttachmentView/AttachmentViewChip-1720711077000","value":{"errorTitle":"Failed!","previewFile":"Preview File","downloadFile":"Download File {name}","removeFile":"Remove File {name}","errorBadExtension":"This file does not have a valid extension. \"{extensions}\" are the valid extensions.","errorFileEmpty":"This file is empty or does not exist.","errorTooLarge":"The maximum file size is: {maxFileSize}.","errorTooMany":"Too many attachments. The maximum number of attachments per message is: {maxAttachmentCount, number, integer}.","errorDuplicate":"This file is already attached."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1720711077000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1720711077000","value":{"solved":"Solved"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"readyapi-questions","messageSubject":"share-your-components-here","messageId":"19607"},"buildId":"OKtI0OLKuXmERTJKBVqYX","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"24.11.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","../shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable/PagerLoadMorePreviousNextLinkable.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","../shared/client/components/common/List/ListGroup/ListGroup.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/attachments/AttachmentView/AttachmentView.tsx","./components/attachments/AttachmentView/AttachmentViewChip/AttachmentViewChip.tsx"],"appGip":true,"scriptLoader":[]}