簡體   English   中英

將linux命令的值存儲到groovy腳本(soapui)中的變量

[英]storing the value of linux command to a variable in groovy script (soapui)

我正在我的soapui斷言中執行以下groovy腳本,其中我試圖將linux命令的輸出值存儲到變量中,以便我將linux命令的輸出與期望值進行比較。我的groovy如下

import groovy.sql.Sql  
import java.sql.DriverManager  
import java.sql.Connection  
import javax.sql.DataSource  
import java.sql.Driver;  
import java.util.*;  
import java.text.*; 


// Executing Script to capture logs
log.info "Executing Script to capture logs"
import java.lang.Object
import com.jcraft.jsch.JSch
import com.jcraft.jsch.Session
import com.jcraft.jsch.UserInfo
import com.jcraft.jsch.Channel
import com.jcraft.jsch.ChannelExec
import java.util.Properties
def sshHost = context.expand('${#Project#Kcom}');
def sshUser = 'sshuser'
def sshPass = 'sshpass'
def sshPort = port value


/////////////////////////////
log.info "Opening connection to ${sshUser}@${sshHost}:${sshPort}"
Properties config = new Properties()

config.put("StrictHostKeyChecking", "no")

JSch jsch = new JSch()

///////////////////////////
Session s = jsch.getSession(sshUser, sshHost, sshPort)
s.setPassword(sshPass)
s.setConfig(config)
s.connect()
log.info "Connected"

Channel c = s.openChannel("exec");
    ChannelExec ce = (ChannelExec) c;

    def logerror = ce.setCommand("tail -50  <log file> | grep -i 'some string'");
    log.info logerror 
    ce.setErrStream(System.err);

    ce.connect();

    BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
      log.info(line);
    }

這里logerror總是返回null。 我怎樣才能做到這一點?

我不知道您的代碼出了什么問題,我只知道ant命令sshexec可以滿足您的需求。

因此,您可以查看如何按來源正確執行此操作

ps:我知道soapui包含有限的groovy-all.jar但是如果您能夠將完整的groovy庫列表添加到soapui類路徑中,則可以使用groovy.lang.AntBuilder()

def ant = new AntBuilder()
ant.sshexec( 
    host:"somehost", 
    username:"dude", 
    password:"yo",
    command:"tail -50  <log file> | grep -i 'some string'",
    output: "path/to/local/output/file" 
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM