日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

每天進(jìn)步一點(diǎn)點(diǎn),關(guān)注我們哦,每天分享測(cè)試技術(shù)文章

本文章出自【碼同學(xué)軟件測(cè)試】

碼同學(xué)公眾號(hào):自動(dòng)化軟件測(cè)試

碼同學(xué)抖音號(hào):小碼哥聊軟件測(cè)試

robotframework是一款關(guān)鍵字自動(dòng)化測(cè)試框架,可能做各種類型的自動(dòng)化測(cè)試。本文介紹通過 robotframework 來實(shí)現(xiàn)接口測(cè)試。

01

安裝接口請(qǐng)求的第三方庫

pip install robotframework-requests

python安裝目錄的Libsite-packages可以看到

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

02

接口關(guān)鍵字基礎(chǔ)

robotframework-requests關(guān)鍵字文檔地址:http://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html

以碼同學(xué)全棧接口項(xiàng)目中的以下接口為例:

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

1. 創(chuàng)建測(cè)試集合并導(dǎo)入接口庫

創(chuàng)建一個(gè)測(cè)試集合apibasic,選中后在設(shè)置區(qū)導(dǎo)入RequestsLibrary

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

測(cè)試集合下添加集合全局變量host作為接口測(cè)試的域名

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

在該集合下將會(huì)針對(duì)碼同學(xué)全棧接口項(xiàng)目中的接口進(jìn)行測(cè)試,每個(gè)接口的域名都是一致的,因此我們給測(cè)試集合增加一個(gè)前置動(dòng)作,前置動(dòng)作里完成該域名下session的創(chuàng)建,那么在用例之中發(fā)起請(qǐng)求時(shí)都使用該session,可以幫我們有效關(guān)聯(lián)相關(guān)數(shù)據(jù)

關(guān)鍵信息解釋,創(chuàng)建一個(gè)session對(duì)象,命名為pinter

  • Create Sesion:這是接口庫提供的一個(gè)關(guān)鍵字,用來創(chuàng)建一個(gè)session對(duì)象
  • pinter:這是自定義起的一個(gè)session對(duì)象的名字,用于后續(xù)其他地方要使用時(shí)進(jìn)行引用
  • ${host}:這是引用集合變量定義的host

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

2. get接口

創(chuàng)建一個(gè)用例,起名叫g(shù)et接口

  • Get On Session:發(fā)起get請(qǐng)求的關(guān)鍵字
  • ${resp.json()}[message]:表示提取接口響應(yīng)body體重的message字段

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

3. post 表單接口

創(chuàng)建一個(gè)用例,起名叫post表單接口

  • Post On Session:發(fā)起post請(qǐng)求的關(guān)鍵字

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

4. post json接口

由于json格式參數(shù)通常比較多,所以我們將他定義成了普通變量,但是接口關(guān)鍵字請(qǐng)求時(shí)json參數(shù) 必須是字典格式,所以使用Evaluate關(guān)鍵字將字符串形式的json參數(shù)轉(zhuǎn)換成字典

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

5. put 接口

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

6. delete 接口

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

7. 文件上傳

表單形式上傳

  • Get File For Streaming Upload:獲取本地文件轉(zhuǎn)換成流對(duì)象
  • ${resp.text}:因?yàn)樵摻涌诜祷匦畔⒉⒉皇莏son串,是個(gè)純文本,所以使用這種方式獲取

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

Ajax上傳接口

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

8. 文件下載接口

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

9. 需要簽名驗(yàn)證的接口

接口參數(shù)格式如下,其中timestamp參數(shù)時(shí)實(shí)時(shí)的毫秒時(shí)間戳

{"phoneNum":"123434","optCode":"testfan","timestamp":"12112121212","sign":"your sign data"}

簽名規(guī)則如下:

  • sign字段的值 = phoneNum optCode timestamp
  • 組合在一起然后進(jìn)行md5加密

因此在腳本中需要先進(jìn)行加密處理,同時(shí)因?yàn)橛玫搅藢?shí)時(shí)時(shí)間戳,所以我們要導(dǎo)入一個(gè)時(shí)間處理庫 DateTime庫,在測(cè)試集合中導(dǎo)入DateTime庫

加密時(shí)的核心:

hashlib.md5('${phoneNum}${optCode}${timestamp}'.encode(encoding='utf8')).hexdigest()

計(jì)算得到毫秒時(shí)間戳:

int(round(${timestamp} *1000))

腳本如下:

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

免費(fèi)領(lǐng)取 碼同學(xué)軟件測(cè)試 課程筆記 超多學(xué)習(xí)資料 完整視頻 最新面試題,可以轉(zhuǎn)發(fā)文章 私信「碼同學(xué)666」獲取資料哦

10. cookie關(guān)聯(lián)

在使用相同的session對(duì)象時(shí),會(huì)自動(dòng)做到cookie關(guān)聯(lián)

先實(shí)現(xiàn)登錄接口的用例,再實(shí)現(xiàn)查詢余額接口的測(cè)試,然后兩個(gè)一起執(zhí)行即可

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

一起執(zhí)行,勾選兩條用例

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

11. token關(guān)聯(lián)

對(duì)于接口鑒權(quán)采用token時(shí),即便采用相同的session對(duì)象也是關(guān)聯(lián)不了的,需要我們自行處理

業(yè)務(wù)規(guī)則:

  • 登錄接口成功后響應(yīng)信息中的data字段就是產(chǎn)生的token值
  • 查詢余額接口請(qǐng)求時(shí)headers中的testfan-token字段就是token參數(shù)名稱

因此我們需要從登錄接口響應(yīng)中提取data,并將其傳給查詢余額的接口headers

腳本如下:

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

03

rf數(shù)據(jù)驅(qū)動(dòng)實(shí)現(xiàn)接口測(cè)試

1. 安裝數(shù)據(jù)驅(qū)動(dòng)依賴庫

pip install robotframework-datadriver

在python安裝目錄的Libsite-packages可以看到

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

2. 準(zhǔn)備測(cè)試數(shù)據(jù)文件

以碼同學(xué)全棧接口項(xiàng)目的一個(gè)登錄接口為例,準(zhǔn)備測(cè)試數(shù)據(jù)

創(chuàng)建一個(gè)excel文件寫入如下數(shù)據(jù):

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

  • 第一行第一列是固定格式,表示測(cè)試用例名稱
  • 第二列開始是測(cè)試數(shù)據(jù)對(duì)應(yīng)的變量名稱
  • 第二行開始是測(cè)試數(shù)據(jù)

3. 創(chuàng)建測(cè)試集合并導(dǎo)入第三方庫

創(chuàng)建測(cè)試集合apidatadriver,導(dǎo)入庫RequestsLibraryDataDriver,注意導(dǎo)入DataDriver時(shí)要寫參數(shù),導(dǎo)入后標(biāo)紅的話先不用管,繼續(xù)做

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

4. 創(chuàng)建集合變量并初始化session

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

5. 創(chuàng)建登錄接口關(guān)鍵字

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

6. 創(chuàng)建測(cè)試用例引用數(shù)據(jù)驅(qū)動(dòng)

測(cè)試用例中只需要在設(shè)置的模板中填寫第5步創(chuàng)建的登錄接口關(guān)鍵字即可

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

執(zhí)行測(cè)試,測(cè)試數(shù)據(jù)有三組,登錄接口也執(zhí)行了三次

零代碼實(shí)現(xiàn)接口自動(dòng)化測(cè)試-RF框架實(shí)踐(接口自動(dòng)化測(cè)試框架步驟)

免費(fèi)領(lǐng)取碼同學(xué)軟件測(cè)試課程筆記 超多學(xué)習(xí)資料 學(xué)習(xí)完整視頻,可以關(guān)注我們公眾號(hào)哦:自動(dòng)化軟件測(cè)試

本文著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部
宝清县| 灵山县| 高唐县| 璧山县| 荥阳市| 葫芦岛市| 永仁县| 留坝县| 达日县| 梁山县| 樟树市| 江阴市| 望谟县| 洪泽县| 余庆县| 潼关县| 五河县| 皋兰县| 项城市| 罗城| 保康县| 通化市| 丰顺县| 巍山| 临泉县| 绵竹市| 琼中| 合阳县| 萨嘎县| 丹凤县| 平利县| 徐水县| 西丰县| 清流县| 乐平市| 鄢陵县| 宜宾市| 南岸区| 九江县| 华池县| 石阡县|