Forum Discussion

ramaG's avatar
ramaG
Contributor
4 years ago

Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path

As part of our E2E testing we need to validate application logfiles on our application servers and also need to verify the same information retrieved from the browser based app/utility. Once ou...
  • TNeuschwanger's avatar
    4 years ago

    Hello ramaG,

     

    I don't have a WinSCP specific script, but I have used jsch library to access server and retrieve a log file (or execute a command on a server).  Below is sample code to be hacked up and use what you can (file transfer or execute remote command).

     

    I think it is hard to get over to a server and then start issuing commands unless you code a script on the remote server and execute it.  I found it easier just to download entire log file and process it locally than to robot through on the server where the logs reside.  Our log files are sometimes very large and are rolled over when they hit a certain size.  This technique has worked for me even though there were millions of records in the log file.  Depending on how large your log files are and how long you are willing to wait for a file transfer will determine if this technique works for you. 

     

    The jsch library will need to be obtained from "http://www.jcraft.com/jsch/" since it is not included with SoapUI (maybe these days it is but current free version does not include it).  I love this helper library and has saved me from a lot of trouble in the past. 

     

    Groovy Script Common Get File Transfer:

    import java.text.SimpleDateFormat;
    import com.jcraft.jsch.*;
    
    def readProperty(sName, pS) {
       def step = testRunner.testCase.getTestStepByName(sName);
       def propertyStr = step.getPropertyValue( pS );
       return propertyStr;
    };
    
    def writeProperty(sName, pS, pV) {
       def step = testRunner.testCase.getTestStepByName(sName);
       def propertyStr = step.setPropertyValue( pS, pV );
       return true;
    };
    
    def determinLocalOS() {   // Determine Operating System function.  Purpose is to define if this script is running locally on Windows or Linux
       def homeProp = System.getProperty("user.home");  //log.info "homeProp: " + homeProp;
       def localRtn = homeProp.contains("\\");   //log.info "localOS: " + localOS;
       return localRtn;  // boolean...  Windows = true, other = false
    };
    
    def fileTransfer(cmd, uId, svr, fileF, fileT) {   // File Transfer function.  Purpose is to execute a file transfer using the input parameters.
       def sout = new StringBuffer()
       def serr = new StringBuffer()
       log.info "CommandHarness: " + cmd;
       log.info "UserId: " + uId;
       log.info "Server: " + svr;
       log.info "FileFrom: " + fileF;
       log.info "FileTo: " + fileT;
       def cmdExecute = [cmd, uId, svr, fileF, fileT];  //
       log.info "cmdExecute: " + cmdExecute;   
       Process x = cmdExecute.execute();   // 
       x.consumeProcessOutput(sout, serr);    //  #### IMPORTANT #### This line must be here or the file transfer using PSFTP on Windows will not work for servers uslcappp03 and uslcappp04.
       x.waitFor();
       log.info "x=${x.text}";
       log.info 'sout: ' + sout;
       log.info 'serr: ' + serr;
       return "code: ${ x.exitValue()}";
    };
    
    def Session session;
    def Channel channel;
    def ChannelSftp channelSftp;
    def JSch jsch;
    
    //=========================================================================================================================================
    
    def connect(String hostName, String userName, String passCode) {
       try {
          jsch = new JSch();
          session = jsch.getSession( userName, hostName, 22 );
          session.setPassword(passCode);
          session.setTimeout(3000);
          java.util.Properties config = new java.util.Properties();
          config.put("StrictHostKeyChecking", "no");
          session.setConfig(config);
          session.connect();
          if (session.isConnected) {
             channel = session.openChannel("sftp");
             channel.connect();
             channelSftp = ( ChannelSftp ) channel;
             log.info 'Connected to: ' + hostName;
          }
       }
       catch (JSchException e) {
          log.error e.toString();
       };
    };
    
    def changeDirectory( String remotePath ) {
       try {
          log.info 'Path before ChangeDirectory is: ' + getPath();
          channelSftp.cd( remotePath );
          log.info 'Path after ChangeDirectory is: ' + getPath();
       }
       catch( Exception e ) {
          disconnect();
          log.error e.toString();
       };
    };
    
    def disconnect() {
       channelSftp.quit();
       channelSftp.disconnect();
       channel.disconnect();
       session.disconnect();
       log.info "Disconnected";
    };
    
    def boolean isConnected() {
       return session == null ? false : session.isConnected();
    };
    
    def String getPath() {
       return channelSftp.pwd()+"/";
    };
    
    def String getList(String remotePath) {
       osList = channelSftp.lstat(remotePath)+"/";
       return osList;
    };
    
    def getStat(String remotePath) {
       return channelSftp.lstat(remotePath);
    };
    
    def getFile(String rFQFN, String lFQFN) {
       log.info 'Fully qualified file name on remote server: ' + rFQFN;
       log.info 'Fully qualified file name on local computer: ' + lFQFN;
       channelSftp.get(rFQFN, lFQFN);
    };
    
    
    //=========================================================================================================================================
    
    log.info "";
    log.info 'Test Step "Groovy Script Common Get File Transfer" Begin';
    
    def remoteHost = readProperty("PropertiesRemote", "remoteLogHostPrefix") + readProperty("PropertiesRemote", "remoteLogHostIndex");  //
    def remoteUser = readProperty("PropertiesRemote", "remoteUser");
    def remotePassword = readProperty("PropertiesRemote", "remotePassword");
    def remotePath = readProperty("PropertiesRemote", "remotePath");
    def workFileName = readProperty("PropertiesRemote", "workFileName");
    def tmpDirStr = readProperty("PropertiesRemote", "tmpDirStr");
    
    def remotePathFileName = workFileName;  //
    log.info "remotePathFileName: " + remotePathFileName;
    
    def localPathFileName = tmpDirStr + workFileName;  //
    log.info "localPathFileName: " + localPathFileName;
    
    dateTimeFileStamp = new SimpleDateFormat ( "yyyy-MM-dd hh-mm-ss a" );
    dtStr = dateTimeFileStamp.format(new Date());
    
    if (determinLocalOS()) {    // boolean...  Windows = true, other = false
    //log.info "remoteHost: " + remoteHost;
    //log.info "remoteUser: " + remoteUser;
    //log.info "remotePassword: " + remotePassword;
       connect (remoteHost, remoteUser, remotePassword);
       if (isConnected()) {
          getFile(remotePathFileName, localPathFileName);
          getFile(remotePathFileName, localPathFileName + dtStr + '.txt');   // helpful for local debugging if ran multiple times.
          disconnect();
       }
       else {
          log.info 'Connection failed to: ' + remoteHost;
       };
    }
    else {
       log.info 'return code=' + fileTransfer('/usr/pservices/hudson_home/filecopy_remote2local.sh', 'webopt', remoteHost, remotePathFileName, localPathFileName);
    };
    
    log.info 'Test Step "Groovy Script Common Get File Transfer" End';
    log.info "";

     Groovy Script Common Command Execute:

    import com.jcraft.jsch.*;
    
    def readProperty(sName, pS) {
       def step = testRunner.testCase.getTestStepByName(sName);
       def propertyStr = step.getPropertyValue( pS );
       return propertyStr;
    };
    
    def writeProperty(sName, pS, pV) {
       def step = testRunner.testCase.getTestStepByName(sName);
       def propertyStr = step.setPropertyValue( pS, pV );
       return true;
    };
    
    def determinLocalOS() {   // Determine Operating System function.  Purpose is to define if this script is running locally on Windows or Linux
       def homeProp = System.getProperty("user.home");  //log.info "homeProp: " + homeProp;
       def localRtn = homeProp.contains("\\");   //log.info "localOS: " + localOS;
       return localRtn;  // boolean...  Windows = true, other = false
    };
    
    def fileExecute(cmd, uId, svr, exeCmd) {   // Command Execution function.  Purpose is to execute command on a remote server.
       def sout = new StringBuffer();
       def serr = new StringBuffer();
       log.info "CommandHarness: " + cmd;
       log.info "UserId: " + uId;
       log.info "Server: " + svr;
       log.info "Executable: " + exeCmd;
       def cmdExecute = [cmd, uId, svr, exeCmd];  //
       log.info "cmdExecute: " + cmdExecute;
       Process x = cmdExecute.execute();   //
       x.consumeProcessOutput(sout, serr);
       x.waitFor();
       log.info "x=${x.text}";
       log.info 'sout: ' + sout;
       log.info 'serr: ' + serr;
       return "code: ${ x.exitValue()}";
    };
    
    def WaitTimeSeconds(wT) {
       log.info 'wait time (seconds) = ' + wT;
       wT = wT * 1000;  // Convert seconds to milliseconds for use in commands
       done = false;
       new Thread({ sleep(wT) ; done = true }).start();
       for (count = 0; !done; ++count) {  //      log.info "Here! ${count}"
          sleep(1000);
       };  //log.info 'wT = ' + wT;
       return true;
    };
    
    def Session session;
    def Channel channel;
    def Integer executeCommand(String hostName, String userName, String passCode, String cmd) {
       log.info 'command to execute =>' + cmd + '<';
       def commandNotFinished = -1;   // -1 is returned by jsch while the command is running
       def rslt = commandNotFinished;
       try {
          def jsch = new JSch();
          session = jsch.getSession(userName, hostName, 22);
          session.setPassword(passCode);
          session.setTimeout(5000);
          java.util.Properties config = new java.util.Properties();
          config.put("StrictHostKeyChecking", "no");
          session.setConfig(config);
          session.connect();
          if (session.isConnected) {
             channel = session.openChannel("exec");
             ((ChannelExec) channel).setCommand(cmd);
             channel.connect();
             while (channel.getExitStatus() == commandNotFinished) {
                //log.info channel.getExitStatus();
                WaitTimeSeconds(2);
             };
             rslt = channel.getExitStatus().toInteger();    //log.info channel.getExitStatus();
             //log.info 'about to disconnect channel';
             channel.disconnect();
             //log.info 'about to disconnect session';
             session.disconnect();
          };
       }
       catch(Exception ex) {
          log.error "Command Execute Error: " + ex;
          if (ex.toString().contains('Auth fail')) {
             // skip the remaining test steps.  If we have a bad password, we don't want to lock out the account for some reason...
             writeProperty("PropertiesRemote", "remotePassword", '');         
             testRunner.gotoStepByName( "Groovy Script Clean Password");
          }
       };
       return rslt;
    };
    
    
    //=========================================================================================================================================
    
    log.info "";
    log.info 'Test Step "Groovy Script Common Command Execute" Begin';
    
    def remoteHost = readProperty("PropertiesRemote", "remoteLogHostPrefix") + readProperty("PropertiesRemote", "remoteLogHostIndex");  //
    log.info 'remoteHost = ' + remoteHost;
    def remoteUser = readProperty("PropertiesRemote", "remoteUser"); //log.info 'remoteUser = ' + remoteUser;
    def remotePassword = readProperty("PropertiesRemote", "remotePassword"); //log.info 'remotePassword = ' + remotePassword;
    def remoteCommand = readProperty("PropertiesRemote", "remoteCommand");
    
    if (determinLocalOS()) {    // boolean...  Windows = true, other = false
       returnCode = executeCommand(remoteHost, remoteUser, remotePassword, remoteCommand);
       log.info 'return code=' + returnCode;
       assert (returnCode == 0), "Return code from command should be zero";
    }
    else {
       log.info 'return code=' + fileExecute('/usr/pservices/hudson_home/file_execute_on_remote.sh', 'webopt', remoteHost, remoteCommand);
    };
    
    log.info 'Test Step "Groovy Script Common Command Execute" End';
    log.info "";

     

     

"}},"component({\"componentId\":\"custom.widget.Custom_Style_Helper\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:readyapi-questions\",\"message:214716\"],\"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:readyapi-questions\",\"message:214716\"],\"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:214716\"})":{"__ref":"ForumTopicMessage:message:214716"},"messages({\"constraints\":{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:214716\"}},\"first\":10,\"sorts\":{\"postTime\":{\"direction\":\"ASC\"}}})":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfGl8MTB8Mzk6MXxpbnQsMjE0NzE5LDIxNDcxOQ","node":{"__ref":"AcceptedSolutionMessage:message:214719"}}],"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"}],"cachedText({\"lastModified\":\"1720711077000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolvedBadge\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1720711077000"}],"message({\"id\":\"message:214834\"})":{"__ref":"ForumReplyMessage:message:214834"},"message({\"id\":\"message:214850\"})":{"__ref":"ForumReplyMessage:message:214850"},"message({\"id\":\"message:214982\"})":{"__ref":"ForumReplyMessage:message:214982"}},"CachedAsset:pages-1736411388011":{"__typename":"CachedAsset","id":"pages-1736411388011","value":[{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ChampionRules.Page","type":"COMMUNITY","urlPath":"/c/champion-rules/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1736411388011,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Anonymous","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"true","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MM-dd-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201","mimeType":"image/png"},"Category:category:ready_api_forums":{"__typename":"Category","id":"category:ready_api_forums","entityType":"CATEGORY","displayId":"ready_api_forums","nodeType":"category","depth":1,"title":"ReadyAPI","shortTitle":"ReadyAPI Community","parent":{"__ref":"Category:category:top"}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Forum:board:readyapi-questions":{"__typename":"Forum","id":"board:readyapi-questions","entityType":"FORUM","displayId":"readyapi-questions","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"ReadyAPI Questions","description":"","avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMjktRVFnVWRt?image-coordinates=0%2C0%2C201%2C201\"}"},"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:ready_api_forums"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:nwkab66374"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:ready_api_forums"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Questions","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"LIKES","repliesFormat":"threaded"},"eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"PRESET_ONLY","description@stripHtml":""},"Rank:rank:13":{"__typename":"Rank","id":"rank:13","position":19,"name":"Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:94741":{"__typename":"User","id":"user:94741","uid":94741,"login":"ramaG","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-11.svg"},"rank":{"__ref":"Rank:rank:13"},"email":"","messagesCount":50,"biography":null,"topicsCount":25,"kudosReceivedCount":4,"kudosGivenCount":7,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-02-04T08:04:03.310-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"followersCount":null,"solutionsCount":3,"ssoId":null,"entityType":"USER","eventPath":"community:nwkab66374/user:94741"},"ForumTopicMessage:message:214716":{"__typename":"ForumTopicMessage","uid":214716,"subject":"Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path","id":"message:214716","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:94741"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:214716"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:214716"},"body@stripHtml({\"truncateLength\":200})":" As part of our E2E testing we need to validate application logfiles on our application servers and also need to verify the same information retrieved from the browser based app/utility. Once ou...","body@stringLength":"636","rawBody":"","kudosSumWeight":0,"postTime":"2021-03-21T20:18:31.522-07:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:214716_1"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":1434},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"isEscalated":null,"placeholder":false,"originalMessageForPlaceholder":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"archivalData":null,"customFields":[],"body":""},"Conversation:conversation:214716":{"__typename":"Conversation","id":"conversation:214716","solved":true,"topic":{"__ref":"ForumTopicMessage:message:214716"},"lastPostingActivityTime":"2021-03-25T06:21:35.044-07:00","lastPostTime":"2021-03-25T06:21:35.044-07:00","unreadReplyCount":4,"isSubscribed":false},"ModerationData:moderation_data:214716":{"__typename":"ModerationData","id":"moderation_data:214716","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:214716_1":{"__typename":"Revision","id":"revision:214716_1","lastEditTime":"2021-03-21T20:18:31.522-07:00"},"AcceptedSolutionMessage:message:214719":{"__typename":"AcceptedSolutionMessage","id":"message:214719","conversation":{"__ref":"Conversation:conversation:214716"},"author":{"__ref":"User:user:2985"},"revisionNum":1,"uid":214719,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:214716"},"subject":"Re: Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path","moderationData":{"__ref":"ModerationData:moderation_data:214719"},"body":"

Hello ramaG,

 

I don't have a WinSCP specific script, but I have used jsch library to access server and retrieve a log file (or execute a command on a server).  Below is sample code to be hacked up and use what you can (file transfer or execute remote command).

 

I think it is hard to get over to a server and then start issuing commands unless you code a script on the remote server and execute it.  I found it easier just to download entire log file and process it locally than to robot through on the server where the logs reside.  Our log files are sometimes very large and are rolled over when they hit a certain size.  This technique has worked for me even though there were millions of records in the log file.  Depending on how large your log files are and how long you are willing to wait for a file transfer will determine if this technique works for you. 

 

The jsch library will need to be obtained from \"http://www.jcraft.com/jsch/\" since it is not included with SoapUI (maybe these days it is but current free version does not include it).  I love this helper library and has saved me from a lot of trouble in the past. 

 

Groovy Script Common Get File Transfer:

import java.text.SimpleDateFormat;\nimport com.jcraft.jsch.*;\n\ndef readProperty(sName, pS) {\n   def step = testRunner.testCase.getTestStepByName(sName);\n   def propertyStr = step.getPropertyValue( pS );\n   return propertyStr;\n};\n\ndef writeProperty(sName, pS, pV) {\n   def step = testRunner.testCase.getTestStepByName(sName);\n   def propertyStr = step.setPropertyValue( pS, pV );\n   return true;\n};\n\ndef determinLocalOS() {   // Determine Operating System function.  Purpose is to define if this script is running locally on Windows or Linux\n   def homeProp = System.getProperty(\"user.home\");  //log.info \"homeProp: \" + homeProp;\n   def localRtn = homeProp.contains(\"\\\\\");   //log.info \"localOS: \" + localOS;\n   return localRtn;  // boolean...  Windows = true, other = false\n};\n\ndef fileTransfer(cmd, uId, svr, fileF, fileT) {   // File Transfer function.  Purpose is to execute a file transfer using the input parameters.\n   def sout = new StringBuffer()\n   def serr = new StringBuffer()\n   log.info \"CommandHarness: \" + cmd;\n   log.info \"UserId: \" + uId;\n   log.info \"Server: \" + svr;\n   log.info \"FileFrom: \" + fileF;\n   log.info \"FileTo: \" + fileT;\n   def cmdExecute = [cmd, uId, svr, fileF, fileT];  //\n   log.info \"cmdExecute: \" + cmdExecute;   \n   Process x = cmdExecute.execute();   // \n   x.consumeProcessOutput(sout, serr);    //  #### IMPORTANT #### This line must be here or the file transfer using PSFTP on Windows will not work for servers uslcappp03 and uslcappp04.\n   x.waitFor();\n   log.info \"x=${x.text}\";\n   log.info 'sout: ' + sout;\n   log.info 'serr: ' + serr;\n   return \"code: ${ x.exitValue()}\";\n};\n\ndef Session session;\ndef Channel channel;\ndef ChannelSftp channelSftp;\ndef JSch jsch;\n\n//=========================================================================================================================================\n\ndef connect(String hostName, String userName, String passCode) {\n   try {\n      jsch = new JSch();\n      session = jsch.getSession( userName, hostName, 22 );\n      session.setPassword(passCode);\n      session.setTimeout(3000);\n      java.util.Properties config = new java.util.Properties();\n      config.put(\"StrictHostKeyChecking\", \"no\");\n      session.setConfig(config);\n      session.connect();\n      if (session.isConnected) {\n         channel = session.openChannel(\"sftp\");\n         channel.connect();\n         channelSftp = ( ChannelSftp ) channel;\n         log.info 'Connected to: ' + hostName;\n      }\n   }\n   catch (JSchException e) {\n      log.error e.toString();\n   };\n};\n\ndef changeDirectory( String remotePath ) {\n   try {\n      log.info 'Path before ChangeDirectory is: ' + getPath();\n      channelSftp.cd( remotePath );\n      log.info 'Path after ChangeDirectory is: ' + getPath();\n   }\n   catch( Exception e ) {\n      disconnect();\n      log.error e.toString();\n   };\n};\n\ndef disconnect() {\n   channelSftp.quit();\n   channelSftp.disconnect();\n   channel.disconnect();\n   session.disconnect();\n   log.info \"Disconnected\";\n};\n\ndef boolean isConnected() {\n   return session == null ? false : session.isConnected();\n};\n\ndef String getPath() {\n   return channelSftp.pwd()+\"/\";\n};\n\ndef String getList(String remotePath) {\n   osList = channelSftp.lstat(remotePath)+\"/\";\n   return osList;\n};\n\ndef getStat(String remotePath) {\n   return channelSftp.lstat(remotePath);\n};\n\ndef getFile(String rFQFN, String lFQFN) {\n   log.info 'Fully qualified file name on remote server: ' + rFQFN;\n   log.info 'Fully qualified file name on local computer: ' + lFQFN;\n   channelSftp.get(rFQFN, lFQFN);\n};\n\n\n//=========================================================================================================================================\n\nlog.info \"\";\nlog.info 'Test Step \"Groovy Script Common Get File Transfer\" Begin';\n\ndef remoteHost = readProperty(\"PropertiesRemote\", \"remoteLogHostPrefix\") + readProperty(\"PropertiesRemote\", \"remoteLogHostIndex\");  //\ndef remoteUser = readProperty(\"PropertiesRemote\", \"remoteUser\");\ndef remotePassword = readProperty(\"PropertiesRemote\", \"remotePassword\");\ndef remotePath = readProperty(\"PropertiesRemote\", \"remotePath\");\ndef workFileName = readProperty(\"PropertiesRemote\", \"workFileName\");\ndef tmpDirStr = readProperty(\"PropertiesRemote\", \"tmpDirStr\");\n\ndef remotePathFileName = workFileName;  //\nlog.info \"remotePathFileName: \" + remotePathFileName;\n\ndef localPathFileName = tmpDirStr + workFileName;  //\nlog.info \"localPathFileName: \" + localPathFileName;\n\ndateTimeFileStamp = new SimpleDateFormat ( \"yyyy-MM-dd hh-mm-ss a\" );\ndtStr = dateTimeFileStamp.format(new Date());\n\nif (determinLocalOS()) {    // boolean...  Windows = true, other = false\n//log.info \"remoteHost: \" + remoteHost;\n//log.info \"remoteUser: \" + remoteUser;\n//log.info \"remotePassword: \" + remotePassword;\n   connect (remoteHost, remoteUser, remotePassword);\n   if (isConnected()) {\n      getFile(remotePathFileName, localPathFileName);\n      getFile(remotePathFileName, localPathFileName + dtStr + '.txt');   // helpful for local debugging if ran multiple times.\n      disconnect();\n   }\n   else {\n      log.info 'Connection failed to: ' + remoteHost;\n   };\n}\nelse {\n   log.info 'return code=' + fileTransfer('/usr/pservices/hudson_home/filecopy_remote2local.sh', 'webopt', remoteHost, remotePathFileName, localPathFileName);\n};\n\nlog.info 'Test Step \"Groovy Script Common Get File Transfer\" End';\nlog.info \"\";

 Groovy Script Common Command Execute:

import com.jcraft.jsch.*;\n\ndef readProperty(sName, pS) {\n   def step = testRunner.testCase.getTestStepByName(sName);\n   def propertyStr = step.getPropertyValue( pS );\n   return propertyStr;\n};\n\ndef writeProperty(sName, pS, pV) {\n   def step = testRunner.testCase.getTestStepByName(sName);\n   def propertyStr = step.setPropertyValue( pS, pV );\n   return true;\n};\n\ndef determinLocalOS() {   // Determine Operating System function.  Purpose is to define if this script is running locally on Windows or Linux\n   def homeProp = System.getProperty(\"user.home\");  //log.info \"homeProp: \" + homeProp;\n   def localRtn = homeProp.contains(\"\\\\\");   //log.info \"localOS: \" + localOS;\n   return localRtn;  // boolean...  Windows = true, other = false\n};\n\ndef fileExecute(cmd, uId, svr, exeCmd) {   // Command Execution function.  Purpose is to execute command on a remote server.\n   def sout = new StringBuffer();\n   def serr = new StringBuffer();\n   log.info \"CommandHarness: \" + cmd;\n   log.info \"UserId: \" + uId;\n   log.info \"Server: \" + svr;\n   log.info \"Executable: \" + exeCmd;\n   def cmdExecute = [cmd, uId, svr, exeCmd];  //\n   log.info \"cmdExecute: \" + cmdExecute;\n   Process x = cmdExecute.execute();   //\n   x.consumeProcessOutput(sout, serr);\n   x.waitFor();\n   log.info \"x=${x.text}\";\n   log.info 'sout: ' + sout;\n   log.info 'serr: ' + serr;\n   return \"code: ${ x.exitValue()}\";\n};\n\ndef WaitTimeSeconds(wT) {\n   log.info 'wait time (seconds) = ' + wT;\n   wT = wT * 1000;  // Convert seconds to milliseconds for use in commands\n   done = false;\n   new Thread({ sleep(wT) ; done = true }).start();\n   for (count = 0; !done; ++count) {  //      log.info \"Here! ${count}\"\n      sleep(1000);\n   };  //log.info 'wT = ' + wT;\n   return true;\n};\n\ndef Session session;\ndef Channel channel;\ndef Integer executeCommand(String hostName, String userName, String passCode, String cmd) {\n   log.info 'command to execute =>' + cmd + '<';\n   def commandNotFinished = -1;   // -1 is returned by jsch while the command is running\n   def rslt = commandNotFinished;\n   try {\n      def jsch = new JSch();\n      session = jsch.getSession(userName, hostName, 22);\n      session.setPassword(passCode);\n      session.setTimeout(5000);\n      java.util.Properties config = new java.util.Properties();\n      config.put(\"StrictHostKeyChecking\", \"no\");\n      session.setConfig(config);\n      session.connect();\n      if (session.isConnected) {\n         channel = session.openChannel(\"exec\");\n         ((ChannelExec) channel).setCommand(cmd);\n         channel.connect();\n         while (channel.getExitStatus() == commandNotFinished) {\n            //log.info channel.getExitStatus();\n            WaitTimeSeconds(2);\n         };\n         rslt = channel.getExitStatus().toInteger();    //log.info channel.getExitStatus();\n         //log.info 'about to disconnect channel';\n         channel.disconnect();\n         //log.info 'about to disconnect session';\n         session.disconnect();\n      };\n   }\n   catch(Exception ex) {\n      log.error \"Command Execute Error: \" + ex;\n      if (ex.toString().contains('Auth fail')) {\n         // skip the remaining test steps.  If we have a bad password, we don't want to lock out the account for some reason...\n         writeProperty(\"PropertiesRemote\", \"remotePassword\", '');         \n         testRunner.gotoStepByName( \"Groovy Script Clean Password\");\n      }\n   };\n   return rslt;\n};\n\n\n//=========================================================================================================================================\n\nlog.info \"\";\nlog.info 'Test Step \"Groovy Script Common Command Execute\" Begin';\n\ndef remoteHost = readProperty(\"PropertiesRemote\", \"remoteLogHostPrefix\") + readProperty(\"PropertiesRemote\", \"remoteLogHostIndex\");  //\nlog.info 'remoteHost = ' + remoteHost;\ndef remoteUser = readProperty(\"PropertiesRemote\", \"remoteUser\"); //log.info 'remoteUser = ' + remoteUser;\ndef remotePassword = readProperty(\"PropertiesRemote\", \"remotePassword\"); //log.info 'remotePassword = ' + remotePassword;\ndef remoteCommand = readProperty(\"PropertiesRemote\", \"remoteCommand\");\n\nif (determinLocalOS()) {    // boolean...  Windows = true, other = false\n   returnCode = executeCommand(remoteHost, remoteUser, remotePassword, remoteCommand);\n   log.info 'return code=' + returnCode;\n   assert (returnCode == 0), \"Return code from command should be zero\";\n}\nelse {\n   log.info 'return code=' + fileExecute('/usr/pservices/hudson_home/file_execute_on_remote.sh', 'webopt', remoteHost, remoteCommand);\n};\n\nlog.info 'Test Step \"Groovy Script Common Command Execute\" End';\nlog.info \"\";

 

 

","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"213","postTime":"2021-03-21T23:57:18.225-07:00","lastPublishTime":"2021-03-21T23:57:18.225-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":[]},"solution":true,"metrics":{"__typename":"MessageMetrics","views":1387},"placeholder":false,"originalMessageForPlaceholder":null,"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"isEscalated":null,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:214716/message:214719","readOnly":false,"editFrozen":false,"body@stringLength":"11558","rawBody":"

Hello ramaG,

 

I don't have a WinSCP specific script, but I have used jsch library to access server and retrieve a log file (or execute a command on a server).  Below is sample code to be hacked up and use what you can (file transfer or execute remote command).

 

I think it is hard to get over to a server and then start issuing commands unless you code a script on the remote server and execute it.  I found it easier just to download entire log file and process it locally than to robot through on the server where the logs reside.  Our log files are sometimes very large and are rolled over when they hit a certain size.  This technique has worked for me even though there were millions of records in the log file.  Depending on how large your log files are and how long you are willing to wait for a file transfer will determine if this technique works for you. 

 

The jsch library will need to be obtained from \"http://www.jcraft.com/jsch/\" since it is not included with SoapUI (maybe these days it is but current free version does not include it).  I love this helper library and has saved me from a lot of trouble in the past. 

 

Groovy Script Common Get File Transfer:

import java.text.SimpleDateFormat;\nimport com.jcraft.jsch.*;\n\ndef readProperty(sName, pS) {\n def step = testRunner.testCase.getTestStepByName(sName);\n def propertyStr = step.getPropertyValue( pS );\n return propertyStr;\n};\n\ndef writeProperty(sName, pS, pV) {\n def step = testRunner.testCase.getTestStepByName(sName);\n def propertyStr = step.setPropertyValue( pS, pV );\n return true;\n};\n\ndef determinLocalOS() { // Determine Operating System function. Purpose is to define if this script is running locally on Windows or Linux\n def homeProp = System.getProperty(\"user.home\"); //log.info \"homeProp: \" + homeProp;\n def localRtn = homeProp.contains(\"\\\\\"); //log.info \"localOS: \" + localOS;\n return localRtn; // boolean... Windows = true, other = false\n};\n\ndef fileTransfer(cmd, uId, svr, fileF, fileT) { // File Transfer function. Purpose is to execute a file transfer using the input parameters.\n def sout = new StringBuffer()\n def serr = new StringBuffer()\n log.info \"CommandHarness: \" + cmd;\n log.info \"UserId: \" + uId;\n log.info \"Server: \" + svr;\n log.info \"FileFrom: \" + fileF;\n log.info \"FileTo: \" + fileT;\n def cmdExecute = [cmd, uId, svr, fileF, fileT]; //\n log.info \"cmdExecute: \" + cmdExecute; \n Process x = cmdExecute.execute(); // \n x.consumeProcessOutput(sout, serr); // #### IMPORTANT #### This line must be here or the file transfer using PSFTP on Windows will not work for servers uslcappp03 and uslcappp04.\n x.waitFor();\n log.info \"x=${x.text}\";\n log.info 'sout: ' + sout;\n log.info 'serr: ' + serr;\n return \"code: ${ x.exitValue()}\";\n};\n\ndef Session session;\ndef Channel channel;\ndef ChannelSftp channelSftp;\ndef JSch jsch;\n\n//=========================================================================================================================================\n\ndef connect(String hostName, String userName, String passCode) {\n try {\n jsch = new JSch();\n session = jsch.getSession( userName, hostName, 22 );\n session.setPassword(passCode);\n session.setTimeout(3000);\n java.util.Properties config = new java.util.Properties();\n config.put(\"StrictHostKeyChecking\", \"no\");\n session.setConfig(config);\n session.connect();\n if (session.isConnected) {\n channel = session.openChannel(\"sftp\");\n channel.connect();\n channelSftp = ( ChannelSftp ) channel;\n log.info 'Connected to: ' + hostName;\n }\n }\n catch (JSchException e) {\n log.error e.toString();\n };\n};\n\ndef changeDirectory( String remotePath ) {\n try {\n log.info 'Path before ChangeDirectory is: ' + getPath();\n channelSftp.cd( remotePath );\n log.info 'Path after ChangeDirectory is: ' + getPath();\n }\n catch( Exception e ) {\n disconnect();\n log.error e.toString();\n };\n};\n\ndef disconnect() {\n channelSftp.quit();\n channelSftp.disconnect();\n channel.disconnect();\n session.disconnect();\n log.info \"Disconnected\";\n};\n\ndef boolean isConnected() {\n return session == null ? false : session.isConnected();\n};\n\ndef String getPath() {\n return channelSftp.pwd()+\"/\";\n};\n\ndef String getList(String remotePath) {\n osList = channelSftp.lstat(remotePath)+\"/\";\n return osList;\n};\n\ndef getStat(String remotePath) {\n return channelSftp.lstat(remotePath);\n};\n\ndef getFile(String rFQFN, String lFQFN) {\n log.info 'Fully qualified file name on remote server: ' + rFQFN;\n log.info 'Fully qualified file name on local computer: ' + lFQFN;\n channelSftp.get(rFQFN, lFQFN);\n};\n\n\n//=========================================================================================================================================\n\nlog.info \"\";\nlog.info 'Test Step \"Groovy Script Common Get File Transfer\" Begin';\n\ndef remoteHost = readProperty(\"PropertiesRemote\", \"remoteLogHostPrefix\") + readProperty(\"PropertiesRemote\", \"remoteLogHostIndex\"); //\ndef remoteUser = readProperty(\"PropertiesRemote\", \"remoteUser\");\ndef remotePassword = readProperty(\"PropertiesRemote\", \"remotePassword\");\ndef remotePath = readProperty(\"PropertiesRemote\", \"remotePath\");\ndef workFileName = readProperty(\"PropertiesRemote\", \"workFileName\");\ndef tmpDirStr = readProperty(\"PropertiesRemote\", \"tmpDirStr\");\n\ndef remotePathFileName = workFileName; //\nlog.info \"remotePathFileName: \" + remotePathFileName;\n\ndef localPathFileName = tmpDirStr + workFileName; //\nlog.info \"localPathFileName: \" + localPathFileName;\n\ndateTimeFileStamp = new SimpleDateFormat ( \"yyyy-MM-dd hh-mm-ss a\" );\ndtStr = dateTimeFileStamp.format(new Date());\n\nif (determinLocalOS()) { // boolean... Windows = true, other = false\n//log.info \"remoteHost: \" + remoteHost;\n//log.info \"remoteUser: \" + remoteUser;\n//log.info \"remotePassword: \" + remotePassword;\n connect (remoteHost, remoteUser, remotePassword);\n if (isConnected()) {\n getFile(remotePathFileName, localPathFileName);\n getFile(remotePathFileName, localPathFileName + dtStr + '.txt'); // helpful for local debugging if ran multiple times.\n disconnect();\n }\n else {\n log.info 'Connection failed to: ' + remoteHost;\n };\n}\nelse {\n log.info 'return code=' + fileTransfer('/usr/pservices/hudson_home/filecopy_remote2local.sh', 'webopt', remoteHost, remotePathFileName, localPathFileName);\n};\n\nlog.info 'Test Step \"Groovy Script Common Get File Transfer\" End';\nlog.info \"\";

 Groovy Script Common Command Execute:

import com.jcraft.jsch.*;\n\ndef readProperty(sName, pS) {\n def step = testRunner.testCase.getTestStepByName(sName);\n def propertyStr = step.getPropertyValue( pS );\n return propertyStr;\n};\n\ndef writeProperty(sName, pS, pV) {\n def step = testRunner.testCase.getTestStepByName(sName);\n def propertyStr = step.setPropertyValue( pS, pV );\n return true;\n};\n\ndef determinLocalOS() { // Determine Operating System function. Purpose is to define if this script is running locally on Windows or Linux\n def homeProp = System.getProperty(\"user.home\"); //log.info \"homeProp: \" + homeProp;\n def localRtn = homeProp.contains(\"\\\\\"); //log.info \"localOS: \" + localOS;\n return localRtn; // boolean... Windows = true, other = false\n};\n\ndef fileExecute(cmd, uId, svr, exeCmd) { // Command Execution function. Purpose is to execute command on a remote server.\n def sout = new StringBuffer();\n def serr = new StringBuffer();\n log.info \"CommandHarness: \" + cmd;\n log.info \"UserId: \" + uId;\n log.info \"Server: \" + svr;\n log.info \"Executable: \" + exeCmd;\n def cmdExecute = [cmd, uId, svr, exeCmd]; //\n log.info \"cmdExecute: \" + cmdExecute;\n Process x = cmdExecute.execute(); //\n x.consumeProcessOutput(sout, serr);\n x.waitFor();\n log.info \"x=${x.text}\";\n log.info 'sout: ' + sout;\n log.info 'serr: ' + serr;\n return \"code: ${ x.exitValue()}\";\n};\n\ndef WaitTimeSeconds(wT) {\n log.info 'wait time (seconds) = ' + wT;\n wT = wT * 1000; // Convert seconds to milliseconds for use in commands\n done = false;\n new Thread({ sleep(wT) ; done = true }).start();\n for (count = 0; !done; ++count) { // log.info \"Here! ${count}\"\n sleep(1000);\n }; //log.info 'wT = ' + wT;\n return true;\n};\n\ndef Session session;\ndef Channel channel;\ndef Integer executeCommand(String hostName, String userName, String passCode, String cmd) {\n log.info 'command to execute =>' + cmd + '<';\n def commandNotFinished = -1; // -1 is returned by jsch while the command is running\n def rslt = commandNotFinished;\n try {\n def jsch = new JSch();\n session = jsch.getSession(userName, hostName, 22);\n session.setPassword(passCode);\n session.setTimeout(5000);\n java.util.Properties config = new java.util.Properties();\n config.put(\"StrictHostKeyChecking\", \"no\");\n session.setConfig(config);\n session.connect();\n if (session.isConnected) {\n channel = session.openChannel(\"exec\");\n ((ChannelExec) channel).setCommand(cmd);\n channel.connect();\n while (channel.getExitStatus() == commandNotFinished) {\n //log.info channel.getExitStatus();\n WaitTimeSeconds(2);\n };\n rslt = channel.getExitStatus().toInteger(); //log.info channel.getExitStatus();\n //log.info 'about to disconnect channel';\n channel.disconnect();\n //log.info 'about to disconnect session';\n session.disconnect();\n };\n }\n catch(Exception ex) {\n log.error \"Command Execute Error: \" + ex;\n if (ex.toString().contains('Auth fail')) {\n // skip the remaining test steps. If we have a bad password, we don't want to lock out the account for some reason...\n writeProperty(\"PropertiesRemote\", \"remotePassword\", ''); \n testRunner.gotoStepByName( \"Groovy Script Clean Password\");\n }\n };\n return rslt;\n};\n\n\n//=========================================================================================================================================\n\nlog.info \"\";\nlog.info 'Test Step \"Groovy Script Common Command Execute\" Begin';\n\ndef remoteHost = readProperty(\"PropertiesRemote\", \"remoteLogHostPrefix\") + readProperty(\"PropertiesRemote\", \"remoteLogHostIndex\"); //\nlog.info 'remoteHost = ' + remoteHost;\ndef remoteUser = readProperty(\"PropertiesRemote\", \"remoteUser\"); //log.info 'remoteUser = ' + remoteUser;\ndef remotePassword = readProperty(\"PropertiesRemote\", \"remotePassword\"); //log.info 'remotePassword = ' + remotePassword;\ndef remoteCommand = readProperty(\"PropertiesRemote\", \"remoteCommand\");\n\nif (determinLocalOS()) { // boolean... Windows = true, other = false\n returnCode = executeCommand(remoteHost, remoteUser, remotePassword, remoteCommand);\n log.info 'return code=' + returnCode;\n assert (returnCode == 0), \"Return code from command should be zero\";\n}\nelse {\n log.info 'return code=' + fileExecute('/usr/pservices/hudson_home/file_execute_on_remote.sh', 'webopt', remoteHost, remoteCommand);\n};\n\nlog.info 'Test Step \"Groovy Script Common Command Execute\" End';\nlog.info \"\";

 

 

","kudosSumWeight":4,"repliesCount":3,"timeToRead":6,"currentRevision":{"__ref":"Revision:revision:214719_1"},"latestVersion":null,"visibilityScope":"PUBLIC","messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"customFields":[],"replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MTB8MTQ6MCwzOToxfDE","node":{"__ref":"ForumReplyMessage:message:214834"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:theme:customTheme1-1736411387603":{"__typename":"CachedAsset","id":"theme:customTheme1-1736411387603","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":"SB_Community-1702329960271.png","imageLastModified":"1702329962721","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1200px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"4px","borderRadius":"4px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-body-color)","secondaryTextHoverColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-primary)","tertiaryTextHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"NONE","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.06)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"600","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#28B1FD","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#08B130","blogColor":"#000000","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#00537C","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#173647","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#097EB2","secondary":"#333333","bodyText":"#212429","bodyBg":"#FFFFFF","info":"#097EB2","success":"#08B130","warning":"#FCC844","danger":"#D13A1F","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#F8FAFB","#F0F3F5","#E4EAF1","#D8DDE4","#28B1FD","#00537C","#173647","#FF730B"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Roboto","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"38px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":null,"h2FontWeight":null,"h3FontWeight":null,"h4FontWeight":null,"h5FontWeight":null,"h6FontWeight":null,"__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"30px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"30px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Open Sans","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1720711077000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1720711077000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1736411385808":{"__typename":"CachedAsset","id":"quilt:smartbear.prod:pages/forums/ForumMessagePage:board:readyapi-questions-1736411385808","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:1736411327171":{"__typename":"CachedAsset","id":"quiltWrapper:smartbear.prod:Common:1736411327171","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,"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":"30px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","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)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","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","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)"},"showSearchIcon":true},"__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-1736411414468":{"__typename":"CachedAsset","id":"component:custom.widget.Footer_Links-en-1736411414468","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-1736411414468":{"__typename":"CachedAsset","id":"component:custom.widget.Tag_Manager_Helper-en-1736411414468","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-1736411414468":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Style_Helper-en-1736411414468","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:273630":{"__typename":"Conversation","id":"conversation:273630","topic":{"__typename":"ForumTopicMessage","uid":273630},"lastPostingActivityTime":"2025-01-13T06:32:58.435-08:00","solved":false},"ForumTopicMessage:message:273630":{"__typename":"ForumTopicMessage","subject":"Differences with GIT check-ins for Windows and iOS ARM users","conversation":{"__ref":"Conversation:conversation:273630"},"id":"message:273630","revisionNum":1,"uid":273630,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":126607,"login":"sdeevers_starz","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-9.svg"}},"metrics":{"__typename":"MessageMetrics","views":28},"postTime":"2025-01-09T12:54:01.850-08:00","lastPublishTime":"2025-01-09T12:54:01.850-08:00","readOnly":false},"Conversation:conversation:273690":{"__typename":"Conversation","id":"conversation:273690","topic":{"__typename":"ForumTopicMessage","uid":273690},"lastPostingActivityTime":"2025-01-13T01:01:45.996-08:00","solved":false},"ForumTopicMessage:message:273690":{"__typename":"ForumTopicMessage","subject":"Cannot pass the test result to another script","conversation":{"__ref":"Conversation:conversation:273690"},"id":"message:273690","revisionNum":1,"uid":273690,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128116,"login":"chuckmolak","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"}},"metrics":{"__typename":"MessageMetrics","views":7},"postTime":"2025-01-13T00:21:36.750-08:00","lastPublishTime":"2025-01-13T00:21:36.750-08:00","readOnly":false},"Conversation:conversation:273622":{"__typename":"Conversation","id":"conversation:273622","topic":{"__typename":"ForumTopicMessage","uid":273622},"lastPostingActivityTime":"2025-01-10T04:20:47.221-08:00","solved":true},"ForumTopicMessage:message:273622":{"__typename":"ForumTopicMessage","subject":"How to set different Content-Types in multipart/form-data POST Request?","conversation":{"__ref":"Conversation:conversation:273622"},"id":"message:273622","revisionNum":1,"uid":273622,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128142,"login":"rasierapparat","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-8.svg"}},"metrics":{"__typename":"MessageMetrics","views":16},"postTime":"2025-01-09T05:13:30.763-08:00","lastPublishTime":"2025-01-09T05:13:30.763-08:00","readOnly":false},"Conversation:conversation:273626":{"__typename":"Conversation","id":"conversation:273626","topic":{"__typename":"ForumTopicMessage","uid":273626},"lastPostingActivityTime":"2025-01-09T08:40:21.698-08:00","solved":false},"ForumTopicMessage:message:273626":{"__typename":"ForumTopicMessage","subject":"Reporting on call-to-testcase","conversation":{"__ref":"Conversation:conversation:273626"},"id":"message:273626","revisionNum":1,"uid":273626,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":128152,"login":"joostdgfed","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"}},"metrics":{"__typename":"MessageMetrics","views":9},"postTime":"2025-01-09T08:40:21.698-08:00","lastPublishTime":"2025-01-09T08:40:21.698-08:00","readOnly":false},"Conversation:conversation:273609":{"__typename":"Conversation","id":"conversation:273609","topic":{"__typename":"ForumTopicMessage","uid":273609},"lastPostingActivityTime":"2025-01-09T01:35:08.184-08:00","solved":false},"ForumTopicMessage:message:273609":{"__typename":"ForumTopicMessage","subject":"How to extract data from a response to an excel file","conversation":{"__ref":"Conversation:conversation:273609"},"id":"message:273609","revisionNum":1,"uid":273609,"depth":0,"board":{"__ref":"Forum:board:readyapi-questions"},"author":{"__typename":"User","uid":86965,"login":"alfonsolftc","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-9.svg"}},"metrics":{"__typename":"MessageMetrics","views":9},"postTime":"2025-01-09T01:35:08.184-08:00","lastPublishTime":"2025-01-09T01:35:08.184-08:00","readOnly":false},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":21,"name":"New Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:98857":{"__typename":"User","id":"user:98857","uid":98857,"login":"tuchka6215","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-06-09T19:30:31.584-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:15"},"messagesCount":4,"kudosGivenCount":0,"kudosReceivedCount":1,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":1,"entityType":"USER","eventPath":"community:nwkab66374/user:98857"},"ForumTopicMessage:message:227944":{"__typename":"ForumTopicMessage","uid":227944,"subject":"ReadyAPI -> MySql fail: \"Communications link failure\", \"No appropriate protocol\" exceptions","id":"message:227944","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:98857"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:227944"},"moderationData":{"__ref":"ModerationData:moderation_data:227944"},"postTime":"2021-12-29T14:26:37.050-08:00","lastPublishTime":"2021-12-29T14:26:37.050-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":2731},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:227944"},"Conversation:conversation:227944":{"__typename":"Conversation","id":"conversation:227944","solved":true,"topic":{"__ref":"ForumTopicMessage:message:227944"},"lastPostingActivityTime":"2021-12-30T09:07:04.737-08:00","lastPostTime":"2021-12-30T09:07:04.737-08:00"},"ModerationData:moderation_data:227944":{"__typename":"ModerationData","id":"moderation_data:227944","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:227944":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:227944","relatedMessage":{"__ref":"ForumTopicMessage:message:227944"}},"Rank:rank:3":{"__typename":"Rank","id":"rank:3","position":3,"name":"Staff","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:97485":{"__typename":"User","id":"user:97485","uid":97485,"login":"mattb","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-04-15T06:11:59.787-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg"},"rank":{"__ref":"Rank:rank:3"},"messagesCount":248,"kudosGivenCount":30,"kudosReceivedCount":137,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":70,"entityType":"USER","eventPath":"community:nwkab66374/user:97485"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201","mimeType":"image/png"},"Tkb:board:readyapi-community-techarticles":{"__typename":"Tkb","id":"board:readyapi-community-techarticles","entityType":"TKB","displayId":"readyapi-community-techarticles","nodeType":"board","depth":2,"conversationStyle":"TKB","title":"ReadyAPI Technical Articles","shortTitle":"ReadyAPI Technical Articles","parent":{"__ref":"Category:category:ready_api_forums"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yMzgtekdnTzd2?image-coordinates=0%2C0%2C201%2C201\"}"},"description":"","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-community-techarticles/"},"TkbTopicMessage:message:246094":{"__typename":"TkbTopicMessage","uid":246094,"subject":"ReadyAPI and TestEngine with Zephyr Scale","id":"message:246094","revisionNum":3,"repliesCount":0,"author":{"__ref":"User:user:97485"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:readyapi-community-techarticles"},"conversation":{"__ref":"Conversation:conversation:246094"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":null}},"moderationData":{"__ref":"ModerationData:moderation_data:246094"},"teaser":"","postTime":"2023-02-27T13:30:53.717-08:00","lastPublishTime":"2023-02-27T13:42:33.841-08:00","readOnly":false,"introduction":"","metrics":{"__typename":"MessageMetrics","views":1771},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-community-techarticles/message:246094"},"Conversation:conversation:246094":{"__typename":"Conversation","id":"conversation:246094","solved":false,"topic":{"__ref":"TkbTopicMessage:message:246094"},"lastPostingActivityTime":"2023-02-27T13:42:33.841-08:00","lastPostTime":"2023-02-27T13:30:53.717-08:00"},"ModerationData:moderation_data:246094":{"__typename":"ModerationData","id":"moderation_data:246094","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:246094":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:246094","relatedMessage":{"__ref":"TkbTopicMessage:message:246094"}},"Category:category:zephyr-scale-community":{"__typename":"Category","id":"category:zephyr-scale-community","entityType":"CATEGORY","displayId":"zephyr-scale-community","nodeType":"category","depth":1,"title":"Zephyr Scale","shortTitle":"Zephyr Scale"},"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNzktTEtDOGMx?image-coordinates=0%2C0%2C401%2C401\"}":{"__typename":"AssociatedImage","url":"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNzktTEtDOGMx?image-coordinates=0%2C0%2C401%2C401","mimeType":"image/png"},"Tkb:board:ZephyrScaleTechnicalArticles":{"__typename":"Tkb","id":"board:ZephyrScaleTechnicalArticles","entityType":"TKB","displayId":"ZephyrScaleTechnicalArticles","nodeType":"board","depth":2,"conversationStyle":"TKB","title":"Zephyr Scale Technical Articles","shortTitle":"Zephyr Scale Technical Articles","parent":{"__ref":"Category:category:zephyr-scale-community"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.smartbear.com/t5/s/nwkab66374/images/bi0yNzktTEtDOGMx?image-coordinates=0%2C0%2C401%2C401\"}"},"description":"","eventPath":"category:zephyr-scale-community/community:nwkab66374board:ZephyrScaleTechnicalArticles/"},"TkbTopicMessage:message:246069":{"__typename":"TkbTopicMessage","uid":246069,"subject":"ReadyAPI and TestEngine with Zephyr Scale","id":"message:246069","revisionNum":4,"repliesCount":0,"author":{"__ref":"User:user:97485"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:ZephyrScaleTechnicalArticles"},"conversation":{"__ref":"Conversation:conversation:246069"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":null}},"moderationData":{"__ref":"ModerationData:moderation_data:246069"},"teaser":"","postTime":"2023-02-27T13:18:53.977-08:00","lastPublishTime":"2023-02-27T13:43:03.083-08:00","readOnly":false,"introduction":"","metrics":{"__typename":"MessageMetrics","views":1622},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:zephyr-scale-community/community:nwkab66374board:ZephyrScaleTechnicalArticles/message:246069"},"Conversation:conversation:246069":{"__typename":"Conversation","id":"conversation:246069","solved":false,"topic":{"__ref":"TkbTopicMessage:message:246069"},"lastPostingActivityTime":"2023-02-27T13:43:03.083-08:00","lastPostTime":"2023-02-27T13:18:53.977-08:00"},"ModerationData:moderation_data:246069":{"__typename":"ModerationData","id":"moderation_data:246069","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:246069":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:246069","relatedMessage":{"__ref":"TkbTopicMessage:message:246069"}},"User:user:80656":{"__typename":"User","id":"user:80656","uid":80656,"login":"coolshaily","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2018-08-21T23:10:34.047-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-9.svg"},"rank":{"__ref":"Rank:rank:15"},"messagesCount":4,"kudosGivenCount":3,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:80656"},"ForumTopicMessage:message:170077":{"__typename":"ForumTopicMessage","uid":170077,"subject":"How to disable Navigator Property mode in READYAPI (2.4.0)?","id":"message:170077","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:80656"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:170077"},"moderationData":{"__ref":"ModerationData:moderation_data:170077"},"postTime":"2018-08-21T23:22:45.247-07:00","lastPublishTime":"2018-08-21T23:22:45.247-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1990},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:170077"},"Conversation:conversation:170077":{"__typename":"Conversation","id":"conversation:170077","solved":true,"topic":{"__ref":"ForumTopicMessage:message:170077"},"lastPostingActivityTime":"2018-08-23T04:42:27.717-07:00","lastPostTime":"2018-08-23T04:42:27.717-07:00"},"ModerationData:moderation_data:170077":{"__typename":"ModerationData","id":"moderation_data:170077","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:170077":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:170077","relatedMessage":{"__ref":"ForumTopicMessage:message:170077"}},"Rank:rank:22":{"__typename":"Rank","id":"rank:22","position":28,"name":"Occasional Visitor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:113301":{"__typename":"User","id":"user:113301","uid":113301,"login":"Ed1","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2022-11-03T07:14:47.910-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:22"},"messagesCount":1,"kudosGivenCount":1,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:nwkab66374/user:113301"},"ForumTopicMessage:message:240370":{"__typename":"ForumTopicMessage","uid":240370,"subject":"Navigator (Projects navigation panel) not showing in ReadAPI 3.41.1","id":"message:240370","revisionNum":1,"repliesCount":1,"author":{"__ref":"User:user:113301"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:readyapi-questions"},"conversation":{"__ref":"Conversation:conversation:240370"},"moderationData":{"__ref":"ModerationData:moderation_data:240370"},"postTime":"2022-11-03T07:22:31.567-07:00","lastPublishTime":"2022-11-03T07:22:31.567-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":510},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:240370"},"Conversation:conversation:240370":{"__typename":"Conversation","id":"conversation:240370","solved":true,"topic":{"__ref":"ForumTopicMessage:message:240370"},"lastPostingActivityTime":"2022-11-03T09:19:36.790-07:00","lastPostTime":"2022-11-03T09:19:36.790-07:00"},"ModerationData:moderation_data:240370":{"__typename":"ModerationData","id":"moderation_data:240370","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:240370":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:240370","relatedMessage":{"__ref":"ForumTopicMessage:message:240370"}},"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:214716"},"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:31":{"__typename":"Rank","id":"rank:31","position":6,"name":"Champion Level 1","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:2985":{"__typename":"User","id":"user:2985","uid":2985,"login":"TNeuschwanger","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2007-10-22T09:59:16.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-11.svg"},"rank":{"__ref":"Rank:rank:31"},"messagesCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:214716\"}}":171,"kudosGivenCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:214716\"}}":23,"kudosReceivedCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:214716\"}}":154,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount:{\"solution\":{\"eq\":true},\"topicId\":{\"eq\":\"message:214716\"}}":44,"entityType":"USER","eventPath":"community:nwkab66374/user:2985","messagesCount":171,"topicsCount":8,"kudosReceivedCount":154,"kudosGivenCount":23,"solutionsCount":44},"ModerationData:moderation_data:214719":{"__typename":"ModerationData","id":"moderation_data:214719","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:214719_1":{"__typename":"Revision","id":"revision:214719_1","lastEditTime":"2021-03-21T23:57:18.225-07:00"},"QueryVariables:ReplyList:message:214719:1":{"__typename":"QueryVariables","id":"ReplyList:message:214719:1","value":{"id":"message:214719","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/messages/MessageSolvedBadge-1720711077000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1720711077000","value":{"solved":"Solved"},"localOverride":false},"ModerationData:moderation_data:214834":{"__typename":"ModerationData","id":"moderation_data:214834","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:214834":{"__typename":"ForumReplyMessage","uid":214834,"id":"message:214834","revisionNum":1,"author":{"__ref":"User:user:94741"},"readOnly":false,"repliesCount":2,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"AcceptedSolutionMessage:message:214719"},"conversation":{"__ref":"Conversation:conversation:214716"},"subject":"Re: Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path","moderationData":{"__ref":"ModerationData:moderation_data:214834"},"body":"

Hi TNeuschwanger 

 

Thank you so much for the groovy script. I have few questions.

What is 

def readProperty(sName, pS) and 

sName and pS

wanted to know if these variables are ProjName or testcase name in a project.
 
Thanks again for your help!

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"223","kudosSumWeight":0,"postTime":"2021-03-23T08:02:10.159-07:00","lastPublishTime":"2021-03-23T08:02:10.159-07:00","metrics":{"__typename":"MessageMetrics","views":1369},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:214716/message:214834","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98M3wxNDowLDM5OjF8MQ","node":{"__ref":"ForumReplyMessage:message:214850"}}]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:214850":{"__typename":"ModerationData","id":"moderation_data:214850","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:214850":{"__typename":"ForumReplyMessage","uid":214850,"id":"message:214850","revisionNum":1,"author":{"__ref":"User:user:2985"},"readOnly":false,"repliesCount":1,"depth":3,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:214834"},"conversation":{"__ref":"Conversation:conversation:214716"},"subject":"Re: Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path","moderationData":{"__ref":"ModerationData:moderation_data:214850"},"body":"

Hello ramaG,

 

The \"readProperty\" and \"writeProperty\" are just helper functions to read or write from/to property name value pairs contained in a testcase \"Properties\" test step. There are many ways for reading and writing properties in all levels of a project.  This instance deals with the properties of a test step in a test case.

 

In this case, the \"sName\" is just the name of a \"Properties\" test step that is defined somewhere in the test case.  The code a few lines down in the script shows that the test step name in this instance is \"PropertiesRemote\".  It will end up being whatever test step name you are using to contain properties of your test case.  ReadyAPI defaults to \"Properties\" when adding a properties test step.  I chose to rename it \"PropertiesRemote\" to differentiate it from other property test steps that I might include in the test case.

 

\"pS\" is the name of the property to operate on within the property test step.  \"readProperty\" will use that variable name as the name of the property to get a value for in the \"PropertiesRemote\" test step.

 

You can use whatever mechanism you want to keep track of variables or skip the variables all together and hard code the values you use.  I like to have all of my variables defined in a properties test step that will be used throughout the testcase.

 

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":1,"postTime":"2021-03-23T11:52:01.927-07:00","lastPublishTime":"2021-03-23T11:52:01.927-07:00","metrics":{"__typename":"MessageMetrics","views":1359},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:214716/message:214850","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjQuMTF8Mi4xfG98MXwxNDowLDM5OjF8MQ","node":{"__ref":"ForumReplyMessage:message:214982"}}]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:214982":{"__typename":"ModerationData","id":"moderation_data:214982","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:214982":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:94741"},"id":"message:214982","revisionNum":1,"uid":214982,"depth":4,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:214850"},"conversation":{"__ref":"Conversation:conversation:214716"},"subject":"Re: Is there a script to launch WinSCP from ReadyAPI and navigate to the appropriate server logfile path","moderationData":{"__ref":"ModerationData:moderation_data:214982"},"body":"

TNeuschwanger - Thank you very much for your reply.   

 
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"79","kudosSumWeight":1,"repliesCount":0,"postTime":"2021-03-25T06:21:35.044-07:00","lastPublishTime":"2021-03-25T06:21:35.044-07:00","metrics":{"__typename":"MessageMetrics","views":1338},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:214716/message:214982","customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"readyapi-questions","messageSubject":"is-there-a-script-to-launch-winscp-from-readyapi-and-navigate-to-the-appropriate","messageId":"214716","replyId":"214719"},"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"],"appGip":true,"scriptLoader":[]}