接口测试入门(三)
在知道了测试用例的表后,我们所要做的最终目的就是:传入case_id,通过不同的方法,拿到这条case 所有的值并做判断。
所以对表传入case_id的操作,其实只是知道了对应行的内容,通过不同方法拿到对应行对应列的内容。
可以设置一个基础的取对应列的方法:
1 class global_var: 2 #case_id 3 Id = '0' 4 request_name = '1' 5 url = '2' 6 run = '3' 7 request_way = '4' 8 header = '5' 9 case_depend = '6' 10 data_depend = '7' 11 field_depend = '8' 12 data = '9' 13 expect = '10' 14 result = '11' 15 #获取caseid 16 def get_id(): 17 return global_var.Id 18 19 #获取url 20 def get_url(): 21 return global_var.url 22 23 def get_run(): 24 return global_var.run 25 26 def get_run_way(): 27 return global_var.request_way 28 29 def get_header(): 30 return global_var.header 31 32 def get_case_depend(): 33 return global_var.case_depend 34 35 def get_data_depend(): 36 return global_var.data_depend 37 38 def get_field_depend(): 39 return global_var.field_depend 40 41 def get_data(): 42 return global_var.data 43 44 def get_expect(): 45 return global_var.expect 46 47 def get_result(): 48 return global_var.result 49 50 def get_header_value(): 51 return global_var.header
这样就能知道能够通过方法获取行号,之后就可以再封装方法,可以通过case_id(也就是行号),找到行。再直接使用以上方法的列号,直接编写获得所需单元格的信息和返回数据。例如:
class GetData: def __init__(self): self.opera_excel = OperationExcel() #去获取excel行数,就是我们的case个数 def get_case_lines(self): return self.opera_excel.get_lines() #获取是否执行 def get_is_run(self,row): flag = None col = int(data_config.get_run()) run_model = self.opera_excel.get_cell_value(row,col) if run_model == 'yes': flag = True else: flag = False return flag #是否携带header def is_header(self,row): col = int(data_config.get_header()) header = self.opera_excel.get_cell_value(row,col) if header != '': return header else: return None #获取请求方式 def get_request_method(self,row): col = int(data_config.get_run_way()) request_method = self.opera_excel.get_cell_value(row,col) return request_method #获取url def get_request_url(self,row): col = int(data_config.get_url()) url = self.opera_excel.get_cell_value(row,col) return url #获取请求数据 def get_request_data(self,row): col = int(data_config.get_data()) data = self.opera_excel.get_cell_value(row,col) if data == '': return None return data #通过获取关键字拿到data数据 def get_data_for_json(self,row): opera_json = OperetionJson() request_data = opera_json.get_data(self.get_request_data(row)) return request_data #获取预期结果 def get_expcet_data(self,row): col = int(data_config.get_expect()) expect = self.opera_excel.get_cell_value(row,col) if expect == '': return None return expect #通过sql获取预期结果 def get_expcet_data_for_mysql(self,row): op_mysql = OperationMysql() sql = self.get_expcet_data(row) res = op_mysql.search_one(sql) return res.decode('unicode-escape') def write_result(self,row,value): col = int(data_config.get_result()) self.opera_excel.write_value(row,col,value) #获取依赖数据的key def get_depend_key(self,row): col = int(data_config.get_data_depend()) depent_key = self.opera_excel.get_cell_value(row,col) if depent_key == "": return None else: return depent_key #判断是否有case依赖 def is_depend(self,row): col = int(data_config.get_case_depend()) depend_case_id = self.opera_excel.get_cell_value(row,col) if depend_case_id == "": return None else: return depend_case_id #获取数据依赖字段 def get_depend_field(self,row): col = int(data_config.get_field_depend()) data = self.opera_excel.get_cell_value(row,col) if data == "": return None else: return data
通过以上的方法,就可以拿到单元格的值。一层一层的调用Excel里面的数据,现在还需要做的就是知道获得的数据,对数据进行操作,post到服务器,并对返回的数据判断pass或者fail.