LR基於HTTP協議的WebService測試

    最近發現之前做過的東西,在未掌握牢固的情況下,很快就會忘掉,所以,通過這些東西來保留下一些測試方法,以便以後能夠回顧。

    WebService的最後一種測試方法,也就是通過HTTP協議來手寫腳本完成測試,這裏雖說手寫腳本,其實完成的大部分還是複製粘貼的工作,很簡單,下面簡要記錄。

    這種方式和soap_request一樣,都是找到接口文檔的請求,利用這些請求書寫函數。

    首先,LR新建HTTP協議的腳本。

    第二,腳本中用web_custom_request();函數,其中參數url爲我們的天氣預報的地址:http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx

    Method=POST,Body裏面即是我們的請求,最終代碼如下:

 

   web_custom_request("web_custom_request",
  "URL=http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx",
  "Method=POST",
  "TargetFrame=",
  "Resource=0",
  "Referer=",
  "Body=<?xml version=\"1.0\" encoding=\"utf-8\"?><soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">   <soap12:Body>    <getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">        <theCityName>&#x4E0A;&#x6D77;</theCityName>    </getWeatherbyCityName>   </soap12:Body></soap12:Envelope>",
  LAST);

這就完成了我們的web_custom_request()函數

這時我們進行回訪,腳本中會產生錯誤:

Action.c(17): Error -26616: HTTP Status-Code=415 (Unsupported Media Type) for
"http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx" [MsgId: MERR-26616]

 

產生這個錯誤的原因是我們發送的數據包沒有明確格式類型,服務器在校驗格式時出現錯誤,所以我們需要手動添加一個Header頭部分,使用函數web_add_header()添加web_add_header("Content-Type",
  "application/soap+xml; charset=utf-8");

這樣再次運行就可以成功了。

 

細心的同學可能會發現在<theCityName>&#x4E0A;&#x6D77;</theCityName>

這裏明明是填寫城市的地方,爲什麼填的是一堆亂碼呢。

這是由於我們發送的格式是utf-8格式的,那麼在發送城市名字時也需要是utf-8編碼的,要不然服務器是無法識別的,至於轉換utf-8編碼,可以通過百度搜索utf-8編碼轉換即可。

 

這就是LR測試webservice的最後一種方式,到現在3種方式已經完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章