httpclient + TestNG 인터페이스 자동 테스트 제2 장

요청 주 소 는 인자 와 인자 서명 형식 으로 생 성 됩 니 다. 예 를 들 어:
http://ip/server?method=getPlans&planDate=2014-08-25&cinemaId=101&uid=remote&enc=d0fe8420c641dd87d4165c09fe1d0c70&time_stamp=1408960607250
1. url 구축
1) 우선 매개 변수 쌍 구축
public static HashMap cinemas() {
        HashMap params = new HashMap();
        params.put("method", "getCinemas");
        params.put("uid", StartTest.USERNAME);
        return params;
    }

    2) 매개 변수 서명 을 포함 하 는 매개 변수 쌍 생 성
public static List getFormparams (HashMap params) {
        List formparams = new ArrayList();
        for (Entry e : params.entrySet()) {
            formparams.add(new BasicNameValuePair(e.getKey(), e.getValue()));
        }
        formparams.add(new BasicNameValuePair("time_stamp", String.valueOf(new Date().getTime())));
        formparams.add(new BasicNameValuePair("enc", GetENC.getEnc(formparams, StartTest.PASSWORD)));
        return formparams;
    }

3) 생 성 요청 URL
    public static URI getUrl(List formparams, String HOST, String PATH) {
        URI uri = null;
        try {
            uri = new URIBuilder().setScheme("http").setHost(HOST)
                    .setPath(PATH).setParameters(formparams).build();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        return uri;
    }

2. URL 구축 후 요청 보 내기
public static HttpEntity getEntity(HashMap params, String HOST, String PATH) {
        HttpEntity entity = null;
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            //   httpget  .  
            HttpGet httpget = new HttpGet(getUrl(getFormparams(params), HOST, PATH));
            //   get   
            CloseableHttpResponse response = httpclient.execute(httpget);
            try {
                //      entity  
                entity = response.getEntity();
                 if (entity != null) {
                        entity = new BufferedHttpEntity(entity);
                        if(StartTest.log) {
                            ResultsLog.writefile(EntityUtils.toString(entity, "UTF-8"), StartTest.path);
                        }
                    }
            } 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();
            }
        }
        return entity;
    }

3. 대상 JSON 데 이 터 를 분석 하고 대상 배열 로 돌아 가기
public static String[] targetArray(String sourcejson, String targetfield) {
    
    String targetArray[] = null;
    JSONObject js = JSONObject.fromObject(sourcejson);
    if (sourcejson.contains("data")) {
        JSONArray datajsonArray = js.getJSONArray("data");
        targetArray = new String[datajsonArray.size()];
        for(int i=0; i){
            targetArray[i] = (JSONObject.fromObject(datajsonArray.getString(i))).getString(targetfield);
        }
    }  else {
        targetArray[0] = js.getString("errCode") + "----" + js.getString("errMsg");
    }
    return targetArray;
}

4. 요청 URL 을 실행 하고 JSON 데 이 터 를 분석 하여 대상 값 을 가 져 와 배열 을 구성 합 니 다.
    public static String[]  targetValueArray(HashMap params, String targetfield) {
        String targetarray[] = null;
        HttpEntity entity = GetPost.getEntity(params, StartTest.ROUND_HOST,
                StartTest.ROUND_PATH); 
        try {
            targetarray = JSONParsing.targetArray(
                    EntityUtils.toString(entity, "UTF-8"), targetfield);
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return targetarray;
    }

 
이로써 빌 드 URL - > get 요청 보 내기 -- > JSON 데이터 분석 으로 대상 값 가 져 오기 완료
다음으로 전송:https://www.cnblogs.com/mayibanjiah/p/4210863.html

좋은 웹페이지 즐겨찾기