Hey,
We write a project for an application written in Delphi which is a monolith. The application has been developed for over 20 years and its size is huge.
In the project we are using NameMa...
Only script unit files can be merged with the reasonable risk level. Though even this is not recommended. All other project files must not be merged by any means. Thus one of the most important tasks for you will be to split test code between different script units and assign tasks to people in a way that minimizes concurrent changes. Merging is a price that is paid for distributed development and must be avoided as much as possible.
> Why use NameMapping?
Strictly speaking, you should use not NameMapping, but Aliases. NameMapping is just a translation table between the physical objects layout of your tested application and logical organization of same objects convenient for your test code.
> Example: > a) without NameMapping > var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("GroupBox").VCLObject("UsernameEdit"); > b) with NameMapping > var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit;
More correct example would be:
For version A of tested application:
a) without NameMapping var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("GroupBox").VCLObject("UsernameEdit"); b) Your test code with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // intermediate panel was excluded as it does not matter for test code
Now for version B of tested application:
a) without NameMapping var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("LoginUsingADGroupBox").VCLObject("GroupBox").VCLObject("LoginCredentials").DevExpressObject("UserLogin"); b) with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // <== Aliased name remained not changed because only NameMapping translation table had to be adjusted for the new objects structure.
From the above example it should be obvious that with Aliases (and proper configurations of NameMapping)test code can remain the same for different versions of tested application.
> If the NameMapping file grows to a large size, is it a performance problem?
Yes it is. Thus not everything must be mapped. Best practice is to create a 'sceleton' map of your tested application and use created mapped objects as anchors for dynamic objects search via .FindXXX() methods.
Only script unit files can be merged with the reasonable risk level. Though even this is not recommended. All other project files must not be merged by any means. Thus one of the most important tasks for you will be to split test code between different script units and assign tasks to people in a way that minimizes concurrent changes. Merging is a price that is paid for distributed development and must be avoided as much as possible.
> Why use NameMapping?
Strictly speaking, you should use not NameMapping, but Aliases. NameMapping is just a translation table between the physical objects layout of your tested application and logical organization of same objects convenient for your test code.
> Example: > a) without NameMapping > var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("GroupBox").VCLObject("UsernameEdit"); > b) with NameMapping > var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit;
More correct example would be:
For version A of tested application:
a) without NameMapping var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("GroupBox").VCLObject("UsernameEdit"); b) Your test code with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // intermediate panel was excluded as it does not matter for test code
Now for version B of tested application:
a) without NameMapping var Edit = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("LoginUsingADGroupBox").VCLObject("GroupBox").VCLObject("LoginCredentials").DevExpressObject("UserLogin"); b) with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // <== Aliased name remained not changed because only NameMapping translation table had to be adjusted for the new objects structure.
From the above example it should be obvious that with Aliases (and proper configurations of NameMapping)test code can remain the same for different versions of tested application.
> If the NameMapping file grows to a large size, is it a performance problem?
Yes it is. Thus not everything must be mapped. Best practice is to create a 'sceleton' map of your tested application and use created mapped objects as anchors for dynamic objects search via .FindXXX() methods.
If I have two files for e.g. login form or storage module:
1) one storing the mapped objects name: LogInFormAliases
and in it:
var userName = Sys.Process("pulse").VCLObject("LogOnForm").VCLObject("GroupBox").VCLObject("UsernameEdit");
2) the second one storing the action called on the form of e.g. logging name: LogInFormActions
File 2)
LogInFormActions has a reference "USEUNIT" to file 1)
the contents of file 2):
//USEUNIT LogInFormAliases
function logInUser(login) { LogInFormAliases.userName.Keys(login); }
This structure is valid for each module, e.g. for the warehouse or for other modules.
This way I will create small repositories with maped objects for each element and there will be no situation where one element I use 100 times and if my r&D team changes e.g. login field then I will make modifications only in the "LogInFormAliases" file.
Am I right in thinking that with such a project structure it should work properly (if of course I'm good at creating appropriate parts of the application)?
===== .Find() =====
What do you mean by creating a basic skeleton for an application?
The scenario:
I open the application -> log in -> click on the menu -> open the module -> and in it I search for an object by specific property using .find? and so on with subsequent application elements?
And only these elements I keep in NameMapping repository? Using as you suggested references to Aliases in the code?
that is:
after opening the module in the previous steps:
I am looking for .find(buttonAdd) -> the form of adding a new index to the magazine -> in this form I use again .find(Index name) -> in the field "Index name" I type the text -> and so on?
===== Repository =====
I use ImageRepository, Events and of course TestedApps in my project and I create test scenarios in Project Test Items.
How to share this elements without repository if it is not recommended?
"}},"component({\"componentId\":\"custom.widget.Custom_Style_Helper\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:testcomplete-questions\",\"message:187415\"],\"name\":\"ForumReplyPage\",\"props\":{},\"url\":\"https://community.smartbear.com\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"component({\"componentId\":\"custom.widget.Footer_Links\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:testcomplete-questions\",\"message:187415\"],\"name\":\"ForumReplyPage\",\"props\":{},\"url\":\"https://community.smartbear.com\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/EscalatedMessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolutionList\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolutionList-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000"}],"message({\"id\":\"message:187415\"})":{"__ref":"ForumTopicMessage:message:187415"},"messages({\"constraints\":{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:187415\"}},\"first\":10,\"sorts\":{\"postTime\":{\"direction\":\"ASC\"}}})":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfGl8MTB8Mzk6MXxpbnQsMTg3NDM1LDE4NzQzNQ","node":{"__ref":"AcceptedSolutionMessage:message:187435"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null},"totalCount":1},"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/AcceptedSolutionButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/ThreadedReplyList\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1720711077000"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1720711077000"}],"message({\"id\":\"message:187435\"})":{"__ref":"AcceptedSolutionMessage:message:187435"},"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1720711077000"}]},"CachedAsset:pages-1737143339441":{"__typename":"CachedAsset","id":"pages-1737143339441","value":[{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ChampionRules.Page","type":"COMMUNITY","urlPath":"/c/champion-rules/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1737143339441,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Anonymous","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"true","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MM-dd-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/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"},"Category:category:TestComplete_forum":{"__typename":"Category","id":"category:TestComplete_forum","entityType":"CATEGORY","displayId":"TestComplete_forum","nodeType":"category","depth":1,"title":"TestComplete","shortTitle":"TestComplete 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:testcomplete-questions":{"__typename":"Forum","id":"board:testcomplete-questions","entityType":"FORUM","displayId":"testcomplete-questions","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"TestComplete Questions","description":"","avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNDYtaWI3ekVt?image-coordinates=0%2C0%2C201%2C201\"}"},"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:TestComplete_forum"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:nwkab66374"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:TestComplete_forum"}}]},"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":"TestComplete Questions","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"LIKES","repliesFormat":"threaded"},"eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"PRESET_ONLY","description@stripHtml":""},"Rank:rank:26":{"__typename":"Rank","id":"rank:26","position":9,"name":"Community Hero","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:84372":{"__typename":"User","id":"user:84372","uid":84372,"login":"Wamboo","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/images/dS04NDM3Mi03NTY4aTY5OUI2NUMxQTMyNEJBNzA"},"rank":{"__ref":"Rank:rank:26"},"email":"","messagesCount":361,"biography":null,"topicsCount":10,"kudosReceivedCount":350,"kudosGivenCount":62,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-06-19T05:59:53.119-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":88},"ForumTopicMessage:message:187415":{"__typename":"ForumTopicMessage","uid":187415,"subject":"Project without NameMapping","id":"message:187415","revisionNum":1,"repliesCount":8,"author":{"__ref":"User:user:84372"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:187415"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:187415"},"body@stripHtml({\"truncateLength\":200})":" Hey, \n \n We write a project for an application written in Delphi which is a monolith. The application has been developed for over 20 years and its size is huge. \n In the project we are using NameMa...","body@stringLength":"2558","rawBody":"
Hey,
\n
\n
We write a project for an application written in Delphi which is a monolith. The application has been developed for over 20 years and its size is huge.
\n
In the project we are using NameMapping which already at the beginning of the work is causing me a lot of problems and I have concerns about the size of the NameMapping file in the future.
\n
\n
My questions: 1) If the NameMapping file grows to a large size, is it a performance problem? By \"large size\" I mean about 60% coverage of our application. We have over a thousand menu items available and if I map these formats to NameMapping then won't my project work very slowly?
\n
\n
2) Why use NameMapping? Example: a) without NameMapping functionUnit1() {\\pos(192,210)}functionUnit1() var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); Edit.Keys(\"YYYYYYYYY\"); } b) with NameMapping functionUnit1() {\\pos(192,210)}functionUnit1() var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit; Edit.Keys(\"YYYYYYYYY\"); }
\n
Does NameMapping have any greater use than just storing the names of mapped objects? Because without NameMapping you can easily create your own variables with objects and the code becomes very readable.
\n
\n
3) What do you think about writing a project for such a large application without NameMapping?
\n
\n
4) How do you store NameMapping in the repository? SVN, GIT working in a few people with such a dynamic file is not possible in my opinion.
\n
\n
5) Referring to point 4 I made an attempt to divide one Project into smaller ones. I cut the project for fear that when I create one big project with a huge NameMapping file, the performance of working with this file for TestComplete will be very poor.
\n
Example: 1) Project A -> NameMapping A 2) Project B -> NameMapping B
\n
I find that I cannot use NameMapping A in project B. You have to connect NameMapping files and this again leads to the problem of the big NameMapping file.
\n
Smaller projects must use elements from other projects because this is a test scenario requirement, for example: the production process module requires an index from the warehouse and the production is Project A and the warehouse is Project B.
\n
\n
I am currently planning to work with only one large project without NameMapping. What do you think?
We write a project for an application written in Delphi which is a monolith. The application has been developed for over 20 years and its size is huge.
\n
In the project we are using NameMapping which already at the beginning of the work is causing me a lot of problems and I have concerns about the size of the NameMapping file in the future.
\n
\n
My questions: 1) If the NameMapping file grows to a large size, is it a performance problem? By \"large size\" I mean about 60% coverage of our application. We have over a thousand menu items available and if I map these formats to NameMapping then won't my project work very slowly?
\n
\n
2) Why use NameMapping? Example: a) without NameMapping functionUnit1() {\\pos(192,210)}functionUnit1() var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); Edit.Keys(\"YYYYYYYYY\"); } b) with NameMapping functionUnit1() {\\pos(192,210)}functionUnit1() var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit; Edit.Keys(\"YYYYYYYYY\"); }
\n
Does NameMapping have any greater use than just storing the names of mapped objects? Because without NameMapping you can easily create your own variables with objects and the code becomes very readable.
\n
\n
3) What do you think about writing a project for such a large application without NameMapping?
\n
\n
4) How do you store NameMapping in the repository? SVN, GIT working in a few people with such a dynamic file is not possible in my opinion.
\n
\n
5) Referring to point 4 I made an attempt to divide one Project into smaller ones. I cut the project for fear that when I create one big project with a huge NameMapping file, the performance of working with this file for TestComplete will be very poor.
\n
Example: 1) Project A -> NameMapping A 2) Project B -> NameMapping B
\n
I find that I cannot use NameMapping A in project B. You have to connect NameMapping files and this again leads to the problem of the big NameMapping file.
\n
Smaller projects must use elements from other projects because this is a test scenario requirement, for example: the production process module requires an index from the warehouse and the production is Project A and the warehouse is Project B.
\n
\n
I am currently planning to work with only one large project without NameMapping. What do you think?
\n
\n
"},"Conversation:conversation:187415":{"__typename":"Conversation","id":"conversation:187415","solved":true,"topic":{"__ref":"ForumTopicMessage:message:187415"},"lastPostingActivityTime":"2019-07-17T14:53:23.476-07:00","lastPostTime":"2019-07-17T14:53:23.476-07:00","unreadReplyCount":8,"isSubscribed":false},"ModerationData:moderation_data:187415":{"__typename":"ModerationData","id":"moderation_data:187415","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:187415_1":{"__typename":"Revision","id":"revision:187415_1","lastEditTime":"2019-07-12T00:10:49.453-07:00"},"ForumReplyMessage:message:187441":{"__typename":"ForumReplyMessage","id":"message:187441","conversation":{"__ref":"Conversation:conversation:187415"},"author":{"__ref":"User:user:84372"},"revisionNum":2,"uid":187441,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"subject":"Re: Project without NameMapping","readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:187441"},"parent":{"__ref":"AcceptedSolutionMessage:message:187435"},"body":"
Thank you for your answers.
\n
\n
===== Project Structure =====
\n
If I have two files for e.g. login form or storage module:
\n
1) one storing the mapped objects name: LogInFormAliases
\n
and in it:
\n
\n
var userName = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\");
\n
\n
2) the second one storing the action called on the form of e.g. logging name: LogInFormActions
\n
File 2)
\n
LogInFormActions has a reference \"USEUNIT\" to file 1)
\n
the contents of file 2):
\n
\n
//USEUNIT LogInFormAliases
\n
function logInUser(login) { LogInFormAliases.userName.Keys(login); }
\n
\n
This structure is valid for each module, e.g. for the warehouse or for other modules.
\n
This way I will create small repositories with maped objects for each element and there will be no situation where one element I use 100 times and if my r&D team changes e.g. login field then I will make modifications only in the \"LogInFormAliases\" file.
\n
Am I right in thinking that with such a project structure it should work properly (if of course I'm good at creating appropriate parts of the application)?
\n
\n
===== .Find() =====
\n
What do you mean by creating a basic skeleton for an application?
\n
\n
The scenario:
\n
\n
I open the application -> log in -> click on the menu -> open the module -> and in it I search for an object by specific property using .find? and so on with subsequent application elements?
\n
\n
And only these elements I keep in NameMapping repository? Using as you suggested references to Aliases in the code?
\n
\n
that is:
\n
\n
after opening the module in the previous steps:
\n
\n
I am looking for .find(buttonAdd) -> the form of adding a new index to the magazine -> in this form I use again .find(Index name) -> in the field \"Index name\" I type the text -> and so on?
\n
\n
===== Repository =====
\n
\n
I use ImageRepository, Events and of course TestedApps in my project and I create test scenarios in Project Test Items.
\n
\n
How to share this elements without repository if it is not recommended?
","body@stringLength":"2377","rawBody":"
Thank you for your answers.
\n
\n
===== Project Structure =====
\n
If I have two files for e.g. login form or storage module:
\n
1) one storing the mapped objects name: LogInFormAliases
\n
and in it:
\n
\n
var userName = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\");
\n
\n
2) the second one storing the action called on the form of e.g. logging name: LogInFormActions
\n
File 2)
\n
LogInFormActions has a reference \"USEUNIT\" to file 1)
\n
the contents of file 2):
\n
\n
//USEUNIT LogInFormAliases
\n
function logInUser(login) { LogInFormAliases.userName.Keys(login); }
\n
\n
This structure is valid for each module, e.g. for the warehouse or for other modules.
\n
This way I will create small repositories with maped objects for each element and there will be no situation where one element I use 100 times and if my r&D team changes e.g. login field then I will make modifications only in the \"LogInFormAliases\" file.
\n
Am I right in thinking that with such a project structure it should work properly (if of course I'm good at creating appropriate parts of the application)?
\n
\n
===== .Find() =====
\n
What do you mean by creating a basic skeleton for an application?
\n
\n
The scenario:
\n
\n
I open the application -> log in -> click on the menu -> open the module -> and in it I search for an object by specific property using .find? and so on with subsequent application elements?
\n
\n
And only these elements I keep in NameMapping repository? Using as you suggested references to Aliases in the code?
\n
\n
that is:
\n
\n
after opening the module in the previous steps:
\n
\n
I am looking for .find(buttonAdd) -> the form of adding a new index to the magazine -> in this form I use again .find(Index name) -> in the field \"Index name\" I type the text -> and so on?
\n
\n
===== Repository =====
\n
\n
I use ImageRepository, Events and of course TestedApps in my project and I create test scenarios in Project Test Items.
\n
\n
How to share this elements without repository if it is not recommended?
","kudosSumWeight":0,"repliesCount":0,"postTime":"2019-07-12T06:10:47.364-07:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":2,"currentRevision":{"__ref":"Revision:revision:187441_2"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":2809},"visibilityScope":"PUBLIC","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":[]}}},"customFields":[],"replies":{"__typename":"MessageConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:theme:customTheme1-1737143339010":{"__typename":"CachedAsset","id":"theme:customTheme1-1737143339010","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"Favicon-1702330027750.png","imageLastModified":"1702330030805","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"SmartBear_Community-1737041278408.png","imageLastModified":"1737041280700","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1200px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"4px","borderRadius":"4px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-body-color)","secondaryTextHoverColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-primary)","tertiaryTextHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"NONE","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.06)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"600","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#28B1FD","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#08B130","blogColor":"#000000","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#00537C","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#173647","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#097EB2","secondary":"#333333","bodyText":"#212429","bodyBg":"#FFFFFF","info":"#097EB2","success":"#08B130","warning":"#FCC844","danger":"#D13A1F","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#F8FAFB","#F0F3F5","#E4EAF1","#D8DDE4","#28B1FD","#00537C","#173647","#FF730B"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Roboto","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"38px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":null,"h2FontWeight":null,"h3FontWeight":null,"h4FontWeight":null,"h5FontWeight":null,"h6FontWeight":null,"__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"30px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"30px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Open Sans","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1720711077000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:smartbear.prod:pages/forums/ForumMessagePage:board:testcomplete-questions-1737143337339":{"__typename":"CachedAsset","id":"quilt:smartbear.prod:pages/forums/ForumMessagePage:board:testcomplete-questions-1737143337339","value":{"id":"ForumMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"message-list","layout":"MAIN_SIDE","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[{"id":"messages.widget.topicWithThreadedReplyListWidget","className":"lia-topic-with-replies","props":{"editLevel":"CONFIGURE"},"__typename":"QuiltComponent"}],"side":[{"id":"messages.widget.relatedContentWidget","className":null,"props":null,"__typename":"QuiltComponent"},{"id":"messages.widget.messageListForNodeByRecentActivityWidget","className":null,"props":{"hideIfEmpty":true,"useTitle":true,"showTabs":false,"pageSize":5,"pagerVariant":{"type":"loadMore"},"style":"compact","viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","truncateBodyLength":-1,"useNodeLink":true,"usePreviewMedia":false,"timeStampType":"conversation.lastPostingActivityTime","avatarSize":"40","useTextBody":true,"useSolvedBadge":true,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":true,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":false,"clampBodyLines":3,"useAuthorLogin":true,"useUnreadCount":false,"useNodeHoverCard":true,"useSearchSnippet":false}},"panelType":"divider","sorts":{"conversationLastPostingActivityTime":{"direction":"DESC"}}},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-pages/forums/ForumMessagePage-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-pages/forums/ForumMessagePage-1720711077000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This message cannot be found","name":"Forum Message Page","section.message-list.title":"Forum Discussion","archivedMessageTitle":"This Content Has Been Archived"},"localOverride":false},"CachedAsset:quiltWrapper:smartbear.prod:Common:1737143274738":{"__typename":"CachedAsset","id":"quiltWrapper:smartbear.prod:Common:1737143274738","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","linkFontWeight":"400","controllerHighlightColor":"hsla(30, 100%, 50%)","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkFontSize":"14px","linkBoxShadowHover":"none","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","linkTextBorderBottom":"none","hamburgerColor":"var(--lia-nav-controller-icon-color)","brandLogoHeight":"48px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","collapseMenuDividerOpacity":0.16,"paddingBottom":"15px","dropdownPaddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","linkJustifyContent":"flex-start","linkColor":"var(--lia-bs-body-color)","collapseMenuDividerBg":"var(--lia-nav-link-color)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-primary)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"0","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","linkPaddingX":"10px","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","paddingTop":"15px","linkPaddingY":"5px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkBgColor":"transparent","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[]},"showSearchIcon":true,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":null,"__typename":"QuiltComponent"},{"id":"community.widget.bannerWidget","props":null,"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-gray-800)","items":[{"id":"custom.widget.Footer_Links","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Tag_Manager_Helper","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":false,"useBackground":false,"title":"Tag Manager","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Custom_Style_Helper","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1720711077000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.Footer_Links-en-1737143364345":{"__typename":"CachedAsset","id":"component:custom.widget.Footer_Links-en-1737143364345","value":{"component":{"id":"custom.widget.Footer_Links","template":{"id":"Footer_Links","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Footer Links","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Footer_Links","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Footer Links","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Tag_Manager_Helper-en-1737143364345":{"__typename":"CachedAsset","id":"component:custom.widget.Tag_Manager_Helper-en-1737143364345","value":{"component":{"id":"custom.widget.Tag_Manager_Helper","template":{"id":"Tag_Manager_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject Google Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Tag_Manager_Helper","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject Google Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Custom_Style_Helper-en-1737143364345":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Style_Helper-en-1737143364345","value":{"component":{"id":"custom.widget.Custom_Style_Helper","template":{"id":"Custom_Style_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject SmartBear Styles","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Custom_Style_Helper","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Helper widget to inject SmartBear Styles","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Navbar-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1720711077000","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1720711077000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1720711077000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1720711077000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/search/SpotlightSearchIcon-1720711077000","value":{"search":"Search"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1720711077000","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1720711077000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1720711077000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/RelatedContentWidget-1720711077000","value":{"title":"Related Content","emptyDescription":"No content to show"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1720711077000","value":{"title@userScope:other":"Recent Content","title@userScope:self":"Contributions","title@board:FORUM@userScope:other":"Recent Discussions","title@board:BLOG@userScope:other":"Recent Blogs","emptyDescription":"No content to show","MessageListForNodeByRecentActivityWidgetEditor.nodeScope.label":"Scope","title@instance:1703254420736":"Latest Posts","title@instance:1698433901422":"Latest Posts"},"localOverride":false},"Conversation:conversation:273790":{"__typename":"Conversation","id":"conversation:273790","topic":{"__typename":"ForumTopicMessage","uid":273790},"lastPostingActivityTime":"2025-01-21T02:26:24.471-08:00","solved":false},"ForumTopicMessage:message:273790":{"__typename":"ForumTopicMessage","subject":"Can someone direct me to a training video of setting up CI/CD pipeline using GitLab & Test complete.","conversation":{"__ref":"Conversation:conversation:273790"},"id":"message:273790","revisionNum":1,"uid":273790,"depth":0,"board":{"__ref":"Forum:board:testcomplete-questions"},"author":{"__typename":"User","uid":128250,"login":"FFCBUSER","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"}},"metrics":{"__typename":"MessageMetrics","views":14},"postTime":"2025-01-14T12:42:24.272-08:00","lastPublishTime":"2025-01-14T12:42:24.272-08:00","readOnly":false},"Conversation:conversation:273962":{"__typename":"Conversation","id":"conversation:273962","topic":{"__typename":"ForumTopicMessage","uid":273962},"lastPostingActivityTime":"2025-01-21T01:59:34.591-08:00","solved":false},"ForumTopicMessage:message:273962":{"__typename":"ForumTopicMessage","subject":"Does TestComplete supports Avalonia UI framework?","conversation":{"__ref":"Conversation:conversation:273962"},"id":"message:273962","revisionNum":2,"uid":273962,"depth":0,"board":{"__ref":"Forum:board:testcomplete-questions"},"author":{"__typename":"User","uid":126843,"login":"reenuroy","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-6.svg"}},"metrics":{"__typename":"MessageMetrics","views":33},"postTime":"2025-01-20T02:17:30.182-08:00","lastPublishTime":"2025-01-20T03:59:22.956-08:00","readOnly":false},"Conversation:conversation:273542":{"__typename":"Conversation","id":"conversation:273542","topic":{"__typename":"ForumTopicMessage","uid":273542},"lastPostingActivityTime":"2025-01-20T21:50:15.833-08:00","solved":false},"ForumTopicMessage:message:273542":{"__typename":"ForumTopicMessage","subject":"Is it possible to verify the dynamically changing checkpoint in Keyword test","conversation":{"__ref":"Conversation:conversation:273542"},"id":"message:273542","revisionNum":1,"uid":273542,"depth":0,"board":{"__ref":"Forum:board:testcomplete-questions"},"author":{"__typename":"User","uid":128075,"login":"Raghunandanits","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-2.svg"}},"metrics":{"__typename":"MessageMetrics","views":44},"postTime":"2025-01-08T02:00:20.705-08:00","lastPublishTime":"2025-01-08T02:00:20.705-08:00","readOnly":false},"Conversation:conversation:273963":{"__typename":"Conversation","id":"conversation:273963","topic":{"__typename":"ForumTopicMessage","uid":273963},"lastPostingActivityTime":"2025-01-20T09:44:07.024-08:00","solved":false},"ForumTopicMessage:message:273963":{"__typename":"ForumTopicMessage","subject":"Problem entering character *","conversation":{"__ref":"Conversation:conversation:273963"},"id":"message:273963","revisionNum":1,"uid":273963,"depth":0,"board":{"__ref":"Forum:board:testcomplete-questions"},"author":{"__typename":"User","uid":114257,"login":"AlexiSage","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-2.svg"}},"metrics":{"__typename":"MessageMetrics","views":15},"postTime":"2025-01-20T02:59:47.780-08:00","lastPublishTime":"2025-01-20T02:59:47.780-08:00","readOnly":false},"Conversation:conversation:274050":{"__typename":"Conversation","id":"conversation:274050","topic":{"__typename":"ForumTopicMessage","uid":274050},"lastPostingActivityTime":"2025-01-20T08:52:19.134-08:00","solved":false},"ForumTopicMessage:message:274050":{"__typename":"ForumTopicMessage","subject":"paramiko python module suddenly not recognised?","conversation":{"__ref":"Conversation:conversation:274050"},"id":"message:274050","revisionNum":1,"uid":274050,"depth":0,"board":{"__ref":"Forum:board:testcomplete-questions"},"author":{"__typename":"User","uid":126440,"login":"Guigz","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-6.svg"}},"metrics":{"__typename":"MessageMetrics","views":16},"postTime":"2025-01-20T08:52:19.134-08:00","lastPublishTime":"2025-01-20T08:52:19.134-08:00","readOnly":false},"Rank:rank:13":{"__typename":"Rank","id":"rank:13","position":19,"name":"Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:53374":{"__typename":"User","id":"user:53374","uid":53374,"login":"HD","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2014-02-20T09:59:52.000-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-12.svg"},"rank":{"__ref":"Rank:rank:13"},"messagesCount":38,"kudosGivenCount":3,"kudosReceivedCount":15,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":5,"entityType":"USER","eventPath":"community:nwkab66374/user:53374"},"ForumTopicMessage:message:83308":{"__typename":"ForumTopicMessage","uid":83308,"subject":"Namemapping nightmare","id":"message:83308","revisionNum":1,"repliesCount":21,"author":{"__ref":"User:user:53374"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:83308"},"moderationData":{"__ref":"ModerationData:moderation_data:83308"},"postTime":"2014-02-20T10:27:08.000-08:00","lastPublishTime":"2014-02-20T10:27:08.000-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":10621},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:83308"},"Conversation:conversation:83308":{"__typename":"Conversation","id":"conversation:83308","solved":true,"topic":{"__ref":"ForumTopicMessage:message:83308"},"lastPostingActivityTime":"2019-07-22T23:43:51.301-07:00","lastPostTime":"2019-07-22T23:43:51.301-07:00"},"ModerationData:moderation_data:83308":{"__typename":"ModerationData","id":"moderation_data:83308","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:83308":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:83308","relatedMessage":{"__ref":"ForumTopicMessage:message:83308"}},"Rank:rank:14":{"__typename":"Rank","id":"rank:14","position":20,"name":"Occasional Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:50452":{"__typename":"User","id":"user:50452","uid":50452,"login":"vincent_goude","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2013-10-18T02:20:06.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-10.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":11,"kudosGivenCount":1,"kudosReceivedCount":8,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":1,"entityType":"USER","eventPath":"community:nwkab66374/user:50452"},"ForumTopicMessage:message:85663":{"__typename":"ForumTopicMessage","uid":85663,"subject":"Oversized Namemapping","id":"message:85663","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:50452"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:85663"},"moderationData":{"__ref":"ModerationData:moderation_data:85663"},"postTime":"2013-10-18T02:56:38.000-07:00","lastPublishTime":"2013-10-18T02:56:38.000-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":4697},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:85663"},"Conversation:conversation:85663":{"__typename":"Conversation","id":"conversation:85663","solved":true,"topic":{"__ref":"ForumTopicMessage:message:85663"},"lastPostingActivityTime":"2013-10-21T22:28:41.000-07:00","lastPostTime":"2013-10-21T22:28:41.000-07:00"},"ModerationData:moderation_data:85663":{"__typename":"ModerationData","id":"moderation_data:85663","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:85663":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:85663","relatedMessage":{"__ref":"ForumTopicMessage:message:85663"}},"User:user:46531":{"__typename":"User","id":"user:46531","uid":46531,"login":"maxime_esprit","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2013-07-05T01:33:07.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-6.svg"},"rank":{"__ref":"Rank:rank:14"},"messagesCount":5,"kudosGivenCount":1,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:46531"},"ForumTopicMessage:message:80159":{"__typename":"ForumTopicMessage","uid":80159,"subject":"Object Checkpoint and Namemapping","id":"message:80159","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:46531"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:80159"},"moderationData":{"__ref":"ModerationData:moderation_data:80159"},"postTime":"2013-07-05T02:07:16.000-07:00","lastPublishTime":"2013-07-05T02:07:16.000-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":7472},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:80159"},"Conversation:conversation:80159":{"__typename":"Conversation","id":"conversation:80159","solved":true,"topic":{"__ref":"ForumTopicMessage:message:80159"},"lastPostingActivityTime":"2013-07-15T02:52:44.000-07:00","lastPostTime":"2013-07-15T02:52:44.000-07:00"},"ModerationData:moderation_data:80159":{"__typename":"ModerationData","id":"moderation_data:80159","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:80159":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:80159","relatedMessage":{"__ref":"ForumTopicMessage:message:80159"}},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":21,"name":"New Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:55799":{"__typename":"User","id":"user:55799","uid":55799,"login":"15828555437","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2014-05-14T15:16:53.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-12.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":4,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:55799"},"ForumTopicMessage:message:88670":{"__typename":"ForumTopicMessage","uid":88670,"subject":"NameMapping objects' attribute","id":"message:88670","revisionNum":1,"repliesCount":3,"author":{"__ref":"User:user:55799"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"conversation":{"__ref":"Conversation:conversation:88670"},"moderationData":{"__ref":"ModerationData:moderation_data:88670"},"postTime":"2014-05-14T15:27:17.000-07:00","lastPublishTime":"2014-05-14T15:27:17.000-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":2225},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:88670"},"Conversation:conversation:88670":{"__typename":"Conversation","id":"conversation:88670","solved":true,"topic":{"__ref":"ForumTopicMessage:message:88670"},"lastPostingActivityTime":"2014-05-28T22:53:01.000-07:00","lastPostTime":"2014-05-28T22:53:01.000-07:00"},"ModerationData:moderation_data:88670":{"__typename":"ModerationData","id":"moderation_data:88670","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:88670":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:88670","relatedMessage":{"__ref":"ForumTopicMessage:message:88670"}},"User:user:119876":{"__typename":"User","id":"user:119876","uid":119876,"login":"MSL","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-08-01T19:17:28.594-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-7.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":3,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:119876"},"Category:category:soapui-os-community":{"__typename":"Category","id":"category:soapui-os-community","entityType":"CATEGORY","displayId":"soapui-os-community","nodeType":"category","depth":1,"title":"SoapUI Open Source","shortTitle":"SoapUI Open Source"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209","mimeType":"image/png"},"Forum:board:SoapUI_OS":{"__typename":"Forum","id":"board:SoapUI_OS","entityType":"FORUM","displayId":"SoapUI_OS","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"SoapUI Open Source Questions","shortTitle":"SoapUI Open Source Questions","parent":{"__ref":"Category:category:soapui-os-community"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0xMC1tTXVXdng?image-coordinates=0%2C0%2C209%2C209\"}"},"description":"","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/"},"ForumTopicMessage:message:254862":{"__typename":"ForumTopicMessage","uid":254862,"subject":"Cannot import project","id":"message:254862","revisionNum":1,"repliesCount":2,"author":{"__ref":"User:user:119876"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:SoapUI_OS"},"conversation":{"__ref":"Conversation:conversation:254862"},"moderationData":{"__ref":"ModerationData:moderation_data:254862"},"postTime":"2023-08-03T23:29:11.743-07:00","lastPublishTime":"2023-08-03T23:29:11.743-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":785},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:soapui-os-community/community:nwkab66374board:SoapUI_OS/message:254862"},"Conversation:conversation:254862":{"__typename":"Conversation","id":"conversation:254862","solved":true,"topic":{"__ref":"ForumTopicMessage:message:254862"},"lastPostingActivityTime":"2023-09-27T11:45:38.550-07:00","lastPostTime":"2023-09-27T11:45:38.550-07:00"},"ModerationData:moderation_data:254862":{"__typename":"ModerationData","id":"moderation_data:254862","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:254862":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:254862","relatedMessage":{"__ref":"ForumTopicMessage:message:254862"}},"CachedAsset:text:en_US-components/nodes/NodeLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1720711077000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1720711077000","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageDeepLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageDeepLink-1720711077000","value":{"viewFullDiscussion@board:FORUM":"View Full Discussion ({repliesCount} Replies)","viewFullDiscussion@board:BLOG":"View Full Discussion ({repliesCount} Comments)","viewFullDiscussion@board:TKB":"View Full Discussion ({repliesCount} Comments)","viewFullDiscussion@board:IDEA":"View Full Discussion ({repliesCount} Comments)","viewFullDiscussion@board:OCCASION":"View Full Discussion ({repliesCount} Comments)","showParents@board:FORUM":"Show Parent Replies","showParents@board:BLOG":"Show Parent Comments","showParents@board:TKB":"Show Parent Comments","showParents@board:IDEA":"Show Parent Comments","showParents@board:OCCASION":"Show Parent Comments"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1720711077000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1720711077000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1720711077000","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"QueryVariables:MessageSolutions":{"__typename":"QueryVariables","id":"MessageSolutions","value":{"first":10,"constraints":{"topicId":{"eq":"message:187415"},"solution":{"eq":true}},"sorts":{"postTime":{"direction":"ASC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":false,"useBody":true,"useKudosCount":false,"useTimeToRead":false,"useMedia":true,"useRepliesCount":false,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":true,"useTags":false,"useUserHoverCard":true,"useNodeHoverCard":true,"usePreviewSubjectModal":false,"useMessageStatus":false}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1720711077000","value":{"escalationMessage":"Escalated to Salesforce by {username} on {date}","viewDetails":"View Details","modalTitle":"Case Details","escalatedBy":"Escalated by: ","escalatedOn":"Escalated on: ","caseNumber":"Case Number: ","status":"Status: ","lastUpdateDate":"Last Update: ","automaticEscalation":"automatic escalation","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1720711077000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1720711077000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1720711077000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1720711077000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1720711077000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1720711077000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1720711077000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolutionList-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolutionList-1720711077000","value":{"emptyDescription":"No has been message solutions yet"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1720711077000","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1720711077000","value":{"loadMore":"Show More"},"localOverride":false},"Rank:rank:33":{"__typename":"Rank","id":"rank:33","position":4,"name":"Champion Level 3","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:21756":{"__typename":"User","id":"user:21756","uid":21756,"login":"AlexKaras","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2013-07-19T01:15:21.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/images/dS0yMTc1Ni00aTg4NzJBNDUwNjM4MzlDQkE"},"rank":{"__ref":"Rank:rank:33"},"messagesCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:187415\"}}":6194,"kudosGivenCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:187415\"}}":5055,"kudosReceivedCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:187415\"}}":3472,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:187415\"}}":905,"entityType":"USER","eventPath":"community:nwkab66374/user:21756","messagesCount":6194,"topicsCount":56,"kudosReceivedCount":3472,"kudosGivenCount":5055,"solutionsCount":905},"ModerationData:moderation_data:187435":{"__typename":"ModerationData","id":"moderation_data:187435","status":"APPROVED","rejectReason":null},"AcceptedSolutionMessage:message:187435":{"__typename":"AcceptedSolutionMessage","author":{"__ref":"User:user:21756"},"id":"message:187435","revisionNum":1,"uid":187435,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"parent":{"__ref":"ForumTopicMessage:message:187415"},"conversation":{"__ref":"Conversation:conversation:187415"},"subject":"Re: Project without NameMapping","moderationData":{"__ref":"ModerationData:moderation_data:187435"},"body":"
Hi,
\n
\n
To add to what was said by Lino:
\n
\n
> SVN, GIT working in a few people
\n
Only script unit files can be merged with the reasonable risk level. Though even this is not recommended. All other project files must not be merged by any means. Thus one of the most important tasks for you will be to split test code between different script units and assign tasks to people in a way that minimizes concurrent changes. Merging is a price that is paid for distributed development and must be avoided as much as possible.
\n
\n
> Why use NameMapping?
\n
Strictly speaking, you should use not NameMapping, but Aliases. NameMapping is just a translation table between the physical objects layout of your tested application and logical organization of same objects convenient for your test code.
\n
\n
> Example: > a) without NameMapping > var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); > b) with NameMapping > var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit;
\n
\n
More correct example would be:
\n
For version A of tested application:
\n
a) without NameMapping var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); b) Your test code with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // intermediate panel was excluded as it does not matter for test code
\n
\n
Now for version B of tested application:
\n
a) without NameMapping var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"LoginUsingADGroupBox\").VCLObject(\"GroupBox\").VCLObject(\"LoginCredentials\").DevExpressObject(\"UserLogin\"); b) with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // <== Aliased name remained not changed because only NameMapping translation table had to be adjusted for the new objects structure.
\n
\n
From the above example it should be obvious that with Aliases (and proper configurations of NameMapping)test code can remain the same for different versions of tested application.
\n
\n
> If the NameMapping file grows to a large size, is it a performance problem?
\n
Yes it is. Thus not everything must be mapped. Best practice is to create a 'sceleton' map of your tested application and use created mapped objects as anchors for dynamic objects search via .FindXXX() methods.
Only script unit files can be merged with the reasonable risk level. Though even this is not recommended. All other project files must not be merged by any means. Thus one of the most important tasks for you will be to split test code between different script units and assign tasks to people in a way that minimizes concurrent changes. Merging is a price that is paid for distributed development and must be avoided as much as possible.
\n
\n
> Why use NameMapping?
\n
Strictly speaking, you should use not NameMapping, but Aliases. NameMapping is just a translation table between the physical objects layout of your tested application and logical organization of same objects convenient for your test code.
\n
\n
> Example: > a) without NameMapping > var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); > b) with NameMapping > var Edit = Aliases.impuls.wndLogOnForm.Panel.Edit;
\n
\n
More correct example would be:
\n
For version A of tested application:
\n
a) without NameMapping var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"GroupBox\").VCLObject(\"UsernameEdit\"); b) Your test code with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // intermediate panel was excluded as it does not matter for test code
\n
\n
Now for version B of tested application:
\n
a) without NameMapping var Edit = Sys.Process(\"pulse\").VCLObject(\"LogOnForm\").VCLObject(\"LoginUsingADGroupBox\").VCLObject(\"GroupBox\").VCLObject(\"LoginCredentials\").DevExpressObject(\"UserLogin\"); b) with Aliases: var Edit = Aliases.impuls.wndLogOnForm.UserName; // <== Aliased name remained not changed because only NameMapping translation table had to be adjusted for the new objects structure.
\n
\n
From the above example it should be obvious that with Aliases (and proper configurations of NameMapping)test code can remain the same for different versions of tested application.
\n
\n
> If the NameMapping file grows to a large size, is it a performance problem?
\n
Yes it is. Thus not everything must be mapped. Best practice is to create a 'sceleton' map of your tested application and use created mapped objects as anchors for dynamic objects search via .FindXXX() methods.
\n
","customFields":[],"repliesCount":5},"ModerationData:moderation_data:187441":{"__typename":"ModerationData","id":"moderation_data:187441","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":"member"},"Revision:revision:187441_2":{"__typename":"Revision","id":"revision:187441_2","lastEditTime":"2019-07-12T06:12:00.993-07:00"},"QueryVariables:ReplyList:message:187441:2":{"__typename":"QueryVariables","id":"ReplyList:message:187441:2","value":{"id":"message:187441","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":true,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1720711077000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1720711077000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1720711077000","value":{"accept":"Mark as Solution","accepted":"Marked as Solution","errorHeader":"Error!","errorAdd":"There was an error marking as solution.","errorRemove":"There was an error unmarking as solution.","solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1720711077000","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1720711077000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1720711077000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"testcomplete-questions","messageSubject":"project-without-namemapping","messageId":"187415","replyId":"187441"},"buildId":"OKtI0OLKuXmERTJKBVqYX","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"24.11.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","../shared/client/components/common/List/ListGroup/ListGroup.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}