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