zoukankan      html  css  js  c++  java
  • http 带cookie值的get请求(关联测试)

    本文主要包含一下五点。

    1、如何get请求如何获取cookie信息。   getCookieStore()

    2、如何发送带cookie信息的get 请求。  setCookieStore()

    3、testng依耐测试,带cookie信息的get请求需要依耐于获取cookie信息的请求。    @Test(dependsOnMethods = {"getTestCookie"})

    4、如何使用moco框架构建带cookie的get请求,和返回cookie信息的get请求。

    5、如何获取请求返回响应的状态码。response.getStatusLine().getStatusCode()

    java代码如下

     1 package com.course.httpclient.cookies;
     2 
     3 import org.apache.http.HttpResponse;
     4 import org.apache.http.client.CookieStore;
     5 import org.apache.http.client.HttpClient;
     6 import org.apache.http.client.methods.HttpGet;
     7 import org.apache.http.cookie.Cookie;
     8 import org.apache.http.impl.client.DefaultHttpClient;
     9 import org.apache.http.util.EntityUtils;
    10 import org.testng.annotations.BeforeTest;
    11 import org.testng.annotations.Test;
    12 
    13 import java.io.IOException;
    14 import java.util.List;
    15 import java.util.Locale;
    16 import java.util.ResourceBundle;
    17 
    18 public class MyCookieForGet {
    19 
    20     private String url;
    21     private ResourceBundle bundle;//用于读取配置文件
    22     private CookieStore store;//用于存储cookies信息
    23 
    24     @BeforeTest
    25     public void beforeTest() {
    26 
    27         bundle = ResourceBundle.getBundle("application", Locale.CHINA);
    28         //上行代码用于读取配置文件,baseName和类在同一目录的resource文件中
    29         url = bundle.getString("test.url");
    30         //上行代码是获取配置文件中的域名
    31     }
    32 
    33     @Test
    34     public void getTestCookie() throws IOException {
    35 
    36         String result;
    37         String uri = bundle.getString("getCookies.uri");
    38         //以上代码是获取配置文件中的getCookies.uri对应的路径
    39         String testurl = this.url + uri;
    40         HttpGet get = new HttpGet(testurl);
    41         System.out.println("这是testurl的地址" + testurl);
    42 //        HttpClient client = new DefaultHttpClient(); HttpClient无法获取cookie信息
    43         DefaultHttpClient client = new DefaultHttpClient();
    44         //创建HttpClient对象,用于执行get请求
    45         HttpResponse response = client.execute(get);
    46         System.out.println("这是response的值" + response);
    47         result = EntityUtils.toString(response.getEntity(), "utf-8");
    48         System.out.println(result);
    49         //以下代码是获取cookie信息
    50         this.store = client.getCookieStore();
    51         List<Cookie> cookkielist = store.getCookies();
    52         for (Cookie cookie : cookkielist) {
    53             String name = cookie.getName();
    54             String value = cookie.getValue();
    55             System.out.println("cookie name=" + name + "  cookie value=" + value);
    56         }
    57 
    58 
    59     }
    60 
    61     /**
    62      * 以下方法是一个带cookie的get请求,因此需要依耐于方法getTestCookie()获取cookie信息
    63      */
    64     @Test(dependsOnMethods = {"getTestCookie"})
    65     public void testGetWithCookies() throws IOException {
    66 
    67         String result;
    68         String uri = bundle.getString("testGetWithCookies.uri");
    69         //以上代码是获取配置文件中的testGetWithCookies.uri对应的路径,如果和配置文件关联上了,配置文件testGetWithCookies.uri字样会高亮显示
    70         String testurl = this.url + uri;
    71         HttpGet get = new HttpGet(testurl);
    72         DefaultHttpClient client = new DefaultHttpClient();
    73         client.setCookieStore(this.store);//设置cookie信息
    74         HttpResponse response = client.execute(get);
    75         int statusCode = response.getStatusLine().getStatusCode();//以上是获取响应的状态码
    76         if (statusCode == 200) {
    77             result = EntityUtils.toString(response.getEntity(), "utf-8");
    78             System.out.println(result);
    79 
    80         }
    81 
    82     }
    83 
    84 }

    接口信息配置文件application.properties如下

    1 test.url=http://127.0.0.1:8888
    2 getCookies.uri=/getCookies
    3 testGetWithCookies.uri=/get/with/cookies

    moco模拟接口信息如下

     1 [
     2   {
     3     "description": "这是一个会返回cookies信息的get请求",
     4     "request": {
     5       "uri": "/getCookies",
     6       "method": "get"
     7     },
     8     "response": {
     9       "headers": {
    10         "Content-Type": "text/html;charset=gbk"
    11       },
    12       "cookies": {
    13         "login": "true"
    14 
    15 
    16       },
    17       "text": "恭喜你获得cookies信息成功"
    18     }
    19   },
    20   {"description": "这个一个带cookie信息的get请求",
    21   "request": {
    22   "uri": "/get/with/cookies",
    23   "method": "get",
    24   "cookies": {
    25     "login": "true"
    26   }
    27 },
    28   "response": {
    29   "headers": {
    30     "Content-Type": "text/html;charset=gbk"
    31   },
    32   "text": "这是一个带cookies的请求响应"
    33 }
    34   }
    35 
    36 
    37 
    38 
    39 ]
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/linxinmeng/p/12615254.html
Copyright © 2011-2022 走看看