接口中導入excel測試數據(詳)


此篇通過項目來實現怎樣導入Excel表格中的測試用例

一、編寫一個讀取Excel數據的函數

功能:傳一個Excel的位置和第幾個工作表,返回數據列表

名詞:workBook==工作簿==Excel

         workSheet==工作表==sheet

Excel表格中從0開始讀取

 

導入:import  xlrd

步驟:

定義一個函數:

def readExcel(filePath,sheet_index):
01:打開Excel,獲取【workBook】對象
workBook = xlrd.open_workbook(filePath)#路徑

02:從工作簿中,獲取【workSheet】對象

第一種方法:
workSheet = workBook.get_sheet(sheet_index)#第幾個工作表(索引)
第二種方法:
workSheet = workBook.sheet_by_name('工作表名')
第三種方法:
workSheet = workBook.sheet_by_index(sheet_index)
第四種方法:
workSheet=workBook.sheets()[索引]

 

獲取總行數:

nrows = workSheet.nrows

獲取某行數據:

row=workSheet.row_values(行號)

03:對【workSheet】工作表進行循環-逐型行取出數據,放入列表中

    retList=[]
    for i in range(1,nrows): #range左包含右不包含  讀45條記錄
        #返回的是一個list,得到的是第幾行數據
        oneRow = workSheet.row_values(i)
        retList.append(oneRow)
    return retList

04:返回數據列表

List=readExcel('測試用例路徑',0)
print(list)

二、發送Excel表格數據

功能:傳一行Excel數據行(列表格式),返回請求結果(字典格式)

import json
from API項目.lib.courseLIb import add,delete,modify
from API項目.lib.excelManger import readExcel
import time
import sleep


def SendCourseRequest(row):
    # print(row)  # 傳入的是一行數據,也就是一個測試用例
    colus5 = row[4]  # 第5列的值
    # # 第6列的值,用json.loads方法,把字符串轉化為字典格式
    colus6 = json.loads(row[5])
    # ret = None
    if colus5 == 'add':
        # print(colus6['name'])# 課程名稱
        courseName = colus6['name']  # 獲取課程名稱
        # 把關鍵字:{{courseName}} 替換成時間戳
        courseName = courseName.replace('{{courseName}}', str(int(time.time() * 100)))
        ret = add(courseName, colus6['desc'], colus6['display_idx'])
        # print(ret)
        test = json.loads(row[6])
        if (ret['retcode']==test['code']):
            print(row[0],'測試通過')
    # elif colus5 == 'list':
    #     ret = list(colus6['pagenum'], colus6['pagesize'])
    # elif colus5 == 'delete':
    #     ret = delete(colus6['id'])
    # return ret


list=readExcel(r'E:\bijizongjie\API項目\data\教管系統-測試用例V1.2.xls',0)
# print(list)
for i in range(0,len(list)):
    SendCourseRequest(list[i])
    time.sleep(1)

三、寫入測試結果到Excel

01:調用函數讀取測試用例

02:調用《課程管理》函數執行

from API項目.lib.excelManger import readExcel
from API項目.lib.sendCourseRequest import SendCourseRequest
import time

#1-讀取測試用例
list=readExcel(r'E:\bijizongjie\API項目\data\教管系統-測試用例V1.2.xls',0)
# print(list)
#2-執行測試用例
dictBody=[]
for i in range(0,len(list)):
    row=list[i]
    dictBody=SendCourseRequest(row)
    dictBody.append(dictBody)
    time.sleep(1)

 

03:執行結果寫回Excel

導入:from xlutils.copy import copy

1):復制一個全新的Excel

def getNewExcel(filePath):
    #1-1打開Excel,得到workBook對象
    workBook = xlrd.open_workbook(filePath)
    #1-2 復制一個全新的工作簿
    workBookNew = copy(workBook)
    return workBookNew

調用
workBookNew = getNewExcel(‘路徑’)

保證輸出的Excel表格格式存在:

加入一個參數:formattings_info=True

workBook = xlrd.open_workbook(filePath,formattings_info = True)

2):在新的Excel中得到第一個工作表

workSheetNew= workBookNew.sheet_by_index(0)

3):執行用例,在第7、8列寫內容

for i in range(0,len(list)):
    row=list[i]
    dictBody=SendCourseRequest(row)
    time.sleep(1)
    test = json.loads(row[6])
    if (dictBody['retcode'] == test['code']):
        print(row[0], '測試通過')
        workSheetNew.write(i+1,7,'PASS')
    else:
        print('row[0]','測試不通過')
        workSheetNew.write(i + 1,7, 'FAIL')
        workSheetNew.write(i + 1,8, dictBody['reason'])

4):保存

workBookNew.save('路徑')

總結

1-demo==評審接口文檔

2-編寫測試用例

3-執行Excel中的測試用例

3.1定義一個函數,讀取測試用例,返回列表

3.2循環列表,發送請求-返回結果(還調用了之前封裝的函數)

3.3返回的結果需要寫入Excel中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM