亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

發布時間:2020-08-06 16:10:20 來源:ITPUB博客 閱讀:179 作者:博為峰網校 欄目:網絡管理


現在API測試被越來越多的公司重視,對于測試工程師來說每次收到需求之后首先要做的是研究需求文檔。既然接口是兩個獨立系統之間同步數據或訪問對方程序的途徑,我們也就是要先看看這些接口到底是連接了哪兩個系統,它們之間的關系到底是怎樣的。所以一般需求文檔里會包括接口名稱,接口描述,接口類型,接口地址,推送參數,返回參數這幾項內容。熟悉Postman的同學可以發現這些都是必需的部分:

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

有了這幾項內容之后,我們需要把需求文檔轉換成Excel,這樣不管是做案例管理,還是對比結果,都相對容易一些。而后期Python讀取和寫入也更方便。在Excel中,我們只寫入變化的部分,而對于相對固定的,例如server信息則直接在Python代碼中參數化。所以做出來的輸入文檔如下:

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

有了這些內容,我們還是使用xlrd和xlwt包對excel進行處理,對于如何使用xlrd和xlwt就不在本文做過多解釋了。為什么要新建一個workbook2?因為在跑完一遍之后,如果我們發現有些接口跑出來的結果有問題,我們可以不用關閉workbook1,直接進行修改,然后rerun,就會生成新的workbook2,覆蓋之前的結果,節省打開關閉workbook的時間。

workbook1 = xlrd.open_workbook(r"C:\Demo\API\API_Cases.xlsx")

  workbook2 = xlwt.Workbook(encoding='utf-8')

  sheet1 = workbook1.sheet_by_index(0)

  sheet2 = workbook2.add_sheet("response")

讀取內容之后,我們對需要參數化的部分進行修改,一般情況下,url的前半部分為http://xx.xx.xx.xx:8080不變,所以我們只需要把excel中第二列取出來拼接成url即可,body部分也如是,如果有固定部分的body,我們可以在python中直接定義,然后與excel中的內容進行拼接:

par_url = sheet1.col_values(1)

  body = sheet1.col_values(2)

當然,拼接的代碼需要寫在循環里面:

  request_url = 'https://postman-echo.com' + par_url[i]

  print(request_url)

執行的時候,我們用到的是requests這個包,如果需求中既有GET,又有POST,又有PUT,還有DELETE,由于用到的參數不同,我們可以分別處理。對于不同請求需要用到的不同的header,我們也可以在循環里對其進行定義,如果區別很大,我們也可以在excel中單獨定義一列,然后在代碼中加入相應的讀取語句即可。對于POST類型的請求,我們需要以下幾個參數:

  response = requests.post(url=request_url, headers={}, data=body[i])

  print(body[i])

在執行完之后,如果直接寫入excel,我們打開response文件之后會發現,所有的返回內容都變成了一行,非常不便于分析。所以我們需要先對返回的數據進行處理,再寫入excel。如果返回的內容中包含中文,則必須加上ensure_ascii=False, 否則就會出現編碼問題。

json_dic = json.dumps(json.loads(response.content), indent=4, ensure_ascii=False)

最后,我們把整理好的輸出內容寫入新建的excel文檔并保存,就大功告成了。

  sheet2.write(i, 0, json_dic)

  workbook2.save(r"C:\Demo\API\response.xls")

其中遇到了一些問題,也在這里提示一下,比如在POST請求中,有些參數是隨機數,導致每次發送請求的時候都需要手動修改,否則就會報“已存在”之類的錯,這時候我們需要用到random這個包。我們以生成10位隨機數為例,在代碼中用生成的10位隨機數替換掉body中{{random}}的內容:

  random_num = str(math.floor(1e10 * random.random()))

  response = requests.post(url=request_url, headers={}, data=body[i].replace('{{random}}', random_num))

運行結果如圖:

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

生成的新文件:

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

打開這個response.xls,可以看到50個API已經跑完了。點進A1可以看到response的具體內容:

Excel+Python十分鐘跑完批量API,就是這么簡單粗暴又好用

加我VX:17324089390  回復關鍵詞“測試”領取限量軟件測試學習資料哦~~

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵川县| 唐海县| 贵州省| 赤城县| 华容县| 灵山县| 佛冈县| 将乐县| 三河市| 威宁| 通州区| 商都县| 华蓥市| 巴林右旗| 嘉黎县| 南丰县| 灵宝市| 马关县| 霍州市| 蒙山县| 宁南县| 南木林县| 昌平区| 伊金霍洛旗| 宕昌县| 德格县| 中阳县| 新源县| 民勤县| 大理市| 阿坝县| 上犹县| 南陵县| 乌恰县| 登封市| 陈巴尔虎旗| 会泽县| 绍兴县| 西吉县| 东乌珠穆沁旗| 渭源县|