1. 程式人生 > >本人在python自動化測試編寫指令碼時遇到的一些與python程式設計有關的問題 總結記錄一下【持續更新】

本人在python自動化測試編寫指令碼時遇到的一些與python程式設計有關的問題 總結記錄一下【持續更新】

在學校裡學過C語言、C#、Java

沒有系統地學習過Python 但是有一些程式設計基礎 所以就直接上手編寫python指令碼了

因此,在這個過程中,學習了一段時間後,還是出現了一些和python程式設計有關的疑點和問題,現在在這裡總結記錄一下!

1.從.txt檔案中讀取資訊

一些網站資訊(比如url、元素id等等)讀取:

def get_web_info(path):
	web_info={}                                                 #定義一個空的字典 
	web_file=open(path)                                         #開啟一個路徑為path的txt檔案 如果列印的話 會出現txt檔案裡的所有內容
	for line in web_file:                                       #一行一行的遍歷txt檔案中的內容
		result=[ele.strip()for ele in line.split('=')]      #列表解析以'='符號為分隔,將遍歷的一行的內容放在一個數組裡,每一個result的形式都是[ , ]
		web_info.update(dict([result]))                     #將每次的result生成的列表,生成一個新字典,更新一開始定義的空字典web_info
	return web_info

python 程式設計知識點:

①dict()是創造一個新的字典 可以把列表放進去 但是要在原有的列表名外面加上'[]'符號,否則會報錯

②update()是字典的一個方法,新增字典裡的內容,括號裡放的還是一個字典

2.從excel檔案中讀取資訊(用例大多數都是寫在excel中):

class XlUserinfo(object):
	def __init__(self,index, path=''):
		self.xl=xlrd.open_workbook(path)
		self.sheet=self.xl.sheet_by_index(index)
	#浮點型轉為int型別字串
	def floattostr(self, val):
		if isinstance(val, float):
			val = str(int(val))
		return val
	def get_sheet_info(self):
		listkey = ['uname', 'pwd']
		infolist = []
		for row in range(1, self.sheet.nrows):
			info = [ self.floattostr(val) for val in self.sheet.row_values(row)]
			tmp = zip(listkey, info)
			infolist.append(dict(tmp))
		return infolist

①class類,方法上和Java差不多,Java的類下面會跟上一個和class類名相同的構造方法,而Python中會跟上一個初始方法init,這個方法在呼叫的時候是不需要特別的去宣告的,既然有了class類的物件,那麼這個init方法直接就被呼叫了,同時,python中想要使用一個類,不需要像Java一樣去new,直接'='就可以了

②兩個列表的zip()方法

可以將兩個列表組合一起dict生成一個新的字典,比如程式碼中的listkey=['uname','pwd']和(假設一個result)result=[[email protected],abc123],如果dict(zip(listkey,result))注意 一定要dict()才能生成一個新字典哦!,結果就是{uname:

[email protected],pwd:abc123}

③列表的append方法:在列表裡面新增新內容,可以把好幾個字典一起放在同一個列表中

④讀取excel用到的:

首先必須import xlrd

Ⅰ data=xlrd.xlrd.open_workbook(path)

Ⅱ sheet=data.sheet_by_index(index)

Ⅲ sheet.row_values(i) 第(i+1)行的所有內容

Ⅳ sheet.col_values(j) 第(j+1)列的所有內容

Ⅴ sheet.nrows 行數 sheet.ncols 列數

Ⅵ sheet.cell(i,j).value 某個單元格的值