The problem is SaveLogAs will save out the ENTIRE log each time. Some of my automation session logs take over 5 minutes to export after TE is done. Therefore towards the end of my test run each LogSaveAs will end up being minutes (if called by the timer).
Thanks, I will look at the test item option though I suspect, unless Smartbear adds it, I will have to come up with my own custom solution. Shouldn't be too hard. Will report it here when I'm done.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"postTime":"2016-11-28T16:16:49.319-08:00","lastPublishTime":"2016-11-28T16:16:49.319-08:00","metrics":{"__typename":"MessageMetrics","views":49761},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:131583/message:131702","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wxfDE0OjAsMzk6MXwx","node":{"__ref":"ForumReplyMessage:message:131747"}}]}},"ModerationData:moderation_data:131747":{"__typename":"ModerationData","id":"moderation_data:131747","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:131747":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:45447"},"id":"message:131747","revisionNum":1,"uid":131747,"depth":4,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:testcomplete-questions"},"parent":{"__ref":"ForumReplyMessage:message:131702"},"conversation":{"__ref":"Conversation:conversation:131583"},"subject":"Re: Method to incrementally save html log while test is running","moderationData":{"__ref":"ModerationData:moderation_data:131747"},"body":"\n
maximojo wrote:
\nThe problem is SaveLogAs will save out the ENTIRE log each time.
\n
There is an option under your project properties. If you go to Tools -> Current Project Properties -> Playback, at the bottom there is an option to \"Save log every ____ minutes\". Now, this doesn't do the export but does just a native save of the log file every few minutes. The idea is specifically for what you are looking for: if TestComplete crashes, the environment crashes, etc., you don't lose your log. It's not a delta export to a central location but it does create a log backup for you in the event of an unforeseen circumstance.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"214","kudosSumWeight":0,"repliesCount":9,"postTime":"2016-11-29T05:34:53.368-08:00","lastPublishTime":"2016-11-29T05:34:53.368-08:00","metrics":{"__typename":"MessageMetrics","views":49525},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:TestComplete_forum/community:nwkab66374board:testcomplete-questions/message:131583/message:131747"},"QueryVariables:ReplyList:message:96295:1":{"__typename":"QueryVariables","id":"ReplyList:message:96295:1","value":{"id":"message:96295","first":10,"sorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":false,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzEtZ3JyeWo3\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzEtZ3JyeWo3","height":20,"width":20,"mimeType":"image/png"},"Rank:rank:31":{"__typename":"Rank","id":"rank:31","position":6,"name":"Champion Level 1","color":"00537C","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/cmstMzEtZ3JyeWo3\"}"},"rankStyle":"OUTLINE"},"User:user:21201":{"__typename":"User","id":"user:21201","uid":21201,"login":"nmrao","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-5.svg?time=0"},"rank":{"__ref":"Rank:rank:31"}},"ForumTopicMessage:message:96211":{"__typename":"ForumTopicMessage","uid":96211,"subject":"Assert a JSON array response is not empty","id":"message:96211","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:56518"},"readOnly":false},"Conversation:conversation:96211":{"__typename":"Conversation","id":"conversation:96211","solved":false,"topic":{"__ref":"ForumTopicMessage:message:96211"},"lastPostingActivityTime":"2015-03-08T09:26:25.751-07:00","lastPostTime":"2015-03-08T09:26:25.751-07:00","unreadReplyCount":1,"isSubscribed":false},"ModerationData:moderation_data:96295":{"__typename":"ModerationData","id":"moderation_data:96295","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:96295_1":{"__typename":"Revision","id":"revision:96295_1","lastEditTime":"2015-03-08T09:26:25.751-07:00"},"ForumReplyMessage:message:96295":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:21201"},"id":"message:96295","revisionNum":1,"uid":96295,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:96211"},"subject":"Re: Assert a JSON array response is not empty","readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:96295"},"body":"Here is an example code
import net.sf.json.groovy.JsonSlurper\ndef jsonArray = '''{\n \"employees\":[\n\t\t{\"firstName\":\"John\", \"lastName\":\"Doe\"},\n\t\t{\"firstName\":\"Anna\", \"lastName\":\"Smith\"},\n\t\t{\"firstName\":\"Peter\",\"lastName\":\"Jones\"}\n\t]\n}'''\n\ndef jsonSlurper = new JsonSlurper()\ndef object = jsonSlurper.parseText(jsonArray)\ndef employees = object.employees\nlog.info employees instanceof List\nlog.info employees.size()\nif (employees){\n\tlog.info \"Employe array is not empty\"\n} else {\n\tlog.info \"Employee array is empty\"\n}
An example with empty array
import net.sf.json.groovy.JsonSlurper\ndef jsonArray = '''{\n \"employees\":[]\n}'''\ndef jsonSlurper = new JsonSlurper()\ndef object = jsonSlurper.parseText(jsonArray)\ndef employees = object.employees\nif (!employees) {\n\tlog.warn \"Array is empty\" \n}
Hope this helps
","body@stringLength":"870","rawBody":"Here is an example code
import net.sf.json.groovy.JsonSlurper\ndef jsonArray = '''{\n \"employees\":[\n\t\t{\"firstName\":\"John\", \"lastName\":\"Doe\"},\n\t\t{\"firstName\":\"Anna\", \"lastName\":\"Smith\"},\n\t\t{\"firstName\":\"Peter\",\"lastName\":\"Jones\"}\n\t]\n}'''\n\ndef jsonSlurper = new JsonSlurper()\ndef object = jsonSlurper.parseText(jsonArray)\ndef employees = object.employees\nlog.info employees instanceof List\nlog.info employees.size()\nif (employees){\n\tlog.info \"Employe array is not empty\"\n} else {\n\tlog.info \"Employee array is empty\"\n}
An example with empty array
import net.sf.json.groovy.JsonSlurper\ndef jsonArray = '''{\n \"employees\":[]\n}'''\ndef jsonSlurper = new JsonSlurper()\ndef object = jsonSlurper.parseText(jsonArray)\ndef employees = object.employees\nif (!employees) {\n\tlog.warn \"Array is empty\" \n}
Hope this helps
","kudosSumWeight":0,"repliesCount":0,"postTime":"2015-03-08T09:26:25.751-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":1,"currentRevision":{"__ref":"Revision:revision:96295_1"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":6196},"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":[]}}},"parent":{"__ref":"ForumTopicMessage:message:96211"},"replies":{"__typename":"MessageConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"User:user:56518":{"__typename":"User","id":"user:56518","deleted":false,"uid":56518,"login":"brsteele75","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2015-02-18T06:39:14.783-08:00"}}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"testcomplete-questions","messageSubject":"method-to-incrementally-save-html-log-while-test-is-running","messageId":"131583","replyId":"131689"},"buildId":"q_bLpq2mflH0BeZigxpj6","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"25.2.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx"],"appGip":true,"scriptLoader":[]}