引言
我們使用RF做UI自動化測試的時候,使用的是關鍵字驅動。同樣,Python做接口自動化測試的時候,也可以使用關鍵字驅動。但是這里並不是叫關鍵字驅動,而是叫數據驅動。而接口測試的關鍵字是什么呢? 我們數據驅動的載體是Excel,那么excel里存放的數據是接口測試用例數據,一個接口數據里有常量和變量。變量就是一些參數對應的值,而常量就是接口的:host、path、method和data等等。而這些常量是固定不變的,我們可以將接口測試用例這些常量封裝到一個類中,每次執行測試的時候,調用類中某個方法來讀取excel中接口關鍵字對應的值。這些就稱之為——關鍵字數據。
接口關鍵字封裝
眾所周知,Excel中第一行字段的值都為固定的值,即常量。可以用這些常量來定位每一個測試用例不同字段的坐標值,將獲取到的值傳遞給接口。
首先我們看看接口測試用例有哪些最主要的關鍵字常量:

上圖基本上是接口測試用例關鍵的字段,當然可以根據自己項目需要自行添加。
我們在讀取每條測試用例的時候,實際上是讀取每行的數據,然后可以通過固定的關鍵字(列)來獲取對應的值,最后傳遞給接口方法來執行接口測試。
封裝如下:
class TestCaseKeyWord(object):
"""
定義測試用例關鍵字類
"""
CASE_ID = '0'
CASE_NAME = '1'
IS_EXECUTE = '2'
INTERFACE_URL = '3'
METHOD = '4'
HEADER = '5'
REQUEST_DATA = '6'
EXPECTED_RESULT = '7'
ACTUAL_RESULT = '8'
RESULT = '9'
# 獲取用例id
def get_case_id():
return TestCaseKeyWord.CASE_ID
# 獲取用例名稱
def get_case_name():
return TestCaseKeyWord.CASE_NAME
# 用例是否執行
def get_case_is_execute():
return TestCaseKeyWord.IS_EXECUTE
# 接口url
def get_case_interface_url():
return TestCaseKeyWord.INTERFACE_URL
# 用例方法
def get_case_method():
return TestCaseKeyWord.METHOD
# 請求頭
def get_case_header():
return TestCaseKeyWord.HEADER
# 請求參數
def get_case_payload():
return TestCaseKeyWord.REQUEST_DATA
# 預期結果
def get_case_expected_result():
return TestCaseKeyWord.EXPECTED_RESULT
# 實際結果
def get_case_actual_result():
return TestCaseKeyWord.ACTUAL_RESULT
# 用例執行結果
def get_case_result():
return TestCaseKeyWord.RESULT
if __name__ == '__main__':
print(get_case_id())
print(get_case_is_execute())
實例演示
在excel中添加一條測試用例:

新建testcase_test.py文件,獲取接口測試用例名稱:
from basic_method import testcases_keyword from public.operate_excel import Operate_Excel get_excel = Operate_Excel() # 獲取用例數 print(get_excel.get_sheet_nrows()-1) # 返回用例名稱關鍵字的列值 case_name_col = int(testcases_keyword.get_case_name()) print(case_name_col) # 獲取第一條用例的名稱 get_name = get_excel.get_sheet_cell(1,case_name_col) print(get_name)
執行結果:

總結
以上就是針對接口測試用例關鍵字的封裝實操,常量封裝十分簡單,關鍵在測試方法與思想,更多自動化測試設計與想法,可以加入QQ測試開發交流群:696400122,一起討論討論,不積跬步無以至千里~
