python爬蟲MeterSphere平臺執(zhí)行報告使用實(shí)戰(zhàn)
一、場景下API信息獲取
1、通過商業(yè)id已獲取到每個場景下id,我們通過場景id進(jìn)行訪問當(dāng)前場景下的API,每個場景下面都會包含很多api,這時我們通過遍歷進(jìn)行獲取。
2、獲取到數(shù)據(jù)還是通過正則進(jìn)行過濾處理。
#遍歷每個場景下API for TestReporTGGet in range(0, TestReporTgCount001): TestReporTGName = TestReporTG[TestReporTGGet] # print(TestReporTGName,"類型是:",type(TestReporTGName)) # 特殊符號過濾 TestReporTGNameFiltration = re.sub('['!"#$%&\'()*+,./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestReporTGName) # 特殊\斜桿過濾 TestReporTGNameFiltration01 = re.sub(r'\\', "", TestReporTGNameFiltration) # 獲取響應(yīng)體url ResponseUrl = "http://ms.***.*****:****/api/scenario/report/selectReportContent/" + TestReporTGNameFiltration01 print("場景下節(jié)點(diǎn)地址:"+ResponseUrl) ResponseUrlResp = requests.get(url=ResponseUrl, headers=TestReportHeaders) ResponseUrlResp.encoding = "utf-8" #print(ResponseUrlResp.text) ResponseUrlRespGet = ResponseUrlResp.text # 獲取每個流程節(jié)點(diǎn)名字,進(jìn)行過濾 TestResponseResp = re.findall('","name":"(.+?)",', ResponseUrlRespGet) TestResponseRespGet=str(TestResponseResp) TestResponseRespGetFiltration=re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", TestResponseRespGet) print("根節(jié)點(diǎn)處理報告名稱:" + TestResponseRespGetFiltration) #獲取根節(jié)點(diǎn)成功或失敗 RootNodeSucceed=re.findall('"pass":(.+?)}]}}}',ResponseUrlRespGet) RootNodeSucceedGet=str(RootNodeSucceed) print("根節(jié)點(diǎn)失敗或成功狀態(tài)標(biāo)識:"+RootNodeSucceedGet) #定義局部變量,狀態(tài)轉(zhuǎn)譯使用 #if #獲取根節(jié)點(diǎn)返參數(shù)據(jù) #ReturnParameter=re.findall('"vars":"(.+?)}]}}}',ResponseUrlRespGet) #ReturnParameter=re.findall('"data":(.+?)}}}',ResponseUrlRespGet) #ReturnParameterGet=str(ReturnParameter) # 獲取根節(jié)點(diǎn)返參數(shù)據(jù) ReturnParameter=re.findall('"body":"{(.+?)]}}}',ResponseUrlRespGet) ReturnParameterGet=str(ReturnParameter) ReturnParameterGettest=re.sub(r'\\', "", ReturnParameterGet) print("過濾后的報文字段"+ReturnParameterGettest) #print("長度:" + len(ReturnParameterGet)) Namenge_list = list(ReturnParameterGet) #print("長度:" + len(Namenge_list)) is_contain_ch29 = '"error":0' in ResponseUrlRespGet # 獲取根節(jié)點(diǎn)狀態(tài)碼 # RootState=re.findall('"responseCode":"(.+?)","',ResponseUrlRespGet) # RootStateGet=str(RootState) # print("根節(jié)點(diǎn)狀態(tài)碼;"+RootStateGet) #獲取投保單號 InsureGain=re.findall('proposalNo:(.+?)nqueryCode',ResponseUrlRespGet) InsureGainGet=str(InsureGain) InsureGainGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",InsureGainGet) InsureGainGetDispose01=re.sub(r'\\', "",InsureGainGetDispose) print("投保單號:",InsureGainGetDispose01) #獲取報價單號 PriceSheet=re.findall('quotationNo:(.+?)nquotationNo1:',ResponseUrlRespGet) PriceSheetGet=str(PriceSheet) PriceSheetGetDispose=re.sub('['!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "",PriceSheetGet) PriceSheetGetDispose01=re.sub(r'\\', "",PriceSheetGetDispose) print("報價單號:",PriceSheetGetDispose01) #獲取orderMessageList orderMessageList=re.findall('"assertions":(.+?)"pass":true',ResponseUrlRespGet) orderMessageListGet=str(orderMessageList) print("獲取orderMessageList:",orderMessageListGet) print("===============================================================================") #print("根節(jié)點(diǎn)返參:"+ReturnParameterGet) print("是否為:",is_contain_ch29) print("根節(jié)點(diǎn)的接口:"+ReportParticularsUrl) print("===============================================================================")
二、前期爬蟲工作已完成后我們主要進(jìn)行存儲處理
1、讀取前面自動生成表格,進(jìn)行定位。
2、 is_contain_ch29 = '"error":0' in ResponseUrlRespGet 主要判斷此節(jié)點(diǎn)執(zhí)行結(jié)果為成功還是失敗,這里可以通過ms里面設(shè)定成功值進(jìn)行去判斷。
# 讀取原表格 workbook = xlrd.open_workbook("autoinsurancereport.xls") # 獲取原表格第一個sheet的名字(我這里只有1個sheet) all_sheet = workbook.sheet_names() first_sheet = workbook.sheet_by_name(all_sheet[0]) # 獲取原表格第一個sheet寫入數(shù)據(jù)的行數(shù) rows = first_sheet.nrows # 拷貝新的excel,并從rows行開始追加寫入 new_workbook = copy(workbook) new_sheet = new_workbook.get_sheet(0) # 創(chuàng)建標(biāo)題 new_sheet.write(0, 0, "場景") # 場景 new_sheet.write(0, 1, "報告名稱") # 報告名稱 new_sheet.write(0, 2, "接口") # 接口 new_sheet.write(0, 3, "返回狀態(tài)碼") # 返回狀態(tài)碼 new_sheet.write(0, 4, "投保單號") # 投保單號 new_sheet.write(0, 5, "報價單號") # 報價單號 new_sheet.write(0, 6, "狀態(tài)") # 報價單號 new_sheet.write(0, 7, "orderMessageList") # 報價單號 new_sheet.write(0, 8, "路徑") # 路徑 new_sheet.write(0, 9, "文檔記錄時間") # 報價單號 # (行,列,值) new_sheet.write(rows, 0, GetSceneNameGain) # 場景 new_sheet.write(rows, 1, TestResponseRespGetFiltration) # 報告名稱 new_sheet.write(rows, 2, ReportParticularsUrl) # 接口 new_sheet.write(rows, 3, GetStateGain) # 返回狀態(tài)碼 new_sheet.write(rows, 4, InsureGainGetDispose01) # 投保單號 new_sheet.write(rows, 5, PriceSheetGetDispose01) # 報價單號 if is_contain_ch29 == True: new_sheet.write(rows, 6, "成功") # 狀態(tài) new_sheet.write(rows, 8, " ") # 返回報文 else: print("ReturnParameterGettest長度為:",len(ReturnParameterGettest)) if len(ReturnParameterGettest)<=32000: new_sheet.write(rows, 8, ReturnParameterGettest) # 返回報文 else: new_sheet.write(rows, 8, "執(zhí)行失敗,報文較長,文檔無法進(jìn)行存儲") # 返回報文 new_sheet.write(rows, 6, "失敗或未執(zhí)行") # 狀態(tài) new_sheet.write(rows, 7, orderMessageListGet) # orderMessageList new_sheet.write(rows, 9, str(current_time)) # 當(dāng)前系統(tǒng)時間 new_workbook.save("autoinsurancereport.xls")
上一篇《使用python爬蟲MeterSphere平臺執(zhí)行報告篇(二)》
以上就是python爬蟲MeterSphere平臺執(zhí)行報告使用實(shí)戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于python爬蟲MeterSphere的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談Django自定義模板標(biāo)簽template_tags的用處
這篇文章主要介紹了淺談Django自定義模板標(biāo)簽template_tags的用處,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12Python大數(shù)據(jù)之網(wǎng)絡(luò)爬蟲的post請求、get請求區(qū)別實(shí)例分析
這篇文章主要介紹了Python大數(shù)據(jù)之網(wǎng)絡(luò)爬蟲的post請求、get請求區(qū)別,結(jié)合具體實(shí)例形式分析了Python網(wǎng)頁爬蟲post請求與get請求相關(guān)使用技巧,需要的朋友可以參考下2019-11-11Python實(shí)現(xiàn)CART決策樹算法及詳細(xì)注釋
CART算法是一種樹構(gòu)建算法,既可以用于分類任務(wù),又可以用于回歸,本文僅討論基本的CART分類決策樹構(gòu)建,不討論回歸樹和剪枝等問題,感興趣的朋友跟隨小編一起看看吧2021-10-10python實(shí)現(xiàn)釘釘機(jī)器人自動打卡天天早下班
這篇文章主要為大家介紹了python實(shí)現(xiàn)釘釘機(jī)器人自動打卡天天下早班實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06