全民編程的時(shí)代,怎么能少了測(cè)試同學(xué)的身影。最近在學(xué)習(xí)Python,剛好活學(xué)活用,來實(shí)戰(zhàn)一波
某天午休未睡醒的我,突然接到一個(gè)Leader在群里@小盆,把平臺(tái)上100臺(tái)設(shè)備硬盤都上傳一套多媒體文件,線上任務(wù)需要進(jìn)行測(cè)試。
如果本人勤快且工作任務(wù)不多的話,可能就哼哧哼哧,一臺(tái)一臺(tái)設(shè)備操作著
不行阿,我這邊手上還有其他任務(wù)呢,交付日期也是今天,這樣做太浪費(fèi)時(shí)間了吧,方案一被否決
按照傳統(tǒng)的步驟,重復(fù)且低效,哪我去找開發(fā)去把相應(yīng)的接口要過來吧
試了一兩次,這也太繁瑣了吧,每請(qǐng)求一臺(tái)設(shè)備,就要更改下一臺(tái)的設(shè)備IP,整個(gè)過程也沒有節(jié)省多少時(shí)間阿。
內(nèi)心困惑之時(shí),我這不正在學(xué)習(xí)了Python,讓Python來幫我做事吧,節(jié)省下的時(shí)間好好放松一下(^-^)V,想到的方案三
好吶,這還差不多,話不多說,行動(dòng)吧
我們需要準(zhǔn)備的環(huán)境
IDE:Pycharm
version: Python3.7
Python相關(guān)的庫(kù)
前提:
分析接口請(qǐng)求方式、請(qǐng)求參數(shù)、body和返回信息(示例)
上傳文件接口: /api/Manager/dev/filetousb
請(qǐng)求方式: POST
請(qǐng)求參數(shù):Content-Type = application/json
Body : { "action":"start", "file:[ { "fileurl":"http://10.22.26.21/sw_bin/media/JueJing.jpg", "filename":"JueJing.jpg", "directory":"", "filemd5":"12345678910999" } ] }
關(guān)注到多媒體相關(guān)的文件都是以鏈接形式的,因此先提前把文件都上傳到服務(wù)器,生成了文件鏈接和文件的MD5值
使用Python request庫(kù)模擬網(wǎng)絡(luò)請(qǐng)求給設(shè)備端
Body內(nèi)容是JOSN的格式,因此需要使用Python內(nèi)置的josn庫(kù)
100臺(tái)設(shè)備都是不同IP,所以提前找到設(shè)備IP列表相信息,放到text文件里,則需要使用Python文件管理去一行一行去讀取放到列表里,這樣方便傳值進(jìn)行請(qǐng)求
經(jīng)過上面的準(zhǔn)備和分析,期間還去查了資料,(太菜了,盲人摸河一步一步的做)
三下五除二,一番實(shí)現(xiàn)調(diào)試,寫下初級(jí)小白的腳本(大佬們幫忙看看,指教指教)
import requests import json #使用的接口 usbfile = "/api/Manager/dev/filetousb" #body內(nèi)容,需要上傳的文件 mediafile = { "action":"start", "file:[ { "fileurl":"http://10.22.26.21/sw_bin/media/JueJing.jpg", "filename":"JueJing.jpg", "directory":"", "filemd5":"12345678910999" } ] } #定義空的deviceiplist,用來添加測(cè)試設(shè)備的IP deviceiplist = [] # 接口請(qǐng)求實(shí)現(xiàn)方法 def do_post(ip,api,data): headers = {"Content-Type": "application/json"} url = "http://"+ip+ ":8080" + api print (url) try: r = requests.post(url,headers = headers,data = json.dumps(data),timeout= 10) print(r.status_code) print(r.content.decode("utf-8")) except requests.exceptions.ConnectionError: requests.status_code = "Connection refused" #讀取設(shè)備IP文件,并添加到列表里 with open( "deviceip.txt","r") as f: while True: line = f.readline() if not line: break else: ip = [i for i in line] deviceiplist.append(ip) f.close() # 執(zhí)行循環(huán)請(qǐng)求100次 for i in range(100): print(iplist[i]) time.sleep(10) # 上傳多媒體文件 # do_post(deviceiplist[i],usbfile,mediafile)
運(yùn)行過程,我們就拿著省下來的時(shí)間來,搞其他事情,爭(zhēng)取早點(diǎn)下班(笑哭.jpg)
本次時(shí)間,比較緊急,腳本寫的也比較簡(jiǎn)單,如果有更好的技能,歡迎大家多多留言,讓我這個(gè)小白增加眼界。
到此這篇關(guān)于Python 批量操作設(shè)備的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Python 批量操作設(shè)備內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:西寧 湖北 盤錦 宜昌 上饒 潮州 珠海 佳木斯
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 批量操作設(shè)備的實(shí)現(xiàn)步驟》,本文關(guān)鍵詞 Python,批量,操作,設(shè)備,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。