• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • http請求測試實現日常、預發、線上三套環境監控

    發表于:2013-03-17來源:天貓測試作者:風盈點擊數: 標簽:http
    以下為大家介紹http請求測試方法,從而實現日常、預發、線上三套環境的監控。 做了半年的個性化推薦業務,發現很多資源位的推薦都是以http請求方式提供出來。由于前端資源相對緊張,經常需要在前端還未開發出來之前,就要針對http請求返回的json字符串

      以下為大家介紹http請求測試方法,從而實現日常、預發、線上三套環境的監控。

      做了半年的個性化推薦業務,發現很多資源位的推薦都是以http請求方式提供出來。由于前端資源相對緊張,經常需要在前端還未開發出來之前,就要針對http請求返回的json字符串進行測試,面對滿屏的字符串,基本上沒有辦法通過肉眼進行測試。后續發現了瀏覽器的json插件,可以格式化json數據,但針對json數據仍然很難進行測試。因此就想到了獲取http請求返回的json字符串,對其進行解析,再針對解析出來的數據通過腳本用例來測試返回的結果。

      另外當線http請求布滿全站,無處不在時,怎樣才能知道哪些接口在正常工作,哪些接口沒有返回數據呢?通過http請求測試方法,可以實現日常、預發、線上三套環境的監控。

      http請求不像其它接口,受環境的限制。只要知道對應的ip或域名,再加上對應的參數就可以獲取http請求返回的結果,因此對于日常、預發、線上三套環境均可以通過腳本用例進行自動化測試。http請求測試的主要思路是創建基于itest的mvn工程,通過HttpURLConnection得到http請求的返回結果,解析返回的字符串,結合itest編寫用例,驗證返回的內容,執行用例,自動化回歸用例。

      http請求測試方法如下:

      1、 創建基于itest的mvn工程

      2、 修改pom.xml文件,添加解釋json相關的依賴

      3、 執行mvn eclipse命令,將工程打包后導致入eclipse。此時工程中包含了itest做接口測試的示例:

      數據庫連接、數據準備、hsf服務依賴等都可以在此基礎上進行擴充

      4、 在BaseTestCase中添加對http請求返回結果的處理,本文通過HttpURLConnection得到http請求的返回結果,還有很多其它獲取請求返回結果途徑,如httpClient等,有興趣的同學可以嘗試一下。

      public String urlToString(String strUrl, String charset) {

      URL url = null;

      HttpURLConnection urlconnection = null;

      DataInputStream input = null;

      String str = “”;

      try {

      url = new URL(strUrl);

      urlconnection = (HttpURLConnection) url.openConnection();

      input = new DataInputStream(urlconnection.getInputStream());

      BufferedReader reader = new BufferedReader(new InputStreamReader(input, charset));

      String line = “”;

      while ((line = reader.readLine()) != null) {

      if (null != line && line != “”){

      str += line;

      }

      }

      } catch (Exception e) {

      e.printStackTrace();

      } finally {

      if (urlconnection != null) {

      urlconnection.disconnect();

      }

      try {

      input.close();

      } catch (Exception e) {

      e.printStackTrace();

      }

      }

      return str;

      }

      5、 還可以在BaseTestCase中添加其它公共方法:字符串轉換成json對象、json數據,去重等

      6、 創建測試類,編寫測試用例,執行用例

      如:測試如下http請求,根據ip的不同,可以實現對日常、預發、線上三套環境的測試

      http://ald.taobao.com/urlstring?parameter=someone

      public String daily_demo = “1.1.1.1″;

      public String prepub_demo = “2.2.2.2″;

      public String online_demo = “ald.taobao.com”;

      @Test

      public void test_demo(){

      String parameter= “someone”;

      String charset = “XXXX”;

      String str = urlToString(“http://”+online_demo+”/urlstring?parameter=”+parameter, charset);

      //截掉返回結果中構成json對象多余的字符

      String sub = str.substring(1, str.length()-1);

      JSONObject jsonObject = jsonstringToObject(sub);

      //返回結果的內容

      JSONArray data = jsonObject.getJSONArray(“data”);

      //校驗返回結果中的字段

      for(Object dataContent : data){

      String field= ((JSONObject)dataContent).get(“field”).toString();

      Assert.assertTrue(field.indexOf(“XXXX”)>-1);

      }

      }

      7、 提交用例到kelude平臺,創建實驗室,配置命令執行,同時也可以將實驗室復制到全網回歸,對用例進行每日回歸

      截止目前aladdin-httptest已經多次發現推薦接口bug

      8、 http-demo svn地址:

      請咨詢本人。

    原文轉自:http://tmalltesting.com/archives/519

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>