接口测试-自动化-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 = System.currentTimeMillis();
        String resultString = "";

        String msg = p_paramcontent;
        JSONObject jsonObject1 = null;
        try {
            jsonObject1 = new JSONObject(msg);
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        Map<String, String> dataMap = new HashMap<String, String>();

        dataMap.put(param, jsonObject1.toString());

        try {
            resultString = new HttpUtil().doPost(p_url, dataMap);
            JSONObject jsonObject = new JSONObject(resultString);
            String resultStatues = jsonObject.getString("success");
            if (resultStatues != null && resultStatues != "") {
                if (resultStatues.equalsIgnoreCase("true")) {
                    // 输出日志
                    hf.write(p_description, changeResultString(resultString), "true");
                } else {
                    hf.write(p_description, changeResultString(resultString), "false");
                }

            } else {
                hf.write(p_description, changeResultString(resultString), "false");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            hf.write(p_description, changeResultString(resultString), "false");
        }

    }

    public  void test2(String p_paramcontent,
            String p_description, String p_url) {

        long startTime = System.currentTimeMillis();

        String resultString = "";

        String msg = p_paramcontent;
        JSONObject jsonObject1 = null;
        try {
            jsonObject1 = new JSONObject(msg);
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        Map<String, String> dataMap = new HashMap<String, String>();

        dataMap.put(param, jsonObject1.toString());

        try {
            resultString = new HttpUtil().doPost(p_url, dataMap);
            JSONObject jsonObject = new JSONObject(resultString);
            String resultStatues = jsonObject.getString("success");
            if (resultStatues != null && resultStatues != "") {
                hf.write(p_description, changeResultString(resultString), "true");
            } else {
                hf.write(p_description, changeResultString(resultString), "false");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            hf.write(p_description, changeResultString(resultString), "false");
        }

    }

    public static String changeResultString(String p_resultString) {

        StringBuilder resultString = new StringBuilder();
        if (p_resultString != "" && p_resultString != null) {
            if (p_resultString.length() > 70) {
                resultString.append(p_resultString.substring(0, 70));
                resultString.append("...");

            } else {
                resultString.append(p_resultString);
            }
        } else {
            resultString.append("返回值为空");
        }

        return resultString.toString();

    }
}

其中包含了三个方法

1. test1() 和 test2()其实是相同的方法,只是中间判断的方式不同,因为某些接口是使用了success 字段 == True 来判断是否成功的,而有些并非如此。

2. test1()或者test2()中,使用HttpUtil().doPost方法,获得服务器返回的接口,从中匹配success值是否等于True或者False,来进行判断接口是否通过。

3. 输出日志的方式是通过HtmlFile中的Write方法把结果写到Html中。

4. changeResultString()方法,用来截获返回值中的长度,如果长度过长,显示省略号。

时间: 2024-10-10 11:11:03

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

接口测试-自动化-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实现-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

接口测试-自动化-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 stri

接口测试自动化生成框架

接口测试这个词语,相信大家都不陌生了吧.目前我个人的理解,接口测试应该属于白盒测试的范畴,也是很多测试工程师很想从事和向往的一个测试手段.大家都觉得白盒测试深不可测,但实际上是怎么样的呢. 接口测试的实施优先级 对于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