用了工具做接口测试,但是对于加密数据和结果的比对,以及批量数据读取,回头还是觉得代码来更方便灵活,从excle中读取数据,构成参数,发请求,并获取返回结果和预期值比较,并将结果输出程报告,可以深入做成框架,用来还算是比较方便的,就研究了下httpclient,刚刚起步,还不是很熟练,以下是实战,不懂不要紧,先跟着练习几次,慢慢就理解了:

1、在eclipse中新建java工程,添加jar包

2、添加httpclient的jar包

3、编写代码,一般我会写两个一个是get请求的,一个是post请求的,我这里写了一个post,里面包含了将数据存取文件中,和加密解密的方法:

代码区:

/**
     * Post请求
     *
     * @param url
     * @throws IOException
     */
    public static void httpClientPostMethod(String url) throws IOException {
        // 1、创建 HttpClient 的实例
        CloseableHttpClient httpClient = HttpClients.createDefault();
        // post请求
        HttpPost httpPost = new HttpPost(url);
        // 设置请求参数
        File file = new File(
                "C:/001myWorkspace/001工作/01移动平台/02 测试文档/03 用例梳理/James用例/V0.3版本/加密版/转义后/");
        File[] tempList = file.listFiles();// 该方法返回的是文件数组
        for (int i = 0; i < tempList.length; i++) {
            // 循环这个数组
            if (tempList[i].isFile()) {
                // 根据需要取出文件
                InputStream is = null;
                CloseableHttpResponse response = null;
                try {
                    // param 为参数,并url编码
                    String param = GetDataFromText.getData(tempList[i]
                            .toString());
                    StringEntity entity0 = new StringEntity(param);
                    // 设置请求头信息
                    entity0.setContentType("application/json");
                    httpPost.setEntity(entity0);
                    // 发送请求
                    response = httpClient.execute(httpPost);
                    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                        // 2、获取response的entity。
                        HttpEntity entity = response.getEntity();
                        // 3、获取到InputStream对象,并对内容进行处理
                        is = entity.getContent();
                        System.out.println(is);
                        // 返回的内容保存到文本
                        saveToFile("C:/001myWorkspace/tmp/", i + "test.xml", is);
                        // 获取结果,并解密
                        test.getResultFromTxt("C:/001myWorkspace/tmp/" + i
                                + "test.xml");
                    }
                } catch (ClientProtocolException e) {
                    e.printStackTrace();
                } finally {
                    if (is != null) {
                        is.close();
                    }
                    if (response != null) {
                        response.close();
                    }
                }
            }
        }

}

4、在main方法中调用,执行,并查看结果

接口测试HttpClient实践20150925的更多相关文章

  1. Atitit.http httpclient实践java c# .net php attilax总结

    Atitit.http httpclient实践java c# .net php attilax总结 1. Navtree>> net .http1 2. Httpclient理论1 2. ...

  2. Jenkins+ANT+Jmeter 接口测试的实践(转载)

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  3. 接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头

    目录 https请求 代理设置 请求头设置 获取状态码 接收响应头 https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, H ...

  4. Web接口测试-HttpClient

    要实现Web接口测试的自动化有许多方式,比如利用Jmeter.Loadrunner等测试工具都能够实现接口的自动化测试,我们也可以利用一些开源的框架来实现接口的自动化测试,比如我们现在要说的这个Htt ...

  5. 对 Jenkins+ANT+Jmeter 接口测试的实践

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  6. Jmeter接口测试案例实践(一)

    1.1. 接口介绍 本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下: 1.2. 使用Jmeter进行接口测试 1.2.1. 打开Jmeter 下载好Jmeter后,双击bin目录下的j ...

  7. 接口测试——httpclient介绍与请求方式详解

    httpClient工具介绍 HTTP协议可能是现在lntemet上使用得最多.最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源.虽然在JDK的java.net包中已经 ...

  8. python接口测试-项目实践(八) 完成的接口类和执行脚本

    脱敏后脚本 projectapi.py: 项目接口类 # -*- coding:utf-8 -*- """ xx项目接口类 2018-11 dinghanhua &quo ...

  9. python接口测试-项目实践(七)脚本优化

    七 脚本优化:重复代码的提取成函数:与项目接口相关的都封装到一个类中:添加手工验证脚本,增加输入值的判断逻辑 将所有与该项目接口相关的封装成类 class ProjectApi: #3个数据源接口 d ...

随机推荐

  1. 分布式版本管理git学习资料整理推荐

    一.什么是git? Git is a free and open source distributed version control system designed to handle everyt ...

  2. 028-B+树(一)

    B+ 树 这部分主要学习:什么是B+树? 了解了 B 树后再来了解下它的变形版:B+ 树,它比 B 树的查询性能更高. 一棵 B+ 树需要满足以下条件: 节点的子树数和关键字数相同(B 树是关键字数比 ...

  3. Centos 7 无法上网的解决办法

      首先,鼠标右击桌面,点击“在终端中打开”.   然后如下图所示,输入:su,按回车后输入自己的root密码:注意,输密码的时候密码区域并不显示任何东西哦,自己输错了就多按几次backspace就行 ...

  4. navicat中文破解版,navicat破解版,navicat for mysql10.0.11简体中文破解版

    https://blog.csdn.net/weixin_40426638/article/details/78933585 下载链接如下(里面有破解码) https://pan.baidu.com/ ...

  5. Ubuntu16.04桌面系统如何配置和启动wireshark

    上一篇介绍了在Ubuntu系统中安装wireshark 本篇介绍在Ubuntu系统中配置和启动wireshark: 安装好后,直接在终端运行$ wireshark.出于安全方面的考虑,普通用户不能够打 ...

  6. mysql 分组统计SQL语句

    1.按照特定字段: 2.在某一日期范围内: 3.按日.按月统计: 4.动态传入数据库表名称. select <if test="dateType=="d"" ...

  7. android系统提供的几种颜色Color

    http://blog.csdn.net/feiyangxiaomi/article/details/38338305 记录一下android自带颜色. Constants public static ...

  8. java第五天

    p37: 练习1 /** * Created by xkfx on 2017/2/22. */ public class DataOnly { int anInt; char aChar; publi ...

  9. JS地址自动返填技术

    系统设计地址为省市县三级联动,规范是规范了,但是无形中增加了系统操作的时间成本,因此设计地址自动返填技术,只要把地址拷贝到详细地址框中,可以自动返填到省市县三级联动的下拉框中. 还好洒家的大学不是混过 ...

  10. FromBottomToTop第十一周项目博客

    FromBottomToTop第十一周项目博客 项目内容 塔防游戏 大体就是在地图上以合理阵型建设防御炮塔来阻止小怪进入我方阵地.玩家需用现有的金币进行炮台建设或升级,金币数可根据打怪个数增加.入侵的 ...