zoukankan      html  css  js  c++  java
  • 接口测试返回的json文件中字符串是乱序

    问题描述

    接口测试中post方式匹配返回信息时显示不匹配, 但是statuscode明明是200, 而且用postman /restclient等工具测出来也是没问题的.

    根本原因

    封装了这么个方法来比对返回的信息, 但是这种方法在转换返回信息时并没有对字符串进行排序. 所以和api文档中的返回值进行匹配时, 显示不匹配.

     1 package com.crewbudgetMO.API.bean;
     2 
     3 import static org.testng.Assert.assertEquals;
     4 
     5 import java.io.ByteArrayOutputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.io.UnsupportedEncodingException;
     9 
    10 import com.mashape.unirest.http.HttpResponse;
    11 import com.mashape.unirest.http.JsonNode;
    12 
    13 
    14 public class matchResponse {
    15     
    16     public static void matchPostStatus(HttpResponse<JsonNode> jsonPost, int exp) {
    17         int act = jsonPost.getStatus();
    18         assertEquals(act, exp);
    19     }
    20     
    21     
    22     public static void matchPost (HttpResponse<JsonNode> jsonPost, String filename) {
    23         String filePath = String.format("E:\Tech\selenium\projectname\src\test\java\com\subfolder\API\file\%s", filename);        
    24         InputStream in = jsonPost.getRawBody();
    25         ByteArrayOutputStream bos = new ByteArrayOutputStream();    
    26         
    27         byte[] b = new byte [10240];
    28         int length = 0;
    29         try {
    30             while((length = in.read(b))!=-1) {
    31                 bos.write(b,0,length);
    32             }
    33             in.close();
    34         } catch (IOException e) {
    35             e.printStackTrace();
    36         }
    37 
    38         String act = null;
    39         try {
    40             act = new String(bos.toByteArray(), "UTF-8");
    41         } catch (UnsupportedEncodingException e) {
    42             e.printStackTrace();
    43         }
    44         String exp = convertJson.json2String(filePath);
    45         assertEquals(act, exp);    
    46     }        
    47 }
    View Code

    解决方法

    对返回信息的json文件进行排序.

  • 相关阅读:
    函数
    文件的基本操作
    c语言程序设计案例教程(第2版)笔记(一)—零散、输入输出、最小公倍数、选择排序、冒泡排序
    c语言中的rand()函数用法
    c语言 error C4996: 'strupr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name
    Python之列表生成式、生成器
    Python之迭代器
    Python之装饰器
    Linux之线程相关命令及常用命令
    重写、重构、重载区别
  • 原文地址:https://www.cnblogs.com/cheese320/p/9014094.html
Copyright © 2011-2022 走看看