|
JMeter example source code file (BeanShellClient.java)
The JMeter BeanShellClient.java source code/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.jmeter.util; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; /** * Implements a client that can talk to the JMeter BeanShell server. */ public class BeanShellClient { private static final int MINARGS = 3; public static void main(String [] args) throws Exception{ if (args.length < MINARGS){ System.out.println("Please provide "+MINARGS+" or more arguments:"); System.out.println("serverhost serverport filename [arg1 arg2 ...]"); System.out.println("e.g. "); System.out.println("localhost 9000 extras/remote.bsh apple blake 7"); System.exit(1); } String host=args[0]; String portString = args[1]; String file=args[2]; int port=Integer.parseInt(portString)+1;// convert to telnet port System.out.println("Connecting to BSH server on "+host+":"+portString); Socket sock = new Socket(host,port); InputStream is = sock.getInputStream(); OutputStream os = sock.getOutputStream(); InputStreamReader fis = new FileReader(file); new SockRead(is).start(); sendLine("bsh.prompt=\"\";",os);// Prompt is unnecessary sendLine("String [] args={",os); for (int i=MINARGS; i<args.length;i++){ sendLine("\""+args[i]+"\",\n",os); } sendLine("};",os); int b; while ((b=fis.read()) != -1){ os.write(b); } sendLine("bsh.prompt=\"bsh % \";",os);// Reset for other users os.flush(); sock.shutdownOutput(); // Tell server that we are done } private static void sendLine( String line, OutputStream outPipe ) throws IOException { outPipe.write( line.getBytes() ); // TODO - charset? outPipe.flush(); } private static class SockRead extends Thread { private final InputStream is; public SockRead(InputStream _is) { this.is=_is; //this.setDaemon(true); } @Override public void run(){ System.out.println("Reading responses from server ..."); int x = 0; try { while ((x = is.read()) > -1) { char c = (char) x; System.out.print(c); } } catch (IOException e) { } finally { System.out.println("... disconnected from server."); try { is.close(); } catch (IOException e) { } } } } } Other JMeter examples (source code examples)Here is a short list of links related to this JMeter BeanShellClient.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.