美文网首页
通过前端接口+java代码实现接口自动化测试

通过前端接口+java代码实现接口自动化测试

作者: 安之若素_Lei | 来源:发表于2019-04-05 17:49 被阅读0次

    (简单记录,有问题请指出)直接用java语言对接口进行测试有很多便利的地方,比如说复杂的参数化、部署服务、扩展性等   下面我用两种方式简单列举下java直接往http接口发送参数,进行接口测试

    一、方式一,简单不规范

    此方法比较原始,最开始摸索的时候弄出来的

    原理:

    1.首先使用URL类创建URL对象

    创建URL对象

    2.对指定url建立连接

    建立连接

    3.设置相关属性,如请求方式、编码、参数类型等   类似http请求头的属性(可以通过F12在浏览器中查看)

    4.创建输出流对象,并写入请求内容

    创建流对象

    5.创建输入流对象,并从字符输入流读取文本,缓冲字符

    6.再使用in.readLine()方法存储字符内容

    7.此时就得到了服务器响应数据,解析json验证参数即可

    代码截图/详解

    代码截图

    url = new URL(URL+"config/store/paymode/list");

    传入url,创建URL对象。上面是域名+路径

    URLConnection connection = url.openConnection();

    创建连接

    connection.setDoOutput(true);

    设置运行输入属性

    connection.setRequestProperty("contentType", "UTF-8");

    设置请求编码格式

    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");

    创建OutputStreamWriter对象传输字节流。OutputStreamWriter 对象和getOutputStream方法介绍可以查jdk详解

    out.write("mcode="+Mocde()[0]+"&device_en="+Mocde()[1]);

    通过流对象,写入数据。这里参数格式类似web页面上get请求所带的参数

    out.flush(); //刷新流

    out.close();//关闭流

    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));

    创建输入流对象,并从字符输入流读取文本,缓冲字符

    String line = null;

     StringBuffer content= new StringBuffer();

    while((line = in.readLine()) != null)

     {

              //line为返回值,这就可以判断是否成功、

                content.append(line);

    }

    line参数用于临时存放返回的数据,content用于存放返回的全部数据,readLine方法表示读取一行数据。通过while循环读取数据,把一行数据存入line,再累加到content中,构成完整数据

    JSONObject object=(JSONObject) JSONObject.parse(content.toString());

    将返回值转换为JSONObject对象

    object.getIntValue("code")==0

    根据getIntValue方法参数名为code的值,并和做比较

    JSONArray objectArray=object.getJSONArray("data");

    将data节点的数据值转换为JSONArray 数组对象。后面在根据自己项目的业务逻辑判断值即可

    方法二、简单,比较规范

    此方法是在方法一的基础上进行了一些优化,应该也有不足之处,可以优化或者指出

    原理

    和方法一基本一致

    代码截图/详解

    图1 图2

    用于存放服务端响应的数据,已转换为String类型的数据

    String result = "";

    //用于存放服务端响应的字节流数据

    BufferedReader reader = null;

    ./创建URL对象

    URL url = new URL(urlPath);

    //openConnection方法创建连接对象

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    //设置请求方式

    conn.setRequestMethod("POST");

    //设置为运行输入

    conn.setDoOutput(true);

    //设置为运行输出

    conn.setDoInput(true);

    ..........

    //把String类型的数据转换为byte数组类型

    byte[] writebytes = Json.getBytes();

    // 设置文件长度,避免后面数据写入输出流时内容长度不一致

    conn.setRequestProperty("Content-Length", String.valueOf(writebytes.length));

    //getOutputStream方法获头字段和内容

    OutputStream outwritestream = conn.getOutputStream();

    //将数据写入此输出流

    outwritestream.write(Json.getBytes());

    //判断响应的状态码是否是200,200表示正常响应

    conn.getResponseCode() == 200

    //创建输入流对象,并从字符输入流读取文本,缓冲字符

    reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));

    //获取数据

    reader.readLine();

    然后返回result,校验结果即可

    相关文章

      网友评论

          本文标题:通过前端接口+java代码实现接口自动化测试

          本文链接:https://www.haomeiwen.com/subject/whckiqtx.html