接口自動化知識與設計

一. 接口自動化測試

1. 自動化測試的流程:

test環(huán)境:研發(fā)在向test環(huán)境代碼倉庫push代碼后狂芋,自動的觸發(fā)jenkins任務纽窟,構建接口自動化測試螟左,并主動發(fā)送錯誤的構建郵件

beta環(huán)境:周三上beta后徐钠,手動觸發(fā)beta環(huán)境的自動化測試

線上環(huán)境:周四上線后,手動觸發(fā)線上環(huán)境的自動化測試

2. 使用流程設計

目前有3個環(huán)境:test/beta/release力图,每個環(huán)境有2個版本的代碼: pro/latest步绸,所以需要維護3套環(huán)境的測試用例,并使用特殊的請求頭吃媒,區(qū)分請求到哪個版本(pro/latest)代碼中

test環(huán)境瓤介,測試用例的管理基于excel,自動化測試框架搭建好后赘那,基本上都是在維護一份excel的測試用例刑桑,對測試用例進行新增,修改募舟,代碼改動較少祠斧,后期維護成本低

二. 接口自動化測試設計

1. 基于python的單元測試框架:unittest、pytest

unittest和pytest都是基于python的單元測試框架拱礁,基本上都是由:test fixture(前置)琢锋、test case(測試用例)、test suite(測試集合)呢灶、test runner(運行測試)這幾個概念組成吴超,能很好的支持各類斷言語句。

2. python ddt:數(shù)據(jù)驅動模塊

一般進行接口測試時鸯乃,每個接口的傳參都不止一種情況鲸阻,一般會考慮正向、逆向等多種組合缨睡,所以在測試一個接口時鸟悴,通常會編寫多條case,而這些除了傳參不同外奖年,并沒有什么區(qū)別细诸。這個時候就可以利用ddt來管理測試數(shù)據(jù),提高代碼復用率拾并。

3. python requests:基于python的HTTP客戶端庫揍堰。

能夠模擬客戶端向服務器發(fā)送HTTP請求。

4. python xlrd:用于讀取excel的數(shù)據(jù)

能夠對excel表格進行讀取嗅义,針對表單、逐行隐砸、逐列等方式讀取

5. allure:測試報告庫

http://www.reibang.com/p/139234261ce4?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

三. unittest

簡單用法

unittest是python自帶的一個單元測試框架之碗,類似于java的junit,基本結構是類似的季希⊥誓牵基本用法如下:

1.用import unittest導入unittest模塊

2.定義一個繼承自unittest.TestCase的測試用例類幽纷,如class xxx(unittest.TestCase):

3.定義setUp和tearDown,這兩個方法與junit相同博敬,即如果定義了則會在每個測試case執(zhí)行前先執(zhí)行setUp方法友浸,執(zhí)行完畢后執(zhí)行tearDown方法。

4.定義測試用例偏窝,名字以test開頭收恢,unittest會自動將test開頭的方法放入測試用例集中。

5.一個測試用例應該只測試一個方面祭往,測試目的和測試內容應很明確伦意。主要是調用assertEqual、assertRaises等斷言方法判斷程序執(zhí)行結果和預期值是否相符硼补。

6.調用unittest.main()啟動測試

7.如果測試未通過驮肉,則會顯示e,并給出具體的錯誤(此處為程序問題導致)已骇。如果測試失敗則顯示為f离钝,測試通過為.,如有多個testcase褪储,則結果依次顯示卵渴。

image.png

四. ddt模塊

ddt 是第三方模塊,需安裝乱豆, pip install ddt

DDT包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試數(shù)據(jù))

通常情況下奖恰,data中的數(shù)據(jù)按照一個參數(shù)傳遞給測試用例,如果data中含有多個數(shù)據(jù)宛裕,以元組瑟啃,列表,字典等數(shù)據(jù)揩尸,需要自行在腳本中對數(shù)據(jù)進行分解或者使用unpack分解數(shù)據(jù)蛹屿。

@data(a,b)

那么a和b各運行一次用例

@data([a,d],[c,d])

如果沒有@unpack,那么[a,b]當成一個參數(shù)傳入用例運行

如果有@unpack岩榆,那么[a,b]被分解開错负,按照用例中的兩個參數(shù)傳遞

image.png

六. requests模塊

requests是python實現(xiàn)的簡單易用的HTTP庫,使用起來比urllib簡潔很多

因為是第三方庫勇边,所以使用前需要cmd安裝

pip install requests

安裝完成后import一下犹撒,正常則說明可以開始使用了。

基本用法:

requests.get()用于請求目標網(wǎng)站粒褒,類型是一個HTTPresponse類型

importrequestsresponse=requests.get('http://www.baidu.com')print(response.status_code)# 打印狀態(tài)碼print(response.url)# 打印請求urlprint(response.headers)# 打印頭信息print(response.cookies)# 打印cookie信息print(response.text)#以文本形式打印網(wǎng)頁源碼print(response.content)#以字節(jié)流形式打印

七. xlrd模塊

xlrd是讀取excel表格數(shù)據(jù)识颊;

支持xlsx和xls格式的excel表格;

三方模塊安裝方式:pip3 install xlrd奕坟;

模塊導入方式:import xlrd

基礎用法

# 文件名以及路徑祥款,如果路徑或者文件名有中文給前面加一個r表示原生字符清笨。workbook=xlrd.open_workbook(filename)# 通過名稱獲取sheet=workbook.sheet_by_name('open_live')# 1. 返回book中所有工作表的名字names=workbook.sheet_names()print(f'1. 返回book中所有工作表的名字: {names}')# 2. 獲取該sheet中的有效行數(shù)nrows=sheet.nrowsprint(f'2. 獲取該sheet中的有效行數(shù): {nrows}')# 3. 讀取前10行數(shù)據(jù)excel_data=[]foriinrange(10):# print(sheet.row(i))excel_data.append(sheet.row(i))

image.png

八. 測試用例設計

controller表:

控制各個表單模塊的執(zhí)行

各個表單執(zhí)行的前置條件:包括賬號、url刃跛、partner_id抠艾、partner_key等

image.png

模塊表

主要完成該模塊下測試用例的編寫,控制單條用例是否執(zhí)行桨昙,控制測試用例的關聯(lián)參數(shù)等

image.png

九. 難點介紹

如何在test環(huán)境push完代碼后就觸發(fā)jenkins任務?

這里主要介紹非匿名token訪問gitlab的方式检号,匿名token可以直接使用jenkins任務中的token訪問gitlab的鉤子

gitlab中提供了回調的鉤子,自動化測試需要提供一個接口來接收gitlab 的鉤子回調绊率,拿到開發(fā)提交代碼后的信息谨敛,這個信息會通過我們通過的接口,由gitlba回調給我們滤否,當我們判斷是test環(huán)境的主版本倉庫時脸狸,再調用jenkins-api來執(zhí)行相應的自動化job

結果收集:如何收集jenkins執(zhí)行任務后的結果,并發(fā)送郵件:需要在服務端開一個crontab定時任務藐俺,每分鐘去輪詢調用jenkins-api詢問當前任務是否執(zhí)行完畢炊甲,并查詢狀態(tài),如果收集到結果欲芹,就保存當前結果發(fā)送郵件并停止任務

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末卿啡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子菱父,更是在濱河造成了極大的恐慌颈娜,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浙宜,死亡現(xiàn)場離奇詭異官辽,居然都是意外死亡,警方通過查閱死者的電腦和手機粟瞬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門同仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人裙品,你說我怎么就攤上這事俗批。” “怎么了市怎?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵岁忘,是天一觀的道長。 經(jīng)常有香客問我区匠,道長臭觉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任辱志,我火速辦了婚禮蝠筑,結果婚禮上,老公的妹妹穿的比我還像新娘揩懒。我一直安慰自己什乙,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布已球。 她就那樣靜靜地躺著臣镣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪智亮。 梳的紋絲不亂的頭發(fā)上忆某,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音阔蛉,去河邊找鬼弃舒。 笑死,一個胖子當著我的面吹牛状原,可吹牛的內容都是我干的聋呢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼颠区,長吁一口氣:“原來是場噩夢啊……” “哼削锰!你這毒婦竟也來了?” 一聲冷哼從身側響起毕莱,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤器贩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后朋截,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛹稍,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年质和,在試婚紗的時候發(fā)現(xiàn)自己被綠了稳摄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡饲宿,死狀恐怖厦酬,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情瘫想,我是刑警寧澤仗阅,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站国夜,受9級特大地震影響减噪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一筹裕、第九天 我趴在偏房一處隱蔽的房頂上張望醋闭。 院中可真熱鬧,春花似錦朝卒、人聲如沸证逻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽囚企。三九已至,卻和暖如春瑞眼,著一層夾襖步出監(jiān)牢的瞬間龙宏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工伤疙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留银酗,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓掩浙,卻偏偏與公主長得像花吟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厨姚,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容