1. 程式人生 > 實用技巧 >【自動化測試】指令碼與引數分離之excel取隨機指令碼只能呼叫第一個值問題

【自動化測試】指令碼與引數分離之excel取隨機指令碼只能呼叫第一個值問題

   上次建議在excel表裡面來取隨機值,然後由指令碼讀取excel表裡面的值,然而接踵而來的問題就是無論我在excel寫的隨機函式,通過指令碼讀取是無法成功隨機。例如我的手機號碼在excel表顯示18011112222,指令碼第一次讀取也是18011112222;但是,當我第二次執行指令碼的時候,指令碼仍舊讀取18011112222。查找了原因是excellibrary僅做了讀取,並未對其excel實際上的操作。然後我們呼叫excellibrary的儲存,意圖通過儲存同一份檔案的方式實現其操作,然而並不能,原因是儲存這段程式碼存在問題。於是便自己來寫。

  這是我寫的方法,分成三步:1新增一個活動來讀取excel;2.讀取excel的值;3.儲存原始檔並關閉excel(這一步就是為了重複第一步的時候,開啟excel隨機值會重新整理)注意:只需要安裝xlwings即可。【該類還存在小bug(不影響使用,例如現在要求把excel表處於關閉狀態),和完善該類其他內容(例如其他需求問題)】

目前使用的python3.x以上的修改:連結:https://pan.baidu.com/s/1lI3S58yAcvkHEpvqijlZxg 提取碼:y1se 複製這段內容後開啟百度網盤手機App,操作更方便哦

呼叫LinswLibrary/TestEexcel皆可。

原始碼:

 1 #coding = gbk
 2 
 3 import xlwings as xw
 4 
 5 class TestExcel:
 6     def __init__(self):
 7         self.wb = None
 8         self.app = None
 9         self.wsheet = None
10 self.list1 = None 11 pass 12 13 def OpenExcelxl(self,url): 14 """open excelxl C:\\test\\1.xls Author linsw""" 15 self.app = xw.App(visible = True, add_book = False) 16 self.wb = self.app.books.open(url) 17 18 def ReadSheet(self,sheetname,shuju):
19 """readsheet Sheet1 B1:B14 Author linsw""" 20 self.wsheet = self.wb.sheets(sheetname) 21 self.list1 = [] 22 self.list1 = self.wsheet.range(shuju).value 23 return self.list1 24 25 def SaveCloseExcel(self): 26 """SAVE yuanwenjian and quit Author linsw""" 27 self.wb.save() 28 self.wb.close() 29 self.app.quit() 30 31 def CloseExcel(self): 32 """quit excel Author linsw""" 33 self.wb.close() 34 self.app.quit() 35 36