自动化编程
自动化需掌握的小技巧
该自动化框架采用unittest框架,利用xlrd进行数据驱动,使该自动化环境更加完善;
数据驱动(xlrd模块)
##1.进行数据驱动必须掌握的基础:(此处使用xlrd模块帮助实现,当然还有其他如openxl等模块也能实现)
import xlrd #使用xlrd模块进行参数化
workbook = xlrd.open_workbook('..\\Parameterization\\zhanghao.xls') #打开我们的数据文档
test = workbook.sheets()[0] #直接获取第一个表格的内容,[0]为第一个表格,[1]为第二个表格
username = int(test.cell_value(0,0)) #获取excel表格中A1单元格内容,由于此处获取的数字为float浮点型,因此转换为int整数型
password = int(test.cell_value(0,1)) #获取excel表格中B2单元格内容,此处的坐标轴计算以纵坐标在前
2.xlrd深入探究:
**2.1 获取每一行(row)、每一列(col)的数据:**
import xlrd
workbook = xlrd.open_workbook('.\\test.xls')
table = workbook.sheets()[0]
value1 = table.row_values(0) #获取了第1行的所有数据,会显示多个数据,显示如[111,454,115,5151]
value2 = table.col_values(0) #获取了第1列的所有数据,会显示多个数据,显示如[515,551,484,8948]
for i in value1: #把上面第1行的数据,逐个进行打印
print(i)
for t in value2: #把上面第1列的数据,逐个进行打印
print(t)
**2.2 遍历sheet1中所有单元格cell**
workbook = xlrd.open_workbook('.\\test.xls') 获取Excel文件对象
worksheet1 = workbook.sheets()[0] #获取第一个表格对象
num_rows = worksheet1.nrows #获取表格的行数
num_cols = worksheet1.ncols #获取表格的列数
-----------------------------
for rown in range(num_rows):
for coln in range(num_cols):
cell = worksheet1.cell_value(rown,coln)
print(cell)
**2.3 xlrd具体操作命令:**
print(table.row_values(0)) #获取第n行的值 若是合并单元格 首行显示值 其它为空
table = workbook.sheet_names()[0] #此处直接获取第一个表格的名称
test=workbook.sheet_by_name(table) #通过名称获取工作表的内容
test = workbook.sheets()[0] #直接获取第一个表格的内容
a=test.cell(1,3) #获取test表格内单元格(1,3)的数据类型及值ru
b= test.cell_value(0,1) #获取test表格内单元格(0,1)的值
nrows=table.nrows # 获取表的行数
value2 = table.col_values(0) #获取第几列的所有数据
value1 = table.row_values(0) #获取第几行的所有数据
3.写EXCEL:(使用xlwt模块进行写excel)
import xlwt
#创建workbook和sheet对象
workbook=xlwt.Workbook() #创建对象;注意Workbook的开头W要大写
sheet1=workbook.add_sheet("name1") #创建表1,名“name1”
sheet2=workbook.add_sheet("name2) #创建表2,名"name2"
#向sheet页中写入数据
sheet1.write(0,0,"aaaaaa") #向表1单元格(0,0)写入“aaaaaa”
sheet2.write(0,0,"bbbbb") #向表2单元格(0,0)写入“bbbbb”
#保存该excel文件,有同名文件时直接覆盖
workbook.save("E:\egg.xls")
print "ok"