python自动化测试学习遇到的编程问题:*arg是啥,python自动化测试将测试结果写入excel中【持续更新】

1.在一般方法中会有参数,比如index,i,j等等等...

但是有时候参数中会有*的写法,比如*arg,这个意思是0个或多个参数,可能某个方法体用到的参数比较多,而恰好这几个参数又是来自于同一个来源,比如来自同一个list或者是同一个dict,那么我们就定义*arg,等到真正传值的时候,再一一写进去。


2.将自动化测试结果写入excel中:

首先还是要import xlsxwriter

然后要注意一些常用的方法:

①创建一个excel:xl=xlsxwriter.Workbook(xx+'.xls')

②添加一个sheet:sheet=xl.add_wordsheet('sheetname')

③写单元格:sheet.write_string(i,j,'content')

④设置单元格大小:sheet.set_column('第一列名字:最后一列名字',size)

⑤设置excel样式:xl.add_format({'bg-color':'red'})

下面是我写的一个将测试结果写入excel的方法:

这是一个类 首先是它的初始化init方法,将一些必须的操作(创建excel,添加sheet,设置size,设置style)放在里面;然后我写了一个添加title的方法,这个title指的就是sheet表中的第一行表示每一列的名称;再然后写的是填入相应内容的方法,也就是从第二行开始,依次将第一行的各个值放进去,当然,因为数据会有好几组,所以每输入一行,row会递增,逐行增加;最后就是关闭掉我们的excel。

class Xlloginfo(object):
	def __init__(self, sheetname, path=''):
		fname = path + time.strftime('%Y-%m-%d', time.gmtime())
		self.row = 1
		self.xl = xlsxwriter.Workbook(path+fname+'.xls')
		self.sheet = self.xl.add_worksheet(sheetname)
		self.sheet.set_column('A:E', 30)
		self.style = self.xl.add_format({'bg_color':'#DC143C'})
		self.styleother = self.xl.add_format({'bg_color':'green'})

	def xl_title(self, *title):
		col=0
		row=0
		for val in title:
			self.sheet.write_string(row,col,val)
			col+=1

	def xl_write(self, *args):
		col=0
		style =''
		if 'Pass' in args:
			style = self.styleother 
		if 'Error' in args:
			style = self.style
		for val in args:
			self.sheet.write_string(self.row, col, val, style)
			col += 1
		self.row+=1

	def xl_close(self):
		self.xl.close()		

需要注意的是 在循环里面,row和col递增所放的位置,col的递增是在for循环里面的,即放入数据的时候,行是先不动的,列一列一列往后移,一组数据放完之后,row才会递增,所以说row的递增是放在for循环的外面的。如果两个的位置放混了,会导致excel表格中可能只出现一行数据,甚至是出现单元格内容排布的很奇怪的状况 。

好啦 学习的路还很长呢!

你可能感兴趣的:(excel,*arg,python)