• 自动化测试---接口测试


    package httpclient.httpclient;
     
    import java.io.IOException;
    import org.apache.http.Header;
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.apache.http.util.EntityUtils;
     
    public class HttpClientUtil {
        public void testPost() {
            //1.创建客户端访问服务器的httpclient对象
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
            //2.定义请求的url
            String url = "https://XXX.XXX.com/NC1000001";
            //3.以请求的连接地址创建get/post请求对象
            HttpPost post = new HttpPost(url);
            //如果有header请求,添加header请求
            post.addHeader("x-api-key", "XXX");
            post.addHeader("x-lang", "en-US");
            try {
                //4.向服务器发送请求,并获取返回数据
                CloseableHttpResponse response = httpClient.execute(post);
                //获取返回的所有headers
                Header[] headers = response.getAllHeaders();
                for (Header header : headers) {
                    System.out.println(header);
                }
                //获取返回的状态
                int status = response.getStatusLine().getStatusCode();
                System.out.println(status);
                //获取HttpEntity消息载体对象
                HttpEntity entity = response.getEntity();
                // EntityUtils中的toString()方法转换服务器的响应数据
                String str = EntityUtils.toString(entity, "utf-8");
                System.out.println("服务器的响应是:" + str);
                //5.关闭连接
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
        public static void main(String[] args) {
            HttpClientUtil util = new HttpClientUtil();
            util.testPost();
        }
    }

     httpClientRequest

    package modeHttp;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class HttpClientRequest
    {
        private String url;
            
        private Map<String,String>  headers = new HashMap<String,String>();
        
        private String body;
    
        public String getUrl()
        {
            return url;
        }
    
        public void setUrl(String url)
        {
            this.url = url;
        }
    
        public Map<String, String> getHeaders()
        {
            return headers;
        }
    
        public void setHeaders(Map<String, String> headers)
        {
            this.headers = headers;
        }
    
        public String getBody()
        {
            return body;
        }
    
        public void setBody(String body)
        {
            this.body = body;
        }
        
    }

    HttpClientRespon

    package modeHttp;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class HttpClientResponse
    {
        private String  statusCode;
        
        private Map<String,String> header = new HashMap<String,String>();
        
        private String body;
    
        public String getStatusCode()
        {
            return statusCode;
        }
    
        public void setStatusCode(String statusCode)
        {
            this.statusCode = statusCode;
        }
    
        public Map<String, String> getHeader()
        {
            return header;
        }
    
        public void setHeader(Map<String, String> header)
        {
            this.header = header;
        }
    
        public String getBody()
        {
            return body;
        }
    
        public void setBody(String body)
        {
            this.body = body;
        }
        
        
    }

    HttpHelper

    package Utils;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    import modeHttp.HttpClientResponse;
    
    import org.apache.http.Header;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpRequestBase;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.testng.log4testng.Logger;
    
    import Http.HttpClientRequest;
    
    public class HttpHelper
    {
        HttpClientRequest httpClientRequest;
        CloseableHttpClient httpClient ;
        
        public CloseableHttpClient getHttpClient()
        {
            return httpClient;
        }
        public void setHttpClient(CloseableHttpClient httpClient)
        {
            this.httpClient = httpClient;
        }
    
        private static Logger logger = Logger.getLogger(HttpHelper.class);
        
        /*
         * 获取链接
         */
        public void init()
        {
            httpClient = HttpClientBuilder.create().build();
        }
        /*
         * 关闭链接
         */
        public void close()
        {
            try
            {
                httpClient.close();
            } catch (IOException e)
            {
                logger.error("");
                logger.error(e.getMessage());
            }
        }
        
        /*
         * 调用接口
         */
        public HttpClientResponse sendrequest(HttpClientRequest httpClientRequest,HttpRequestBase httpRequestBase)
        {
            String url = httpClientRequest.getUrl();
            CloseableHttpResponse response = null;
            String  encodingofBody = "ISO-8859-1";
            HttpClientResponse httpClientResponse = null;
            
            Map<String,String> headers = httpClientRequest.getHeaders();
            //设置header,包含Conent-Type
            for(String header:headers.keySet())
            {
                httpRequestBase.setHeader(header, headers.get(header));
                //获取编码方式
                if(header.toLowerCase().equals("Conent-Type"))
                {
                    if(headers.get(header).split(";").length >= 2)
                    {
                        encodingofBody = headers.get(header).split(";")[1].split("=")[1];
                    }
                }
            }
            //判定是否有方法是否有body,再设置body
            if(httpRequestBase instanceof HttpEntityEnclosingRequestBase)
            {
                ((HttpEntityEnclosingRequestBase) httpRequestBase).setEntity(new StringEntity(httpClientRequest.getBody(),encodingofBody));
            }
            
            try
            {
                response = httpClient.execute(httpRequestBase);
                
            } catch (ClientProtocolException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            httpClientResponse.setBody(response.getEntity().toString());
            
            Header[] headerResponses =  response.getAllHeaders();
            Map<String,String> headerResponseMap = new HashMap<String,String>();
            for(Header headerResponse:headerResponses)
            {
                headerResponseMap.put(headerResponse.getName(),headerResponse.getValue());
            }
            
            httpClientResponse.setHeader(headerResponseMap);
            
            httpClientResponse.setStatusCode(String.valueOf(response.getStatusLine().getStatusCode()));
            
            return httpClientResponse;
        }
        
        public HttpClientResponse doGet(HttpClientRequest httpClientRequest)
        {
            HttpHelper helper = new HttpHelper();
            HttpClientResponse httpClientResponse;
            helper.init();
            String url = httpClientRequest.getUrl();
            HttpGet get = new HttpGet(url);
            httpClientResponse = helper.sendrequest(httpClientRequest, get);
            helper.close();
            return httpClientResponse;
        }
        
        public String fromeUrl(String url,Map<String,String> params)
        {
            String result;
            StringBuffer urlTest = new StringBuffer(url);
            
            urlTest.append("?");
            
            for(String param:params.keySet())
            {
                urlTest.append(param).append("=").append(params.get(param)).append("&");
            }
            
            return result = urlTest.toString().substring(0,urlTest.length()-1);
        }
    }
  • 相关阅读:
    python xml dom
    python ::-1
    SigmoidCrossEntropyLoss
    pyplot
    注意mysql connector的版本
    caffe学习资料
    mysql中添加中文存储和显示功能
    centos7.3 安装cuda8.0的 坑
    Tree Widget -- 基本方法
    QLabel的使用
  • 原文地址:https://www.cnblogs.com/liu-Gray/p/7862957.html
Copyright © 2020-2023  润新知