摘要:總結(jié)大部分人做接口自動化的流程后,發(fā)現(xiàn)基本上都是做接口請求用來存儲用例生成測試報告完成定時任務(wù)。其實(shí)在完成這個流程的過程中,代碼編寫只占用了一小部分的時間,大部分的時間都浪費(fèi)在搭建環(huán)境和用例編寫上??梢酝ㄟ^這個方式去轉(zhuǎn)換一些有問題的。
總結(jié)大部分人做接口自動化的流程后,發(fā)現(xiàn)基本上都是:python + requests做接口請求;Excel用來存儲用例;HTMLTestRunner生成測試報告;Jenkins完成定時任務(wù)。
其實(shí)在完成這個流程的過程中,代碼編寫只占用了一小部分的時間,大部分的時間都浪費(fèi)在搭建環(huán)境和用例編寫上。這里我記錄一些遇到的問題。
一、接口請求
(1)配置請求方法:get 和 post 方法簡單封裝,header中參數(shù)設(shè)置
# _*_coding:utf-8 _* import requests #get請求 def get(url,querystring): headers = requestHeader() response = requests.request("GET", url, headers=headers, params=querystring) # print response.url return response #post請求 def post(url,payload,querystring): headers = requestHeader() response = requests.request("POST", url, data=payload, headers=headers, params=querystring) # print response.url return response #設(shè)置請求的header def requestHeader(): headers = { "Content-Type": "application/json", "Cache-Control": "no-cache" } return headers
(2)針對post請求的body,開始時使用的時text的dict去請求,請求錯誤總是返回:"請求參數(shù)錯誤",后來使用postman進(jìn)行調(diào)試,直接復(fù)制已經(jīng)轉(zhuǎn)換成json格式的body傳參進(jìn)行請求,終于成功。
可以通過這個方式去轉(zhuǎn)換一些有問題的body。
(3)body轉(zhuǎn)換為json的另一種方式:通過ast模塊進(jìn)行轉(zhuǎn)換(推薦)
import ast caseParams = ast.literal_eval(caseParams)
(4)通過openpyxl模塊獲取用例Excel
#用例名 caseName = caseFile.getCellVaule(ws,rowIndex,1) #url caseUrl = caseFile.getCellVaule(ws,rowIndex,3) #請求方式 caseMethod = caseFile.getCellVaule(ws,rowIndex,4) #參數(shù) caseParams = caseFile.getCellVaule(ws,rowIndex,5)
備注:在獲取用例信息的過程中,需要對一些參數(shù)進(jìn)行容錯
A:是否有參數(shù),若無參數(shù),需傳空;
B:get參數(shù)和post body需要分開處理:
get的參數(shù)是以 "¶m"形式明文拼接在url中;
#將請求參數(shù)轉(zhuǎn)換為json格式 caseParams = ast.literal_eval(caseParams) keys = dict(caseParams).keys() values = dict(caseParams).values() for x in xrange(0,len(keys)): tempQuery[keys[x]] = values[x]
post的body需要放在dict中進(jìn)行傳參;
caseParams = ast.literal_eval(caseParams)
(5)分割所需的參數(shù),將結(jié)果寫入到文件內(nèi)
#請求返回的內(nèi)容,轉(zhuǎn)換為json格式 text = json.loads(response.text) caseFile.setCellValue(ws,rowIndex,6,response.text) #URL請求耗時 spendTime = response.elapsed.total_seconds() caseFile.setCellValue(ws,rowIndex,7,spendTime) #請求結(jié)果狀態(tài) statue = response.status_code caseFile.setCellValue(ws,rowIndex,8,statue) self.assertEqual(statue, 200)
(6)將請求結(jié)果寫入html文件,并展示
(7)配置到Jenkins,定時執(zhí)行查看接口的可達(dá)性
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44924.html
摘要:一概述在創(chuàng)業(yè)公司里,項(xiàng)目都比較趕,測試人員也是疲于測試功能模塊,基本沒空去寫什么自動化測試,以提升回歸測試的效率。三做自動化測試的動機(jī)最大的動機(jī)提升回歸測試的效率。重要業(yè)務(wù)接口的自動化測試,盡量做到多而全,爭取全面覆蓋。 ...
摘要:重點(diǎn)在自動化測試過程中,經(jīng)常需要使用文件來存儲測試用例,那么在表格內(nèi)設(shè)計好了測試用例數(shù)據(jù)后,如何通過自動化讀取呢此時就需要測試小姐姐動手寫代碼了本文主要介紹通過來讀取表格數(shù)據(jù)。 ...
摘要:目錄提交代碼常用命令讀寫文件一常用命令從遠(yuǎn)程倉庫克隆整個項(xiàng)目代碼列出當(dāng)前目錄所有還沒有被管理的文件和被管理且被修改但還未提交的文件提交全部未跟蹤和修改文件,但是不處理刪除文件將暫存區(qū)里的改動給提交到本地的版本庫參數(shù)表示可以直接輸入后面的 目錄 Git提交代碼常用命令 python 讀寫Excel文件Demo 一、Git常用命令 git clone #從遠(yuǎn)程倉庫克隆整個項(xiàng)目代碼sh...
摘要:總結(jié)整個過程的難點(diǎn)在于獲取文件對象,從數(shù)據(jù)中取值然后在按取出,這樣我們就可以從后臺上傳文件,然后進(jìn)行批量導(dǎo)入數(shù)據(jù)庫,其他數(shù)據(jù)格式只需要改和中的數(shù)據(jù)字段就可以 第一篇(從django后臺解析excel數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫) 文章會在github中持續(xù)更新 作者: knthony github 聯(lián)系我 1.django 如何從后臺上傳excel中批量解析數(shù)據(jù) 要從django后臺導(dǎo)入...
摘要:關(guān)鍵字驅(qū)動的自動化測試框架建立在數(shù)據(jù)驅(qū)動手段之上,表中包含指令關(guān)鍵詞,而不只是數(shù)據(jù)。關(guān)鍵字驅(qū)動的自動化測試是對數(shù)據(jù)驅(qū)動的自動化測試的有效改進(jìn)和補(bǔ)充。 今天,我們來...
閱讀 3158·2021-11-23 10:02
閱讀 3128·2021-11-16 11:53
閱讀 3104·2021-09-23 11:21
閱讀 3378·2019-08-30 13:02
閱讀 1638·2019-08-29 16:18
閱讀 1568·2019-08-29 12:55
閱讀 1467·2019-08-26 12:24
閱讀 2095·2019-08-26 10:36