接口测试入门(三)

在知道了测试用例的表后,我们所要做的最终目的就是:传入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.

 

posted @ 2019-03-07 16:27  魔法少女希维尔  阅读(226)  评论(0编辑  收藏  举报