接口测试-自动化-Java实现-HttpUtil

HttpUtil负责提供Http的Post方法,其核心的方法如下:

 /**
     * Do POST request
     * @param url
     * @param parameterMap
     * @return
     * @throws Exception
     */
    public String doPost(String url, Map<?, ?> parameterMap) throws Exception {

        /* Translate parameter map to parameter date string */
        StringBuffer parameterBuffer = new StringBuffer();
        if (parameterMap != null) {
            Iterator<?> iterator = parameterMap.keySet().iterator();
            String key = null;
            String value = null;
            while (iterator.hasNext()) {
                key = (String)iterator.next();
                if (parameterMap.get(key) != null) {
                    value = (String)parameterMap.get(key);
                } else {
                    value = "";
                }

                parameterBuffer.append(key).append("=").append(value);
                if (iterator.hasNext()) {
                    parameterBuffer.append("&");
                }
            }
        }

//        System.out.println("POST parameter : " + parameterBuffer.toString());

        URL localURL = new URL(url);

        URLConnection connection = openConnection(localURL);
        HttpURLConnection httpURLConnection = (HttpURLConnection)connection;

        httpURLConnection.setDoOutput(true);
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setRequestProperty("Accept-Charset", charset);
        httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length()));

        OutputStream outputStream = null;
        OutputStreamWriter outputStreamWriter = null;
        InputStream inputStream = null;
        InputStreamReader inputStreamReader = null;
        BufferedReader reader = null;
        StringBuffer resultBuffer = new StringBuffer();
        String tempLine = null;

        try {
            outputStream = httpURLConnection.getOutputStream();
            outputStreamWriter = new OutputStreamWriter(outputStream);

            outputStreamWriter.write(parameterBuffer.toString());
            outputStreamWriter.flush();

            if (httpURLConnection.getResponseCode() >= 300) {
                resultBuffer.append(httpURLConnection.getResponseCode());
                throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
            }

            inputStream = httpURLConnection.getInputStream();
            inputStreamReader = new InputStreamReader(inputStream);
            reader = new BufferedReader(inputStreamReader);

            while ((tempLine = reader.readLine()) != null) {
                resultBuffer.append(tempLine);
            }

        } finally {

            if (outputStreamWriter != null) {
                outputStreamWriter.close();
            }

            if (outputStream != null) {
                outputStream.close();
            }

            if (reader != null) {
                reader.close();
            }

            if (inputStreamReader != null) {
                inputStreamReader.close();
            }

            if (inputStream != null) {
                inputStream.close();
            }

        }

        return resultBuffer.toString();
    }

其实这也不是我自己写的代码,所以并么有什么特别好说的。我只知道,传递了URL 和 接口参数,使用Post方法获得服务器的结果。

时间: 2024-08-29 18:58:54

接口测试-自动化-Java实现-HttpUtil的相关文章

接口测试-自动化-Java实现-Constants.java/RecordStore.java

Constants.java 是一些接口测试中的URL和参数等. public class Constants { public static final String BASE_URL = "http://192.168.1.116:8080/cloudalbums/website/"; /** * 登录模块 */ //登录接口 public static final String LOGIN_URL = BASE_URL + "user/login1"; pub

接口测试-自动化-Java实现-InterfaceTest

InterfaceTest,在TestMain中可以看到是实现测试测试的基本方法. 代码如下: public class InterfaceTest { final static String param = "param"; HtmlFile hf = new HtmlFile(); public void test1(String p_paramcontent, String p_description, String p_url) { long startTime = Syste

接口测试-自动化-Java实现-TestMain

TestMain就是整个接口测试的主方法了,同时还要实现对HTML文件的创建,编辑和关闭等功能. 代码如下: public static void main(String[] args) { HtmlFile hf = new HtmlFile(); hf.createLog("C:/Code/1.html"); InterfaceTest it = new InterfaceTest(); it.test1(Constants.LOGIN_CONTENT, "测试登录接口&

接口测试-自动化-Java实现-HtmlFile

接下来要对TestMain中的方法逐个进行分析: 首先 是HtmlFile .java,在主方法中的应用为: HtmlFile hf = new HtmlFile(); hf.createLog("C:/Code/1.html"); 看名称就知道,其实实现的东西很简单就是创建1.html作为Log输出文件. 具体的实现代码如下: public class HtmlFile implements IFile { private FileHandler fileHandler; priva

接口测试-自动化-Java实现-HtmlFormatter

因为牵扯到这个不是自己开发的,因为版权的问题,就不贴代码了, 大概理解下,这个类继承了XMLFormatter类,需要重写三个方法,format(报告的主内容),getHead(报告的头部),getTail(报告的尾部). 大概的样式如下: public class FormatterTest extends XMLFormatter { @Override public String format(LogRecord record) { // TODO Auto-generated metho

接口测试自动化生成框架

接口测试这个词语,相信大家都不陌生了吧.目前我个人的理解,接口测试应该属于白盒测试的范畴,也是很多测试工程师很想从事和向往的一个测试手段.大家都觉得白盒测试深不可测,但实际上是怎么样的呢. 接口测试的实施优先级 对于Web应用来说,接口测试就是对某一个接口进行测试代码的编写和执行.一般情况下,实施接口测试的优先级是:对暴露在外面的接口(该接口会给第三方调用)进行接口测试:内部的核心功能接口也会做接口测试:内部非核心功能接口的接口测试(很多时候就是单元测试).当然这个实施的具体细节,还需要根据项目

Jmeter接口测试自动化(持续集成)

Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1.安装JDK,配置java环境变量(略过)   2.安装Jmeter,这里用到的版本是2.12(安装过程略过) 3.安装 ANT 3.1 下载安装 下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可, 比如:D:/program files/

WEB接口测试之Jmeter接口测试自动化 (四)(持续构建)

转载http://www.cnblogs.com/chengtch/p/6145867.html  Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1.安装JDK,配置java环境变量(略过)   2.安装Jmeter,这里用到的版本是2.12(安装过程略过) 3.安装 ANT 3.1 下载安装 下载地址 http://ant.apache.org/

java Mac自动化-java和ant环境搭建

本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地搭建java和ant环境 其实在几年前,我们还大多使用的是windows本,而且我们也会比较善于使用windows笔记本,但自从mac本出现后,Mac本迅速成为我们技术人员比较热衷的一种笔记本,除了装x,更多的是因为它超级类似于linux的系统,支持了linux中大部分命令行,轻便的外表等等因素,另一方面,它有着像windows一样的屏幕,使得我们可以像操作windows机器一样操作linux系统,但是,不得不承认,在使用了ma