httpclient + TestNG 接口自动测试 第三章

此后就是数据准备与逻辑实现,就不在赘述了

此次自动化脚本并未太多用到TestNG,仅仅用于他调试起来方便;

本章记录一些用到的辅助方法:

1.将返回值打印出来的get请求,用于测试或查看接口返回内容

public static void get(HashMap<String, String> params, String HOST, String PATH) {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            // 创建httpget请求.
            HttpGet httpget = new HttpGet(getUrl(getFormparams(params), HOST, PATH));
            System.out.println("executing request " + httpget.getURI());
            // 执行get请求
            CloseableHttpResponse response = httpclient.execute(httpget);
            try {
                // 将响应放入entity载体
                HttpEntity entity = response.getEntity();
                System.out.println("--------------------------------------");
                // 打印返回状态栏
                System.out.println(response.getStatusLine());
                if (entity != null) {
                    // 打印返回内容长度
                    System.out.println("Response content length: " + entity.getContentLength());
                    // 打印返回内容
                    System.out.println("Response content: " + EntityUtils.toString(entity));
                }
                System.out.println("------------------------------------");
            } finally {
                response.close();
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 断开连接
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

2.去掉长数组中短数组含有的元素

public static String[] unlockedSeatArray(String[] longerarray, String[] shorterarray) {
    LinkedList<String> list = new LinkedList<>();
    for(String str : longerarray) {
        list.add(str);
    }
    for (String str : shorterarray) {
        if(list.contains(str)) {
            list.remove(str);
        }
    }
    String[] result = {};
    return list.toArray(result);
}

3.数组中每前n个值合并,并形成一个新的数组

public static String[] seatArray(String[] targetArray, int index) {
    String[] seatArray = null;
    int len = targetArray.length;
    int len2 = 0;
    int j = 0; //座位数循环变量
    //计算数组的行长度
     if(0==len%index){
     len2 = len/index;
    }else{
     len2 = (int)(len/index) + 1 ;
     }
     //初始化数组
    seatArray = new String[len2];
    len2 = 0; j = 0;
    for(int i=0; i<len; i++) {
        if(index == j) {
            j = 0;
            seatArray[len2] = seatArray[len2].substring(4, seatArray[len2].length()-1);
            len2++;
        }
        seatArray[len2] = seatArray[len2] + targetArray[i] + ",";
        j++;
    }
    seatArray[len2] = seatArray[len2].substring(4, seatArray[len2].length()-1); //处理最后一个数据
    return seatArray;
}

4.简单生成日志方法

public static void writefile(String response, String path) {
        try {
            SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String TimeString = time.format(new java.util.Date());

            File file = new File(path);
            if (!file.exists()) {file.createNewFile();}
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.append(response);
            bw.write("\r\n");
            bw.write("---------" + "可爱的分割线" + "----------" + TimeString);
            bw.write("\r\n");
            bw.close();
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

差不多一些用到的方法记录于此

时间: 2024-10-31 13:25:28

httpclient + TestNG 接口自动测试 第三章的相关文章

httpclient + TestNG 接口自动测试 第六章

1.httpclient处理post提交xml格式数据请求 public static void post(String HOST, String PATH, String reqXml) { // 创建httpClient实例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost HttpPost httppost = new HttpPost(getUrl(HOST, PATH)); // 设置

httpclient + TestNG 接口自动测试 第五章

1.实现对java配置文件properties的读取.写入与更新操作 package com.config; /** * 实现对Java配置文件Properties的读取.写入与更新操作 */ import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F

httpclient + TestNG 接口自动测试 第四章

1.客户端向服务器传递参数中有的需要传递Json格式数据,现提供个HashMap转json格式数据方法 public static String hashjson(HashMap<String, String> map) { String string = "[{"; for (Iterator<Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) { Entry&

httpclient + TestNG 接口自动测试 第一章

自动化接口实现选择排期--->选择座位--->创建订单--->取消订单/出票流程: 影讯接口:城市列表.影院列表.影厅列表.座位列表.已售座位列表.排期列表: 订单接口:创建订单.查询订单.出票.取消订单: 逻辑上分四层实现: StartTest.java 开始执行测试 OrderScheme.java 订单流程  CityScheme.java 影讯流程 OrderInterface.java 构造订单接口参数 CityInterface.java 构造影讯接口参数 GetPost.j

httpclient + TestNG 接口自动测试 第二章

请求地址由参数加参数签名形式生成,例如: http://ip/server?method=getPlans&planDate=2014-08-25&cinemaId=101&uid=remote&enc=d0fe8420c641dd87d4165c09fe1d0c70&time_stamp=1408960607250 1.构建url 1)首先构建参数对 public static HashMap<String, String> cinemas() { H

RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)

在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的其他模块,然后在工具加case就可以了,但是接口取值的数据全部都是直接在case里面录入的,也就是说,每增加一条测试用例,就需要在工具内添加一条case,测试数据始终都是在工具内控制,这让以前使用excel管理过测试数据的我感觉很不爽,总感觉得把数据放到excel内,然后实现数据驱动测试. 围绕着这

接口自动化:HttpClient + TestNG + Java(二) - 第一个接口测试:get请求

在上一篇中,我们搭建好了HttpClient + TestNG + Java的自动化接口测试环境,这一篇我们就赶紧开始编写我们的第一个接口测试用例. 本篇会对问题解决的思路进行更详尽的阐述. 2.1 确定被测接口 首先一个现实的问题,我们要有一个待测接口来验证我们自动化方案的可行性. 我们可以选择在自己的本地去部署一套待测接口,当然也可以选择公网上的接口去进行测试,这里我们选择后者. 我选定的是apishop这个站点:https://www.apishop.net/ 这个站点提供非常多,种类齐全

JAVA: httpclient 详解——第三章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者: httpclient可以处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等... 下面是测试代码(全部总结来自官方文档,以及翻译) 须要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache

soapui + groovy 接口自动化测试 第三章

本篇闲扯淡 第一次做接口测试是无意的,当时正在做性能测试,然后要先验一下功能通过否,就用lr脚本跑了一遍功能,就这样第一次没了: 第二次做接口测试时,领导说要自动化,然后我研究了selenium及windows客户端,再然后得知先做接口的(万变不离其宗嘛): 思虑良久用啥去做呢,首选抛弃了lr这绝壁不合适,简单的还行复杂的就GG了.然后祭出了我的java,先学习了段时间httpclient,就进行简单的请求编写了: 在编写过程中发现我们内部请求是要传加密字段的,然后就去请教我们开发了: 首先我们