Here's an example on mapping values from a data source into a response message. This example reads in an Excel file, then uses a request parameter as a key value to find the values of a row of data in the Excel spreadsheet.
There's another example on the SoapUI documentation that discusses how to do this with a database connection. You can navigate here for that example.
This script is broken down into three sections. The first section reads in the request parameter that we'll use as our key. Request parameters can be accessed with the mockRequest.getRequest().getQueryString() methods. I take the output of this method and tie it to a string. You'll want to do some parsing on the string to isolate the exact value you want to use.
The second section then opens a workbook in Excel and looks for the row of data based on our key (the \"q\" property). The POI libraries make it fairly easy to work with Excel workbooks, and there's lots of resources online that can explain how to use the libraries better than I can. All we're doing here is opening the workbook and scanning each row to see if we find a row of data that matches our key.
The third section triggers if we find a row of data that matches our key. I use a switch statement here to map the values of the row to a property. The main thing to note is that we use the requestContext.valueformat to assign the values to a virtual service property.
Here's the script I use:
\n
\n
//Read in excel libraries\nimport org.apache.poi.ss.usermodel.*\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook\n\n//================================================================//\n//Part 1. Read in request parameters. \n//================================================================//\n\n// Get the query string of the request, isolate the \"q\" parameter\n// In this example, the request string looks like: \"q=CityName&apikey=abc1234\"\ndef inputString = mockRequest.getRequest().getQueryString()\ndef inputString2 = mockRequest.getRequest()\nlog.info inputString2\ndef q = null\n//split query string\ndef keyValuePairs = inputString.split(\"&\")\nkeyValuePairs.each { pair ->\n def key = pair.split(\"=\")[0]\n def value = pair.split(\"=\")[1]\n if (key == \"q\") {\n q = value\n }\n}\n\n//================================================================//\n//Part 2. Open Workbook. Scan for row of data \n//================================================================//\n\n// Specify the path to your Excel file\ndef filePath = \"<path to your file here>\"\n// Specify the value to search in the first column\ndef searchValue = q\n\n// Load the Excel file\ndef file = new File(filePath)\ndef workbook = new XSSFWorkbook(file)\n\n// Assuming the data is in the first sheet, you can change the sheet index if needed\ndef sheet = workbook.getSheetAt(0)\n\n// Find the row with the matching search value\ndef matchedRow = null\n\nfor (Row row : sheet) {\n def cellValue = row.getCell(0)?.toString()\n if (cellValue == searchValue) {\n matchedRow = row\n break\n }\n}\n\n//================================================================//\n//Part 3. Map cells of the row to response variables. Close workbook.\n//================================================================//\nif (matchedRow != null) {\n for (Cell cell : matchedRow) {\n int columnIndex = cell.getColumnIndex()\n switch (columnIndex) {\n case 0:\n requestContext.cityCell = cell.toString()\n break\n case 1:\n requestContext.countryCell = cell.toString()\n break\n case 2:\n requestContext.abbrCell = cell.toString()\n break\n default:\n break\n }\n}\n}else {\n //Do Something \n}\n\n// Close the workbook\nworkbook.close()
\n
\n
The response then looks like this:
\n
\n
{\n \"Response\": \"This is a dynamic response\",\n \"Location\":\"${cityCell}\",\n \"Country\" : \"${countryCell}\",\n \"Country Code\" : \"${abbrCell}\"\n}
\n
\n
My example uses a spreadsheet which provides responses for the 50 most populated cities. As long as we hit a city on this list we'll return a response such as this:
\n
\n
\n
The dataset that I'm using in this example looks like this:
\n
\n
\n
","board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:261187"},"author":{"__typename":"User","login":"SarahS"},"postTime":"2023-12-07T07:42:52.432-08:00","kudosSumWeight":0}}]},"cachedAsset({\"assetId\":\"Common\",\"assetType\":\"quiltWrapper\",\"lastModified\":\"1742462762897\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:quiltWrapper:smartbear.prod:Common:1742462762897"},"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/common/ActionFeedback\"]})":[{"__ref":"CachedAsset:text:en_US-components/common/ActionFeedback-1741125846000"}],"cachedAsset({\"assetId\":\"custom.widget.Footer_Links-en-US\",\"assetType\":\"component\",\"lastModified\":\"1744211059216\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:component:custom.widget.Footer_Links-en-1744211059216"},"cachedAsset({\"assetId\":\"custom.widget.Custom_Style_Helper-en-US\",\"assetType\":\"component\",\"lastModified\":\"1744211059216\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:component:custom.widget.Custom_Style_Helper-en-1744211059216"},"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/Navbar\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/Navbar-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarHamburgerDropdown\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/BrandLogo\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/BrandLogo-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarTextLinks\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarTextLinks-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/search/SpotlightSearchIcon\"]})":[{"__ref":"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/authentication/AuthenticationLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/Breadcrumb\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/Breadcrumb-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBanner-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageListForNodeByRecentActivityWidget\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/RelatedContentWidget\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1741125846000"}],"messages({\"constraints\":{\"boardId\":{\"eq\":\"board:readyapi-questions\"},\"conversationStyle\":{\"eq\":\"FORUM\"},\"depth\":{\"eq\":0}},\"first\":3,\"sorts\":{\"postTime\":{\"direction\":\"DESC\"}}})":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwzfDM5OjB8aW50LDI3NTcxMiwyNzU3MTI","node":{"__ref":"ForumTopicMessage:message:275712"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwzfDM5OjB8aW50LDI3NTcxMiwyNzU2NjA","node":{"__ref":"ForumTopicMessage:message:275660"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwzfDM5OjB8aW50LDI3NTcxMiwyNzU1NzU","node":{"__ref":"ForumTopicMessage:message:275575"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MjUuMnwyLjF8aXwzfDM5OjB8aW50LDI3NTcxMiwyNzU1NzU"},"totalCount":15553},"relatedContent({\"first\":3,\"post_id\":261187})":{"__typename":"RelatedContentConnection","edges":[{"__typename":"RelatedContentEdge","node":{"__ref":"RelatedContentMessage:RelatedContentMessage:234449"}},{"__typename":"RelatedContentEdge","node":{"__ref":"RelatedContentMessage:RelatedContentMessage:246094"}},{"__typename":"RelatedContentEdge","node":{"__ref":"RelatedContentMessage:RelatedContentMessage:259791"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MHwyNTk3OTF8MnwzOzN8fA"}},"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeLink-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewStandard\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/ThreadedReplyList\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyCallToAction\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/QueryHandler\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1741125846000"}],"component({\"componentId\":\"custom.widget.Footer_Links\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:readyapi-questions\",\"message:261187\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.smartbear.com/discussions/readyapi-questions/scripting-in-readyapi-virtualization-for-dynamic-mocks/261187\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"componentScriptGroups({\"componentId\":\"custom.widget.Footer_Links\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Custom_Style_Helper\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:readyapi-questions\",\"message:261187\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.smartbear.com/discussions/readyapi-questions/scripting-in-readyapi-virtualization-for-dynamic-mocks/261187\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"componentScriptGroups({\"componentId\":\"custom.widget.Custom_Style_Helper\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/EscalatedMessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolvedBadge\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/AcceptedSolutionButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741125846000"}],"message({\"id\":\"message:261191\"})":{"__ref":"ForumReplyMessage:message:261191"},"message({\"id\":\"message:261189\"})":{"__ref":"ForumReplyMessage:message:261189"},"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000"}],"cachedText({\"lastModified\":\"1741125846000\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741125846000"}]},"CachedAsset:pages-1742462839359":{"__typename":"CachedAsset","id":"pages-1742462839359","value":[{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ChampionRules.Page","type":"COMMUNITY","urlPath":"/c/champion-rules/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"HealthCheckPage","type":"COMMUNITY","urlPath":"/health","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742462839359,"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":null,"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"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMy1yRDhvZGE\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMy1yRDhvZGE","height":64,"width":64,"mimeType":"image/png"},"Rank:rank:3":{"__typename":"Rank","id":"rank:3","position":2,"name":"Staff","color":"28B1FD","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMy1yRDhvZGE\"}"},"rankStyle":"FILLED"},"User:user:97303":{"__typename":"User","id":"user:97303","uid":97303,"login":"SarahS","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/images/dS05NzMwMy0xNTQ5OGk1MkRFNzkxMkI1N0IwMTZG"},"rank":{"__ref":"Rank:rank:3"},"email":"","messagesCount":42,"biography":null,"topicsCount":1,"kudosReceivedCount":16,"kudosGivenCount":1,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-04-07T06:31:40.488-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":12,"entityType":"USER","eventPath":"community:nwkab66374/user:97303"},"ForumTopicMessage:message:261187":{"__typename":"ForumTopicMessage","uid":261187,"subject":"Scripting in ReadyAPI Virtualization for Dynamic Mocks","id":"message:261187","revisionNum":1,"repliesCount":2,"author":{"__ref":"User:user:97303"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:261187"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:261187"},"body":"
Hey Everyone.
I wanted to make a post about scripting in ReadyAPI Virtualization for the purpose of creating dynamic mocks. Scripted samples always help when I'm trying to achieve something, so I hope that these scripts will help guide you with dynamic mocks.
I've primarily used two resources to learn how to work with dynamic mocks. The first is a support document for SoapUI OS. This page has a comprehensive overview on working with mock services and provides examples on how to accomplish various tasks when working with the virtual service scripts. https://www.soapui.org/docs/soap-mocking/creating-dynamic-mockservices/
My intent here is to provide some scripted samples that I've worked on. I'd also like to hear if anyone has requests on scripted tasks with virtual services in ReadyAPI.
","body@stringLength":"1502","rawBody":"
Hey Everyone.
I wanted to make a post about scripting in ReadyAPI Virtualization for the purpose of creating dynamic mocks. Scripted samples always help when I'm trying to achieve something, so I hope that these scripts will help guide you with dynamic mocks.
I've primarily used two resources to learn how to work with dynamic mocks. The first is a support document for SoapUI OS. This page has a comprehensive overview on working with mock services and provides examples on how to accomplish various tasks when working with the virtual service scripts. https://www.soapui.org/docs/soap-mocking/creating-dynamic-mockservices/
My intent here is to provide some scripted samples that I've worked on. I'd also like to hear if anyone has requests on scripted tasks with virtual services in ReadyAPI.
","kudosSumWeight":0,"postTime":"2023-12-07T06:59:47.077-08: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":[{"__typename":"TagEdge","cursor":"MjUuMnwyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:Scripting","text":"Scripting","time":"2015-05-29T05:46:36.658-07:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}},{"__typename":"TagEdge","cursor":"MjUuMnwyLjF8b3wxMHxfTlZffDI","node":{"__typename":"Tag","id":"tag:Virtual Tests","text":"Virtual Tests","time":"2021-09-27T04:49:15.596-07:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:261187_1"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":699},"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":"Hey Everyone. I wanted to make a post about scripting in ReadyAPI Virtualization for the purpose of creating dynamic mocks. Scripted samples always help when I'm trying to achieve something,...","replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwxMHwzOTowfGludCwyNjExOTEsMjYxMTkx","node":{"__ref":"ForumReplyMessage:message:261191"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwxMHwzOTowfGludCwyNjExOTEsMjYxMTg5","node":{"__ref":"ForumReplyMessage:message:261189"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"Conversation:conversation:261187":{"__typename":"Conversation","id":"conversation:261187","solved":false,"topic":{"__ref":"ForumTopicMessage:message:261187"},"lastPostingActivityTime":"2023-12-07T07:42:52.432-08:00","lastPostTime":"2023-12-07T07:42:52.432-08:00","unreadReplyCount":2,"isSubscribed":false},"ModerationData:moderation_data:261187":{"__typename":"ModerationData","id":"moderation_data:261187","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:261187_1":{"__typename":"Revision","id":"revision:261187_1","lastEditTime":"2023-12-07T06:59:47.077-08:00"},"CachedAsset:theme:customTheme1-1742462838917":{"__typename":"CachedAsset","id":"theme:customTheme1-1742462838917","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_1-1740580807109.png","imageLastModified":"1740580811989","__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":"LIGHT","sideContent":"LIGHT","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":"#F8FAFB","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":"13px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__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":"25px","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":"25px","__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.4","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-shared/client/components/common/Loading/LoadingDot-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1741125846000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1742846901662":{"__typename":"CachedAsset","id":"quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1742846901662","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.messageListForNodeByRecentActivityWidget","className":null,"props":{"hideIfEmpty":true,"pageSize":3,"pagerVariant":{"type":"loadMore"},"viewVariant":{"type":"inline","props":{"useRepliesCount":true,"useMedia":true,"useAuthorRank":false,"useNode":false,"truncateBodyLength":200,"useNodeLink":true,"usePreviewMedia":true,"timeStampType":"postTime","useTextBody":true,"useSolvedBadge":true,"renderPostTimeBeforeAuthor":false,"useAvatar":false,"useTimeToRead":true,"useSpoilerFreeBody":true,"useKudosCount":true,"useViewCount":true,"useBody":true,"useTags":true,"clampSubjectLines":2,"useBoardIcon":false,"useMessageTimeLink":true,"clampBodyLines":3,"useAuthorLogin":true,"useUnreadCount":true,"useNodeHoverCard":true,"useSearchSnippet":false}},"lazyLoad":false,"pagerOption":true,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"useTitle":true,"addTags":false,"instanceId":"1740141671777","titleContextVariant":"other","showTabs":false,"style":"compact","panelType":"standard","sorts":{"postTime":{"direction":"DESC"}},"pagerOptionCard":false},"__typename":"QuiltComponent"},{"id":"messages.widget.relatedContentWidget","className":null,"props":{"hideIfEmpty":true,"enablePagination":false,"useTitle":true,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"instanceId":"1740141641356","pageSize":3,"style":"compact","pagerVariant":{"type":"none"},"viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"useCompactSpacing":true,"boardIconSize":"24","useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useNodeLink":true,"useViewCount":false,"usePreviewMedia":true,"useBody":false,"timeStampType":"postTime","useTags":false,"clampSubjectLines":2,"useBoardIcon":false,"useMessageTimeLink":true,"useTextBody":true,"useSolvedBadge":false,"renderPostTimeBeforeAuthor":true,"useAvatar":false,"useAuthorLogin":true,"useVideoPreview":false}},"lazyLoad":false,"panelType":"standard"},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1741125846000","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-pages/forums/ForumMessagePage-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-pages/forums/ForumMessagePage-1741125846000","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:1742462762897":{"__typename":"CachedAsset","id":"quiltWrapper:smartbear.prod:Common:1742462762897","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.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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1741125846000","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-1744211059216":{"__typename":"CachedAsset","id":"component:custom.widget.Footer_Links-en-1744211059216","value":{"component":{"id":"custom.widget.Footer_Links","template":{"id":"Footer_Links","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"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":[],"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.Custom_Style_Helper-en-1744211059216":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Style_Helper-en-1744211059216","value":{"component":{"id":"custom.widget.Custom_Style_Helper","template":{"id":"Custom_Style_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"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":[],"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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1741125846000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1741125846000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1741125846000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/search/SpotlightSearchIcon-1741125846000","value":{"search":"Search"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1741125846000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1741125846000","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/MessageListForNodeByRecentActivityWidget-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1741125846000","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","title@instance:1740667137564":"Community Feed","title@instance:1740667273045":"Community Feed"},"localOverride":false},"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/RelatedContentWidget-1741125846000","value":{"title":"Related Content","emptyDescription":"No content to show"},"localOverride":false},"Conversation:conversation:275712":{"__typename":"Conversation","id":"conversation:275712","topic":{"__typename":"ForumTopicMessage","uid":275712},"lastPostingActivityTime":"2025-04-14T05:18:35.041-07:00","solved":false},"User:user:110014":{"__typename":"User","uid":110014,"login":"El-Jodi","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"id":"user:110014"},"ForumTopicMessage:message:275712":{"__typename":"ForumTopicMessage","subject":"AbstractTestRunner error","conversation":{"__ref":"Conversation:conversation:275712"},"id":"message:275712","revisionNum":1,"uid":275712,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__ref":"User:user:110014"},"metrics":{"__typename":"MessageMetrics","views":5},"postTime":"2025-04-14T05:18:35.041-07:00","lastPublishTime":"2025-04-14T05:18:35.041-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})":" Hi folks, since version 3.59.0 we are experiencing the following error message running our test via gilab within the rapi docker image: ERROR [AbstractTestRunner] Exception during Test Execution\no...","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"readOnly":false,"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":3,"images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Conversation:conversation:275660":{"__typename":"Conversation","id":"conversation:275660","topic":{"__typename":"ForumTopicMessage","uid":275660},"lastPostingActivityTime":"2025-04-10T14:05:05.580-07:00","solved":false},"User:user:126607":{"__typename":"User","uid":126607,"login":"sdeevers_starz","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"id":"user:126607"},"ForumTopicMessage:message:275660":{"__typename":"ForumTopicMessage","subject":"Smart Assertion default of \"Received Data\"","conversation":{"__ref":"Conversation:conversation:275660"},"id":"message:275660","revisionNum":1,"uid":275660,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__ref":"User:user:126607"},"metrics":{"__typename":"MessageMetrics","views":8},"postTime":"2025-04-10T14:05:05.580-07:00","lastPublishTime":"2025-04-10T14:05:05.580-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})":" Hi, We've been using the \"Smart Assertion\" for quite some time and I am finally getting around to asking this question. By default, when you \"add\" a Smart Assertion, you get the \"Received Data\" inf...","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"readOnly":false,"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Conversation:conversation:275575":{"__typename":"Conversation","id":"conversation:275575","topic":{"__typename":"ForumTopicMessage","uid":275575},"lastPostingActivityTime":"2025-04-10T07:39:22.772-07:00","solved":false},"User:user:129778":{"__typename":"User","uid":129778,"login":"rik123","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"id":"user:129778"},"ForumTopicMessage:message:275575":{"__typename":"ForumTopicMessage","subject":"Vulnerable jetty files","conversation":{"__ref":"Conversation:conversation:275575"},"id":"message:275575","revisionNum":1,"uid":275575,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__ref":"User:user:129778"},"metrics":{"__typename":"MessageMetrics","views":30},"postTime":"2025-04-07T04:32:48.671-07:00","lastPublishTime":"2025-04-07T04:32:48.671-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})":" The latest versions of ReadyAPI contain vulnerable \"jetty...jar\" files, in the lib folder. When will all these jetty files be updated? ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"136","kudosSumWeight":1,"repliesCount":1,"readOnly":false,"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":21,"name":"New Contributor","color":"00537C","icon":null,"rankStyle":"OUTLINE"},"User:user:108503":{"__typename":"User","id":"user:108503","uid":108503,"login":"Abeyhurtis","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2022-05-29T09:55:26.152-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-1.svg?time=0"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":4,"kudosGivenCount":1,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:108503"},"ForumTopicMessage:message:234449":{"__typename":"ForumTopicMessage","uid":234449,"subject":"Getting HTTP/1.1 404 error on ReadyAPI REST virtual service on specific resource paths","id":"message:234449","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:108503"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:234449"},"moderationData":{"__ref":"ModerationData:moderation_data:234449"},"postTime":"2022-05-29T10:00:26.117-07:00","lastPublishTime":"2022-05-29T10:00:26.117-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":3257},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:234449"},"Conversation:conversation:234449":{"__typename":"Conversation","id":"conversation:234449","solved":true,"topic":{"__ref":"ForumTopicMessage:message:234449"},"lastPostingActivityTime":"2022-06-30T07:43:26.224-07:00","lastPostTime":"2022-06-30T07:43:26.224-07:00"},"ModerationData:moderation_data:234449":{"__typename":"ModerationData","id":"moderation_data:234449","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:234449":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:234449","relatedMessage":{"__ref":"ForumTopicMessage:message:234449"}},"User:user:97485":{"__typename":"User","id":"user:97485","uid":97485,"login":"mattb","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-04-15T06:11:59.787-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-1.svg?time=0"},"rank":{"__ref":"Rank:rank:3"},"messagesCount":248,"kudosGivenCount":30,"kudosReceivedCount":137,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":70,"entityType":"USER","eventPath":"community:nwkab66374/user:97485"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201","mimeType":"image/png"},"Tkb:board:readyapi-community-techarticles":{"__typename":"Tkb","id":"board:readyapi-community-techarticles","entityType":"TKB","displayId":"readyapi-community-techarticles","nodeType":"board","depth":2,"conversationStyle":"TKB","title":"ReadyAPI Technical Articles","shortTitle":"ReadyAPI Technical Articles","parent":{"__ref":"Category:category:ready_api_forums"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201\"}"},"description":"","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-community-techarticles/"},"TkbTopicMessage:message:246094":{"__typename":"TkbTopicMessage","uid":246094,"subject":"ReadyAPI and TestEngine with Zephyr Scale","id":"message:246094","revisionNum":3,"repliesCount":0,"author":{"__ref":"User:user:97485"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:readyapi-community-techarticles"},"conversation":{"__ref":"Conversation:conversation:246094"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false}},"moderationData":{"__ref":"ModerationData:moderation_data:246094"},"teaser@stripHtml({\"removeProcessingText\":false,\"truncateLength\":200})":"","postTime":"2023-02-27T13:30:53.717-08:00","lastPublishTime":"2023-02-27T13:42:33.841-08:00","readOnly":false,"introduction":"","metrics":{"__typename":"MessageMetrics","views":1858},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-community-techarticles/message:246094"},"Conversation:conversation:246094":{"__typename":"Conversation","id":"conversation:246094","solved":false,"topic":{"__ref":"TkbTopicMessage:message:246094"},"lastPostingActivityTime":"2023-02-27T13:42:33.841-08:00","lastPostTime":"2023-02-27T13:30:53.717-08:00"},"ModerationData:moderation_data:246094":{"__typename":"ModerationData","id":"moderation_data:246094","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:246094":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:246094","relatedMessage":{"__ref":"TkbTopicMessage:message:246094"}},"Rank:rank:14":{"__typename":"Rank","id":"rank:14","position":20,"name":"Occasional Contributor","color":"00537C","icon":null,"rankStyle":"OUTLINE"},"User:user:121447":{"__typename":"User","id":"user:121447","uid":121447,"login":"tarttdh","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-10-10T13:12:34.046-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-6.svg?time=0"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":8,"kudosGivenCount":2,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:121447"},"Category:category:TestComplete_forum":{"__typename":"Category","id":"category:TestComplete_forum","entityType":"CATEGORY","displayId":"TestComplete_forum","nodeType":"category","depth":1,"title":"TestComplete","shortTitle":"TestComplete Community"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNDYtaWI3ekVt?image-coordinates=0%2C0%2C201%2C201\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNDYtaWI3ekVt?image-coordinates=0%2C0%2C201%2C201","mimeType":"image/png"},"Forum:board:testcomplete-questions":{"__typename":"Forum","id":"board:testcomplete-questions","entityType":"FORUM","displayId":"testcomplete-questions","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"TestComplete Questions","shortTitle":"TestComplete Questions","parent":{"__ref":"Category:category:TestComplete_forum"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNDYtaWI3ekVt?image-coordinates=0%2C0%2C201%2C201\"}"},"description":"","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/"},"ForumTopicMessage:message:259791":{"__typename":"ForumTopicMessage","uid":259791,"subject":"Virtual Machines","id":"message:259791","revisionNum":1,"repliesCount":5,"author":{"__ref":"User:user:121447"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:259791"},"moderationData":{"__ref":"ModerationData:moderation_data:259791"},"postTime":"2023-10-30T11:53:15.697-07:00","lastPublishTime":"2023-10-30T11:53:15.697-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":349},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:259791"},"Conversation:conversation:259791":{"__typename":"Conversation","id":"conversation:259791","solved":true,"topic":{"__ref":"ForumTopicMessage:message:259791"},"lastPostingActivityTime":"2023-10-31T07:41:58.326-07:00","lastPostTime":"2023-10-31T07:41:58.326-07:00"},"ModerationData:moderation_data:259791":{"__typename":"ModerationData","id":"moderation_data:259791","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:259791":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:259791","relatedMessage":{"__ref":"ForumTopicMessage:message:259791"}},"QueryVariables:TopicReplyList:message:261187:1":{"__typename":"QueryVariables","id":"TopicReplyList:message:261187:1","value":{"id":"message:261187","first":10,"sorts":{"postTime":{"direction":"DESC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"DESC"}},"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":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/nodes/NodeLink-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1741125846000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1741125846000","value":{"title":"Query Handler"},"localOverride":false},"ModerationData:moderation_data:261191":{"__typename":"ModerationData","id":"moderation_data:261191","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:261191":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:97303"},"id":"message:261191","revisionNum":2,"uid":261191,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:261187"},"conversation":{"__ref":"Conversation:conversation:261187"},"subject":"Re: Scripting in ReadyAPI Virtualization for Dynamic Mocks","moderationData":{"__ref":"ModerationData:moderation_data:261191"},"body":"
Here's an example on mapping values from a data source into a response message. This example reads in an Excel file, then uses a request parameter as a key value to find the values of a row of data in the Excel spreadsheet.
There's another example on the SoapUI documentation that discusses how to do this with a database connection. You can navigate here for that example.
This script is broken down into three sections. The first section reads in the request parameter that we'll use as our key. Request parameters can be accessed with the mockRequest.getRequest().getQueryString() methods. I take the output of this method and tie it to a string. You'll want to do some parsing on the string to isolate the exact value you want to use.
The second section then opens a workbook in Excel and looks for the row of data based on our key (the \"q\" property). The POI libraries make it fairly easy to work with Excel workbooks, and there's lots of resources online that can explain how to use the libraries better than I can. All we're doing here is opening the workbook and scanning each row to see if we find a row of data that matches our key.
The third section triggers if we find a row of data that matches our key. I use a switch statement here to map the values of the row to a property. The main thing to note is that we use the requestContext.valueformat to assign the values to a virtual service property.
Here's the script I use:
\n
\n
//Read in excel libraries\nimport org.apache.poi.ss.usermodel.*\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook\n\n//================================================================//\n//Part 1. Read in request parameters. \n//================================================================//\n\n// Get the query string of the request, isolate the \"q\" parameter\n// In this example, the request string looks like: \"q=CityName&apikey=abc1234\"\ndef inputString = mockRequest.getRequest().getQueryString()\ndef inputString2 = mockRequest.getRequest()\nlog.info inputString2\ndef q = null\n//split query string\ndef keyValuePairs = inputString.split(\"&\")\nkeyValuePairs.each { pair ->\n def key = pair.split(\"=\")[0]\n def value = pair.split(\"=\")[1]\n if (key == \"q\") {\n q = value\n }\n}\n\n//================================================================//\n//Part 2. Open Workbook. Scan for row of data \n//================================================================//\n\n// Specify the path to your Excel file\ndef filePath = \"<path to your file here>\"\n// Specify the value to search in the first column\ndef searchValue = q\n\n// Load the Excel file\ndef file = new File(filePath)\ndef workbook = new XSSFWorkbook(file)\n\n// Assuming the data is in the first sheet, you can change the sheet index if needed\ndef sheet = workbook.getSheetAt(0)\n\n// Find the row with the matching search value\ndef matchedRow = null\n\nfor (Row row : sheet) {\n def cellValue = row.getCell(0)?.toString()\n if (cellValue == searchValue) {\n matchedRow = row\n break\n }\n}\n\n//================================================================//\n//Part 3. Map cells of the row to response variables. Close workbook.\n//================================================================//\nif (matchedRow != null) {\n for (Cell cell : matchedRow) {\n int columnIndex = cell.getColumnIndex()\n switch (columnIndex) {\n case 0:\n requestContext.cityCell = cell.toString()\n break\n case 1:\n requestContext.countryCell = cell.toString()\n break\n case 2:\n requestContext.abbrCell = cell.toString()\n break\n default:\n break\n }\n}\n}else {\n //Do Something \n}\n\n// Close the workbook\nworkbook.close()
\n
\n
The response then looks like this:
\n
\n
{\n \"Response\": \"This is a dynamic response\",\n \"Location\":\"${cityCell}\",\n \"Country\" : \"${countryCell}\",\n \"Country Code\" : \"${abbrCell}\"\n}
\n
\n
My example uses a spreadsheet which provides responses for the 50 most populated cities. As long as we hit a city on this list we'll return a response such as this:
\n
\n
\n
The dataset that I'm using in this example looks like this:
Here's an example on mapping values from a data source into a response message. This example reads in an Excel file, then uses a request parameter as a key value to find the values of a row of data in the Excel spreadsheet.
There's another example on the SoapUI documentation that discusses how to do this with a database connection. You can navigate here for that example.
This script is broken down into three sections. The first section reads in the request parameter that we'll use as our key. Request parameters can be accessed with the mockRequest.getRequest().getQueryString() methods. I take the output of this method and tie it to a string. You'll want to do some parsing on the string to isolate the exact value you want to use.
The second section then opens a workbook in Excel and looks for the row of data based on our key (the \"q\" property). The POI libraries make it fairly easy to work with Excel workbooks, and there's lots of resources online that can explain how to use the libraries better than I can. All we're doing here is opening the workbook and scanning each row to see if we find a row of data that matches our key.
The third section triggers if we find a row of data that matches our key. I use a switch statement here to map the values of the row to a property. The main thing to note is that we use the requestContext.valueformat to assign the values to a virtual service property.
Here's the script I use:
\n
\n//Read in excel libraries\nimport org.apache.poi.ss.usermodel.*\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook\n\n//================================================================//\n//Part 1. Read in request parameters. \n//================================================================//\n\n// Get the query string of the request, isolate the \"q\" parameter\n// In this example, the request string looks like: \"q=CityName&apikey=abc1234\"\ndef inputString = mockRequest.getRequest().getQueryString()\ndef inputString2 = mockRequest.getRequest()\nlog.info inputString2\ndef q = null\n//split query string\ndef keyValuePairs = inputString.split(\"&\")\nkeyValuePairs.each { pair ->\n def key = pair.split(\"=\")[0]\n def value = pair.split(\"=\")[1]\n if (key == \"q\") {\n q = value\n }\n}\n\n//================================================================//\n//Part 2. Open Workbook. Scan for row of data \n//================================================================//\n\n// Specify the path to your Excel file\ndef filePath = \"<path to your file here>\"\n// Specify the value to search in the first column\ndef searchValue = q\n\n// Load the Excel file\ndef file = new File(filePath)\ndef workbook = new XSSFWorkbook(file)\n\n// Assuming the data is in the first sheet, you can change the sheet index if needed\ndef sheet = workbook.getSheetAt(0)\n\n// Find the row with the matching search value\ndef matchedRow = null\n\nfor (Row row : sheet) {\n def cellValue = row.getCell(0)?.toString()\n if (cellValue == searchValue) {\n matchedRow = row\n break\n }\n}\n\n//================================================================//\n//Part 3. Map cells of the row to response variables. Close workbook.\n//================================================================//\nif (matchedRow != null) {\n for (Cell cell : matchedRow) {\n int columnIndex = cell.getColumnIndex()\n switch (columnIndex) {\n case 0:\n requestContext.cityCell = cell.toString()\n break\n case 1:\n requestContext.countryCell = cell.toString()\n break\n case 2:\n requestContext.abbrCell = cell.toString()\n break\n default:\n break\n }\n}\n}else {\n //Do Something \n}\n\n// Close the workbook\nworkbook.close()\n
\n
The response then looks like this:
\n
\n{\n \"Response\": \"This is a dynamic response\",\n \"Location\":\"${cityCell}\",\n \"Country\" : \"${countryCell}\",\n \"Country Code\" : \"${abbrCell}\"\n}\n
\n
My example uses a spreadsheet which provides responses for the 50 most populated cities. As long as we hit a city on this list we'll return a response such as this:
\n
\n
\n
The dataset that I'm using in this example looks like this:
\n
\n
\n
","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjFpNTRDNzdFQTNCMzNENEVEQw?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjJpNjVENDlBMjU1NUQyMkIyQg?revision=2\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":3,"currentRevision":{"__ref":"Revision:revision:261191_2"},"latestVersion":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":[]}}}},"ModerationData:moderation_data:261189":{"__typename":"ModerationData","id":"moderation_data:261189","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:261189":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:97303"},"id":"message:261189","revisionNum":1,"uid":261189,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:261187"},"conversation":{"__ref":"Conversation:conversation:261187"},"subject":"Re: Scripting in ReadyAPI Virtualization for Dynamic Mocks","moderationData":{"__ref":"ModerationData:moderation_data:261189"},"body":"
Below is a scripted example on taking the content of a payload in a POST request and routing the JSON nodes into a virtual response message. To read in the values of the request body I use the mockRequest.getRequestContent() method. This will return a string value that may include some extra content along with the request payload. You'll likely want to trim the extra content out so that the payload is extracted from the original string. Once we have the payload isolated, we can create a JSON slurper to easily extract the content of the JSON nodes. The nodes are then tied to a property value that I reference in the response message using the requestContext.value format, where valueis the name of the property that we'll reference in the response.
\n
//Add slurper to isolate json. This makes it easier to parse the nodes in the response\nimport groovy.json.JsonSlurper\n\n//Save the response content to a string\n//This will result in some overhead\ndef logText = mockRequest.getRequestContent()\n\n\n// Find the index of the first '{' character\ndef startIndex = logText.indexOf('{')\n// Extract the substring starting from the '{' character\ndef result = startIndex != -1 ? logText.substring(startIndex) : logText\n\n//pipe the result into a json slurper for easy parsing\ndef jsonSlurper = new JsonSlurper()\ndef JsonBody = jsonSlurper.parseText(result)\n\n//We can map the individual nodes from the Json object that we created previously\n requestContext.id = JsonBody.id\n requestContext.categoryID = JsonBody.category.id\n requestContext.categoryName = JsonBody.category.name\n requestContext.name = JsonBody.name\n requestContext.status = JsonBody.status\n
Below is a scripted example on taking the content of a payload in a POST request and routing the JSON nodes into a virtual response message. To read in the values of the request body I use the mockRequest.getRequestContent() method. This will return a string value that may include some extra content along with the request payload. You'll likely want to trim the extra content out so that the payload is extracted from the original string. Once we have the payload isolated, we can create a JSON slurper to easily extract the content of the JSON nodes. The nodes are then tied to a property value that I reference in the response message using the requestContext.value format, where valueis the name of the property that we'll reference in the response.
\n//Add slurper to isolate json. This makes it easier to parse the nodes in the response\nimport groovy.json.JsonSlurper\n\n//Save the response content to a string\n//This will result in some overhead\ndef logText = mockRequest.getRequestContent()\n\n\n// Find the index of the first '{' character\ndef startIndex = logText.indexOf('{')\n// Extract the substring starting from the '{' character\ndef result = startIndex != -1 ? logText.substring(startIndex) : logText\n\n//pipe the result into a json slurper for easy parsing\ndef jsonSlurper = new JsonSlurper()\ndef JsonBody = jsonSlurper.parseText(result)\n\n//We can map the individual nodes from the Json object that we created previously\n requestContext.id = JsonBody.id\n requestContext.categoryID = JsonBody.category.id\n requestContext.categoryName = JsonBody.category.name\n requestContext.name = JsonBody.name\n requestContext.status = JsonBody.status\n\n
","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExODktMjAxMjBpNkNCMjFFNjQzNTc1ODg4NA?revision=1\"}"}}],"totalCount":1,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":2,"currentRevision":{"__ref":"Revision:revision:261189_1"},"latestVersion":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":[]}}}},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1741125846000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1741125846000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1741125846000","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/MessageSolvedBadge-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1741125846000","value":{"solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1741125846000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1741125846000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1741125846000","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","topicAlreadySolvedErrorTitle":"Solution Already Exists","topicAlreadySolvedErrorDesc":"Refresh the browser to view the existing solution"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1741125846000","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-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741125846000","value":{"loadMore":"Show More"},"localOverride":false},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExODktMjAxMjBpNkNCMjFFNjQzNTc1ODg4NA?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExODktMjAxMjBpNkNCMjFFNjQzNTc1ODg4NA?revision=1","title":"SarahS_0-1701962233828.png","associationType":"BODY","width":891,"height":607,"altText":null},"Revision:revision:261189_1":{"__typename":"Revision","id":"revision:261189_1","lastEditTime":"2023-12-07T07:17:39.072-08:00"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjFpNTRDNzdFQTNCMzNENEVEQw?revision=2\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjFpNTRDNzdFQTNCMzNENEVEQw?revision=2","title":"SarahS_1-1701963669037.png","associationType":"BODY","width":712,"height":578,"altText":null},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjJpNjVENDlBMjU1NUQyMkIyQg?revision=2\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bS0yNjExOTEtMjAxMjJpNjVENDlBMjU1NUQyMkIyQg?revision=2","title":"SarahS_2-1701963938890.png","associationType":"BODY","width":742,"height":581,"altText":null},"Revision:revision:261191_2":{"__typename":"Revision","id":"revision:261191_2","lastEditTime":"2023-12-07T07:45:51.753-08:00"},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1741125846000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1741125846000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"autoScroll":"true","topicRepliesSort":"postTimeDesc","boardId":"readyapi-questions","messageSubject":"scripting-in-readyapi-virtualization-for-dynamic-mocks","messageId":"261187"},"buildId":"q_bLpq2mflH0BeZigxpj6","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"25.2.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":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/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.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","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}