Or perhaps I am missing something, but say you have TestSteps like:
\n\n
1. Goovy TestStep with
\ncontext[\"argument\"]=\"abcdef\" //set initial value of your parameter\n
2. REST Request TestStep
\n\n
In your Contains Assertion you can use ${=argument.toUpperCase()} to look for ABCDEF?
\n\n
Also in your Contains Assertion, its less exact, but you could even tick 'ignore case' e.g.
\n\n
\n
\n
Is this on the right track for what you want?
\n\n
Cheers,
\nRupert
\n","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"208","postTime":"2016-03-11T01:29:56.050-08:00","lastPublishTime":"2016-03-11T01:29:56.050-08:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bS0xMTU2MTktMTM2M2k0OTY1QUNCNkZBMzYzNEMx?revision=1\"}"}}],"totalCount":1,"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":[]},"solution":true,"metrics":{"__typename":"MessageMetrics","views":2299},"placeholder":false,"originalMessageForPlaceholder":null,"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"isEscalated":null,"entityType":"FORUM_REPLY","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/message:115175/message:115619","customFields":[],"readOnly":false,"editFrozen":false,"body@stringLength":"1362","rawBody":"
Hi,
\n\n
Thanks for the edit to your question, but I think my answer is still just as relavent? Alhough the first option I suggested is probably overkill, how about just doing a Script Assertion as per my second suggestion?
Or perhaps I am missing something, but say you have TestSteps like:
\n\n
1. Goovy TestStep with
\ncontext[\"argument\"]=\"abcdef\" //set initial value of your parameter\n
2. REST Request TestStep
\n\n
In your Contains Assertion you can use ${=argument.toUpperCase()} to look for ABCDEF?
\n\n
Also in your Contains Assertion, its less exact, but you could even tick 'ignore case' e.g.
\n\n
\n
Is this on the right track for what you want?
\n\n
Cheers,
\nRupert
\n","kudosSumWeight":1,"repliesCount":2,"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:115619_1"},"latestVersion":null,"visibilityScope":"PUBLIC","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":[]}}},"body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208"},"QueryVariables:ReplyList:message:115176:3":{"__typename":"QueryVariables","id":"ReplyList:message:115176:3","value":{"id":"message:115176","first":10,"sorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":false,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"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/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/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},"Rank:rank:9":{"__typename":"Rank","id":"rank:9","position":15,"name":"Valued Contributor","color":"00537C","icon":null,"rankStyle":"OUTLINE"},"Revision:revision:115619_1":{"__typename":"Revision","id":"revision:115619_1","lastEditTime":"2016-03-11T01:29:56.050-08:00"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzItVUFqY01K\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzItVUFqY01K","height":20,"width":20,"mimeType":"image/png"},"Rank:rank:32":{"__typename":"Rank","id":"rank:32","position":5,"name":"Champion Level 2","color":"28B1FD","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzItVUFqY01K\"}"},"rankStyle":"OUTLINE"},"User:user:21201":{"__typename":"User","id":"user:21201","uid":21201,"login":"nmrao","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2013-05-17T20:34:18.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-5.svg?time=0"},"rank":{"__ref":"Rank:rank:32"},"entityType":"USER","eventPath":"community:nwkab66374/user:21201"},"ModerationData:moderation_data:115182":{"__typename":"ModerationData","id":"moderation_data:115182","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:115182":{"__typename":"ForumReplyMessage","uid":115182,"id":"message:115182","revisionNum":1,"author":{"__ref":"User:user:21201"},"readOnly":false,"repliesCount":5,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:SoapUI_OS"},"parent":{"__ref":"ForumReplyMessage:message:115176"},"conversation":{"__ref":"Conversation:conversation:115175"},"subject":"Re: Operations on Custom properties before replacement","moderationData":{"__ref":"ModerationData:moderation_data:115182"},"body":"Please check if you can edit the questions above as those not clear.
Hi,
\n\n
If I'm understanding you right, you want to preprocess some properties extracted from the response before then applying standard Assertions to them?
\n\n
If so, one such approach would be to use a Response Filter to change the response values before applying the Assertions - see
\n\n
https://www.soapui.org/scripting---properties/custom-event-handlers.html (gives some background, but is really for the paid for version of SoapUI)
\n\n
See also point 6 of https://www.soapui.org/scripting-properties/tips-tricks.html
\n\n
It can also be done on the open source version, but requires coding effort, which may be more effort than its worth in this case.
\n\n
Instead, have you considered using a Script Assertion instead? That way you could just extract the values from the response e.g. something like
\n\n
def prop = context.expand( '${#Project#propertyA}' )\n\nassert prop.toUpperCase()==\".....\"\n\n\n
Is this the kind of thing you were meaning?
\n\n
Cheers,
\nRupert
\n\n
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"213","kudosSumWeight":0,"repliesCount":0,"postTime":"2016-03-07T05:38:51.371-08:00","lastPublishTime":"2016-03-07T05:38:51.371-08:00","metrics":{"__typename":"MessageMetrics","views":2334},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/message:115175/message:115228","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"readOnly":false,"editFrozen":false,"body@stringLength":"1426","rawBody":"
Hi,
\n\n
If I'm understanding you right, you want to preprocess some properties extracted from the response before then applying standard Assertions to them?
\n\n
If so, one such approach would be to use a Response Filter to change the response values before applying the Assertions - see
\n\n
https://www.soapui.org/scripting---properties/custom-event-handlers.html (gives some background, but is really for the paid for version of SoapUI)
\n\n
See also point 6 of https://www.soapui.org/scripting-properties/tips-tricks.html
\n\n
It can also be done on the open source version, but requires coding effort, which may be more effort than its worth in this case.
\n\n
Instead, have you considered using a Script Assertion instead? That way you could just extract the values from the response e.g. something like
\n\n
def prop = context.expand( '${#Project#propertyA}' )\n\nassert prop.toUpperCase()==\".....\"\n\n\n
Is this the kind of thing you were meaning?
\n\n
Cheers,
\nRupert
\n\n
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:115228_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":[]}}}},"ModerationData:moderation_data:115592":{"__typename":"ModerationData","id":"moderation_data:115592","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:115182_1":{"__typename":"Revision","id":"revision:115182_1","lastEditTime":"2016-03-06T08:18:23.233-08:00"},"Revision:revision:115592_1":{"__typename":"Revision","id":"revision:115592_1","lastEditTime":"2016-03-10T11:34:45.890-08:00"},"Revision:revision:115228_1":{"__typename":"Revision","id":"revision:115228_1","lastEditTime":"2016-03-07T05:38:51.371-08:00"}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"soapui_os","messageSubject":"operations-on-custom-properties-before-replacement","messageId":"115175","replyId":"115176"},"buildId":"G6LFdF6Y8sb5g8rZyM3sC","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","../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"],"appGip":true,"scriptLoader":[]}