接口自動(dòng)化測(cè)試(四):Helloworld入門

一镊叁、準(zhǔn)備工作

需要做接口測(cè)試鲸阔,肯定得需要一個(gè)已調(diào)通的接口或服務(wù)订晌,在這里我們暫時(shí)就只考慮HTTP的接口吧。由于是練習(xí)诡挂,大家可以在自己的應(yīng)用系統(tǒng)中通過Fiddler抓取請(qǐng)求url碎浇,其實(shí)這個(gè)url就可以近似看作是一個(gè)接口的地址;或者在網(wǎng)上找一個(gè)公開的API璃俗,基于這個(gè)API來做試驗(yàn)奴璃。
1、F12抓取請(qǐng)求url
對(duì)于Web系統(tǒng)城豁,我們可以通過瀏覽器的調(diào)試工具直接獲取到請(qǐng)求url苟穆,比如chrome和IE的F12,F(xiàn)irefox的firebug等等唱星,對(duì)于移動(dòng)端應(yīng)用雳旅,可以通過Fiddler等抓包工具獲取請(qǐng)求url。
如下圖间聊,獲取簡(jiǎn)書個(gè)人主頁(yè)的關(guān)注接口URL攒盈,可以通過Chrome的F12來獲取(按鍵盤F12哎榴,打開調(diào)試工具型豁,操作頁(yè)面僵蛛,查看newwork頁(yè)簽的請(qǐng)求地址):

Chrome F12

這樣我們就可以將url拷貝出來:
url:http://www.reibang.com/notifications?type=follows&page=1
說明:?后面部分是參數(shù)
響應(yīng)結(jié)果返回的是json格式的數(shù)據(jù):

挖個(gè)坑:這個(gè)url在未登錄簡(jiǎn)書時(shí),是請(qǐng)求不到預(yù)期結(jié)果的迎变,那么接口測(cè)試如何跳過登錄驗(yàn)證充尉?先挖個(gè)坑在這里,后面章節(jié)專門來講衣形。

2驼侠、Fiddler抓取請(qǐng)求url
Fiddler等抓包工具不僅可以抓Web應(yīng)用的請(qǐng)求,還可以抓移動(dòng)端應(yīng)用的請(qǐng)求(用法:打開Fiddler后谆吴,在瀏覽器的操作倒源,對(duì)應(yīng)的請(qǐng)求記錄都會(huì)在Fiddler中顯示,移動(dòng)端需要額外設(shè)置下Fiddler和手機(jī)代理)句狼,F(xiàn)iddler會(huì)比較直觀的列出請(qǐng)求的域名相速、url、狀態(tài)鲜锚、請(qǐng)求信息突诬、響應(yīng)結(jié)果等信息,如下圖:

fiddler

(對(duì)于Fiddler的基礎(chǔ)用法還不熟悉芜繁? 可以百度找教程看旺隙,基礎(chǔ)的用法很簡(jiǎn)單的,相信要進(jìn)入到接口自動(dòng)化測(cè)試的童鞋骏令,這個(gè)基礎(chǔ)肯定都有了吧)

3蔬捷、找一個(gè)公開的API
考慮到有些童鞋可能之前沒基礎(chǔ),一下子搞一個(gè)要登錄的接口榔袋,有點(diǎn)懵周拐,另外也可能沒有注冊(cè)簡(jiǎn)書,用簡(jiǎn)書的API也不太方便凰兑,所以還是要找一個(gè)不用登錄的公開API妥粟。隨便google了一下,找到了一個(gè)比較穩(wěn)定的查詢?nèi)嗣駧沤趨R率的接口:http://api.fixer.io/latest?base=CNY吏够,在瀏覽器中請(qǐng)求下勾给,看下效果:

二、進(jìn)入正題

首先對(duì)于接口自動(dòng)化測(cè)試锅知,我們要和利用接口工具請(qǐng)求接口測(cè)試區(qū)分開來播急,既然是自動(dòng)化測(cè)試,那么肯定是要用代碼的方式去實(shí)現(xiàn)接口請(qǐng)求與響應(yīng)結(jié)果驗(yàn)證這整個(gè)過程售睹,不然找個(gè)接口工具就可以去驗(yàn)證了桩警。
1. 新建Maven項(xiàng)目
使用eclipse還是IDEA?無所謂昌妹,習(xí)慣哪個(gè)用哪個(gè)捶枢,兩者大同小異沉噩。

2. 配置Maven pom.xml,添加依賴
這一步這一章節(jié)可以省略柱蟀,因?yàn)橛玫氖莏ava.net相關(guān)工具類來實(shí)現(xiàn)http請(qǐng)求,所以暫時(shí)無需導(dǎo)入其他依賴包蚜厉。

3. 新建package及測(cè)試類
項(xiàng)目結(jié)構(gòu)如下圖:


4. 代碼實(shí)現(xiàn)
具體的代碼實(shí)現(xiàn)步驟我在代碼中都加了很詳細(xì)的注釋长已,大家直接看代碼就行了。

package com.alany.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/**  
 * @date: 2017年12月4日 
 * @author: alany    
 *   
 */
public class ApiRequestTest {
    
    public static void main(String[] args){
        String url = "http://api.fixer.io/latest?base=CNY";
        try {
            //1昼牛、創(chuàng)建URL
            URL reqUrl = new URL(url);
            //2术瓮、打開和URL之間的連接
            URLConnection connection = reqUrl.openConnection();
            //3、設(shè)置通用的請(qǐng)求屬性贰健,可選
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("User-Agent",
                    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36");
            //4胞四、建立連接
            connection.connect();
            //5、獲取響應(yīng)結(jié)果
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            StringBuilder response = new StringBuilder();
            String line;
            while ((line = in.readLine()) != null) {
                response.append(line);
            }
            System.out.println(response.toString());
            //6伶椿、用完了記得關(guān)閉輸入流
            in.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }       
    }
}

5. 測(cè)試運(yùn)行
運(yùn)行一下看下結(jié)果:

{"base":"CNY","date":"2017-12-01","rates":{"AUD":0.19978,"BGN":0.24898,"BRL":0.49425,"CAD":0.19479,"CHF":0.14883,"CZK":3.2494,"DKK":0.94741,"GBP":0.11218,"HKD":1.1821,"HRK":0.96183,"HUF":39.949,"IDR":2047.5,"ILS":0.52828,"INR":9.7586,"JPY":17.021,"KRW":163.91,"MXN":2.8254,"MYR":0.61896,"NOK":1.2572,"NZD":0.22086,"PHP":7.6222,"PLN":0.53633,"RON":0.58949,"RUB":8.8728,"SEK":1.2665,"SGD":0.20387,"THB":4.937,"TRY":0.59475,"USD":0.1513,"ZAR":2.0739,"EUR":0.12731}}

ok辜伟,普通的get接口請(qǐng)求就這樣實(shí)現(xiàn)了,上面實(shí)現(xiàn)的get請(qǐng)求方式脊另,要是是post呢导狡,那該怎么實(shí)現(xiàn)?上面只是拿到響應(yīng)結(jié)果偎痛,怎么跟預(yù)期結(jié)果對(duì)比校驗(yàn)?zāi)睾蹬酰渴遣皇沁€有很多問題……別急!學(xué)習(xí)要循序漸進(jìn)踩麦,這些疑問在后面會(huì)陸續(xù)解答枚赡。

【下章節(jié)預(yù)告】:接口自動(dòng)化測(cè)試(五):Http框架搭建

原文來自下方公眾號(hào),轉(zhuǎn)載請(qǐng)聯(lián)系作者谓谦,并務(wù)必保留出處贫橙。
想第一時(shí)間看到更多原創(chuàng)技術(shù)好文和資料,請(qǐng)關(guān)注公眾號(hào):測(cè)試開發(fā)棧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末反粥,一起剝皮案震驚了整個(gè)濱河市料皇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌星压,老刑警劉巖践剂,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娜膘,居然都是意外死亡逊脯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門竣贪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來军洼,“玉大人巩螃,你說我怎么就攤上這事∝罢” “怎么了避乏?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)甘桑。 經(jīng)常有香客問我拍皮,道長(zhǎng),這世上最難降的妖魔是什么跑杭? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任铆帽,我火速辦了婚禮,結(jié)果婚禮上德谅,老公的妹妹穿的比我還像新娘爹橱。我一直安慰自己,他們只是感情好窄做,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布愧驱。 她就那樣靜靜地躺著,像睡著了一般椭盏。 火紅的嫁衣襯著肌膚如雪冯键。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天庸汗,我揣著相機(jī)與錄音惫确,去河邊找鬼。 笑死蚯舱,一個(gè)胖子當(dāng)著我的面吹牛改化,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枉昏,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼陈肛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了兄裂?” 一聲冷哼從身側(cè)響起句旱,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晰奖,沒想到半個(gè)月后肩刃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犀斋,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伯襟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年馏锡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溯乒,死狀恐怖夹厌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裆悄,我是刑警寧澤矛纹,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站光稼,受9級(jí)特大地震影響或南,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钟哥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞎访。 院中可真熱鬧腻贰,春花似錦、人聲如沸扒秸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伴奥。三九已至写烤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拾徙,已是汗流浹背洲炊。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尼啡,地道東北人暂衡。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像崖瞭,于是被迫代替她去往敵國(guó)和親狂巢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理书聚,服務(wù)發(fā)現(xiàn)唧领,斷路器,智...
    卡卡羅2017閱讀 134,701評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,284評(píng)論 25 707
  • 1雌续、大胤水師統(tǒng)轄于兵部斩个,最高指揮機(jī)構(gòu)是水師大都督府,設(shè)水師大都督一名驯杜,鄰大將軍銜萨驶,爵位視具體戰(zhàn)功而定。現(xiàn)任水師大都...
    法癡l閱讀 536評(píng)論 0 0
  • 或許在很久之前也有一個(gè)時(shí)代叫劍魔的時(shí)代叁温,但是在現(xiàn)在……少啊,基本上打十局核畴,甚至更多的局膝但,一局劍魔都看不見。 劍魔不...
    黃銅刀閱讀 7,390評(píng)論 0 0
  • 這幾天看了iOS組件化構(gòu)架的幾篇文章, 這里引用幾篇文章供大家循序漸進(jìn)的學(xué)習(xí). 理解篇:bang神的逐步分析: h...
    Leopx閱讀 270評(píng)論 0 0