def read_data(self,section):#section 配置文件里面的片段名 可以根据你的指定来执行具体的用例 '''从Excel读取数据,有返回值''' case_id =ReadConfig(project_path.conf_path).get_data(section,'case_id') wb = load_workbook(self.file_name) sheet = wb[self.sheet_name] # 唯一的要求是什么?每一行数据要在一起{} [] () # 如何把每一行的数据存在一个空间里面去?[] # 开始读取数据 # 获取存在Excel里面的手机号码 tel=self.get_tel()#自己传递表单进来 test_data = [] for i in range(2, sheet.max_row + 1): row_data = {} row_data['CaseId'] = sheet.cell(i, 1).value row_data['Module'] = sheet.cell(i, 2).value row_data['Title'] = sheet.cell(i, 3).value row_data['Url'] = sheet.cell(i, 4).value row_data['Method'] = sheet.cell(i, 5).value if sheet.cell(i, 6).value.find('tel')!=-1:#注意这个方法的使用以及返回值 也可以用成员运算符 row_data['Params'] = sheet.cell(i, 6).value.replace('tel',str(tel))#替换值tel self.updata_tel(int(tel)+1) else:#如果没有tel这个子字符串 就不需要去替换了 row_data['Params'] = sheet.cell(i, 6).value row_data['sql'] = sheet.cell(i, 7).value # 加上去的sql语句 row_data['ExpectedResult'] = sheet.cell(i, 7).value test_data.append(row_data) wb.close() final_data=[] # 空列表 存储最终的测试用例数据 if case_id == 'all': # 如果case_id==all 那就获取所有的用例数据 final_data=test_data # 把测试用例赋值给final_data这个变量 else: # 否则 如果是列表 那就获取列表里面指定id的用例数据 for i in case_id: # 遍历case_id 里面的值 final_data.append(test_data[i - 1]) # ? 对应关系?? return final_data
def do_mysql(self,query,flag=1): ''' :query表示sql查询语句 :flag 标志1 获取一条数据 2获取多条数据''' db_config=ReadConfig(project_path.conf_path).get_data('DB','db_config') cnn=pymysql.connect(**db_config)#建立一个连接 cursor=cnn.cursor()#获取游标,获取操作数据库的权限 cursor.execute(query)#执行查询语句 if flag==1: res=cursor.fetchone()#获取查询结果并且打印结果 else: res=cursor.fetchall() return res
def read_data(self): '''从excle读取数据,有返回值''' #从配置文件里面控制读取那些用例 case_id = ReadConfig(project_path.conf_new_path).get_data( 'CASEID', 'case_id') #section是配置里面的片段名,可以根据你的指定来测试具体的用例 wb = load_workbook(self.file_name) #打开excle工作簿 # 唯一的要求是什么?每一行数据要在一起 {} [] # 如何把每一行的数据存到一个空间里面去? [] # 开始读取数据 # 获取存在excel里面的电话号码 tel = self.get_tel() final_data = [] # 空列表 储存最终的测试用例数据 for key in case_id: sheet_name = key #字典的key就是表单名 sheet = wb[sheet_name] #获取一个表单对象 test_data = [] # 存储每个表单的数据 for i in range(2, sheet.max_row + 1): row_data = {} #存放每一行的数据 row_data['CaseId'] = sheet.cell(i, 1).value row_data['Module'] = sheet.cell(i, 2).value row_data['Title'] = sheet.cell(i, 3).value row_data['Url'] = sheet.cell(i, 4).value row_data['Method'] = sheet.cell(i, 5).value if sheet.cell(i, 6).value.find('tel') != -1: #注意find这个方法的使用以及返回值 row_data['Params'] = sheet.cell(i, 6).value.replace( 'tel', str(tel)) self.update_tel(int(tel) + 1) #注意 这里的tel获取的是字符串类型 else: # 如果没有tel这个子字符串 就不需要去替换了 row_data['Params'] = sheet.cell(i, 6).value row_data['ExpectedResult'] = sheet.cell(i, 7).value row_data[ 'sheet_name'] = key # 这里做个表单存储~~方便后面确定到底是执行哪个模块的用例写到哪些结果里面去 test_data.append(row_data) #完成用例的可配置化 if case_id[key] == 'all': #如果case_id==all,那就获取所有测试用例 final_data.extend(test_data) #把测试用例赋值给final_data这个变量 else: #否则,如果是列表,那就获取列表里面指定id的用例数据 for i in case_id[key]: final_data.append(test_data[i - 1]) #?对应关系?? wb.close() return final_data
def do_mysql(self, query, flag=1): ''' :query sql查询语句 :flag 标志 1 获取一条数据 2获取多条数据''' db_config = ReadConfig(project_path.conf_path).get_data( 'DB', 'db_config') cnn = connector.connect(**db_config) #建立一个链接 cursor = cnn.cursor() cursor.execute(query) if flag == 1: res = cursor.fetchone() #返回的元组 else: res = cursor.fetchall() #返回的是列表嵌套元组 return res
def read_data(self, section): '''从excle读取数据,有返回值''' #从配置文件里面控制读取那些用例 case_id = ReadConfig(project_path.conf_path).get_data( section, 'case_id') #section是配置里面的片段名,可以根据你的指定来测试具体的用例 try: wb = load_workbook(self.file_name) #打开excle工作簿 global sheet #声明sheet为全局变量 sheet = wb[self.sheet_name] #定位表单 except Exception as e: print('发生错误{}'.format(e)) #每一行数据要在一起[]{} #每一行数据存到一个空间里 #开始读数据 tel = self.get_tel() test_data = [] #存放所有数据 for i in range(2, sheet.max_row + 1): row_data = {} #存放每一行的数据 row_data['CaseId'] = sheet.cell(i, 1).value row_data['Module'] = sheet.cell(i, 2).value row_data['Title'] = sheet.cell(i, 3).value row_data['Url'] = sheet.cell(i, 4).value row_data['Method'] = sheet.cell(i, 5).value if sheet.cell(i, 6).value.find('tel') != -1: #注意find这个方法的使用以及返回值 row_data['Params'] = sheet.cell(i, 6).value.replace( 'tel', str(tel)) self.update_tel(int(tel) + 1) #注意 这里的tel获取的是字符串类型 else: row_data['Params'] = sheet.cell(i, 6).value row_data['Sql'] = sheet.cell(i, 7).value row_data['ExpectedResult'] = sheet.cell(i, 8).value test_data.append(row_data) #把每一行的数据放到一个列表 wb.close() #完成用例的可配置化 final_data = [] #空列表 储存最终的测试用例数据 if case_id == 'all': #如果case_id==all,那就获取所有测试用例 final_data = test_data #把测试用例赋值给final_data这个变量 else: #否则,如果是列表,那就获取列表里面指定id的用例数据 for i in case_id: final_data.append(test_data[i - 1]) return final_data