zoukankan      html  css  js  c++  java
  • 接口自动化测试:Thrift框架RPC协议客户端开发


    import java.lang.Thread.State;
    import java.util.Iterator;
    import java.util.List;

    import org.apache.thrift.TException;
    import org.apache.thrift.protocol.TBinaryProtocol;
    import org.apache.thrift.protocol.TProtocol;
    import org.apache.thrift.transport.TFramedTransport;
    import org.apache.thrift.transport.TSocket;
    import org.apache.thrift.transport.TTransport;
    import org.apache.thrift.transport.TTransportException;

    import tdbservice.ErrorReturn;
    import tdbservice.TDB_ReqTLine;
    import tdbservice.TDB_TLine;
    import tdbservice.TdbService;

    public class Client {

        private  TTransport transport ;
        private  TdbService.Client client;
        private  String result = new String();
        private String url;
        private int port;

        public  Client(String url,int port) throws TTransportException{
            this.url = url;
            this.port = port;
    //        transport = new TSocket(url, port);
            transport = new TFramedTransport(new TSocket(this.url, this.port));
            //以上两行为两种不同transport,书写方法主要取决于服务端的书写格式
            if(!transport.isOpen()){
            TProtocol protocol = new TBinaryProtocol(transport);  
            client = new TdbService.Client(protocol);//此处的TdbService的调用由服务端来决定
            transport.open();  
            }
            
            State state = Thread.currentThread().getState();
            String threadName = Thread.currentThread().getName();
            System.out.println(threadName +"--------"+ state.toString());


        }
        
        public TTransport getTTransport(){
            return transport;
        }

        public String testGetAllStock(){
            
            
                try {  
                    result = client.get_allstock();

                } catch (TTransportException e) {  
                    e.printStackTrace();  
                } catch (TException e) {  
                    e.printStackTrace();  
                }  finally{
                    transport.close();
                }
                return result;
        }
        
        
        private List<TDB_TLine> TLineResult;
        private StringBuffer sbResult = new StringBuffer();
        
        public String testTLine(TDB_ReqTLine req){//TDB_ReqTLine对象由服务端决定,这里的就是我要测试的接口get_tline的一个参数
            try {
                TLineResult = client.get_tline(req);//此处执行测试接口的调用
                Iterator<TDB_TLine> it = TLineResult.iterator();
                while(it.hasNext()){
                    TDB_TLine t =  it.next();
                    sbResult.append(t.toString());
                }
            } catch (ErrorReturn e) {
                e.printStackTrace();
            } catch (TException e) {
                e.printStackTrace();
            }        
            return sbResult.toString();
        }
    }

  • 相关阅读:
    Linux中怎么通过PID号找到对应的进程名及所在目录
    MYSQL 1093 之You can't specify target table for update in FROM clause解决办法
    Spring注解@Resource和@Autowired区别对比
    Java数据类型和MySql数据类型对应一览
    java高分局之jstat命令使用(转)
    为python安装matplotlib模块
    Python中的文件IO操作(读写文件、追加文件)
    Python 3语法小记(九) 异常 Exception
    SpringBoot下的Job定时任务
    linux的top命令参数详解
  • 原文地址:https://www.cnblogs.com/lingfengblogs/p/4489785.html
Copyright © 2011-2022 走看看