【软件测试】使用类反射结合python的第三方库xlrd,动态引入测试数据,进行自动化测试
#导包
import xlrd
import sys
class readexcel:
def read(self, path, index=0):
#打开Excel文件
book = xlrd.open_workbook(path)
#通过索引顺序获取表格
sheet = book.sheets()[index]
#返回值为存放测试用例的表格
return sheet
#实例化readexcel类
re = readexcel()
#调用read方法,并传入excel文件所在的路径
table = re.read(r'guaishounan.xlsx')
for row in range(1,table.nrows):
#PS:cases为存放测试用例模块的包名,li[1]为测试用例模块名,li[2]为测试用例类名,li[3]为测试用例方法名,在Excel文件中定义的时候,一定要定义正确!
#获取Excel文件中的每一行内容
li = table.row_values(row)
# 动态引入
__import__('cases.'+li[1])
# 加载到内存
mod = sys.modules['cases.'+li[1]]
# 通过类反射方法getattr()找到类
obj = getattr(mod,li[2])
# 在类的对象里找对应的方法
mtd = getattr(obj(),li[3])
#调用方法
mtd(li)