当前位置 博文首页 > 文章内容

    python接口自动化(三)——从excel中获取数据

    作者: 栏目:未分类 时间:2020-09-28 17:01:28

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    python接口自动化(三)——从excel中获取数据

    1、按照之前的设计思路,我们需要从excel中去获取测试用例,所我们先封装一个获取数据的工具

    from Data.with_config import *
    from api_gj.with_excel import with_excel
    from api_gj.with_json import open_json
    class GetData:
    
        def __init__(self):
            self.read_excel = with_excel()
    
        #获取数据量(行数)
        def get_case_lines(self):
            return self.read_excel.get_lines()
    
        #获取是否运行
        def get_if_run(self, row):
            col = int(if_run())
            run_model = self.get_case_cell(row, col)
            if run_model == 'Y':
                return run_model
            else:
                return None
    
        #获取是否携带header
        def get_if_header(self, row):
            col = int(get_data())
            header = self.get_case_cell(row, col)
            if header != 'None':
                return header
            else:
                return None
    
        #判断请求方式
        def get_request_methed(self, row):
            col = int(run_way())
            methed = self.get_case_cell(row, col)
            return methed
    
        #获取url
        def get_request_url(self, row):
            col = int(get_url())
            url = self.get_case_cell(row, col)
            return url
    
        #获取请求数据
        def get_request_data(self, row):
            col = int(get_data())
            data = self.get_case_cell(row, col)
            return data
    
        #通过关键字拿到json数据
        def get_json_data(self, row):
            opera_json = open_json('aaaa.json')
            data = self.get_request_data(row)
            if data == 'None':
                request_data = None
            else:
                request_data = opera_json.get_data(data)
            return request_data
    
        #获取预期结果
        def get_expcet_reult(self, row):
            col = int(get_expect())
            request_reult = self.get_case_cell(row, col)
            if request_reult == 'None':
                return None
            else:
                return request_reult
    
        #获取某一单元格的内容
        def get_case_cell(self, row, col):
            return self.read_excel.get_cell_data(row, col)
    
        #获取数据字典
        def get_data_dict(self):
            return self.read_excel.to_dict()
    

    2、由于excel中表头中的字段较多,且是固定的,所以传入获取数据的时候传入的列的参数可以做一个转换:

    #coding:utf-8
    
    class global_var:
        #case_id
        Id = '0'
        name = '1'
        url = '2'
        run = '3'
        request_way = '4'
        header = '5'
        case_depend = '6'
        data_depend = '7'
        field_depend = '8'
        data ='9'
        expect = '10'
        result = '11'
    
    #获取case_id
    def get_id():
        return global_var.Id
    
    #获取url
    def get_url():
        return global_var.url
    
    #获取是否运行
    def if_run():
        return global_var.run
    
    #获取request_way(运行方式)
    def run_way():
        return global_var.request_way
    
    #获取header
    def get_header():
        return global_var.header
    
    #获取case_depend
    def case_depend():
        return global_var.case_depend
    
    #获取data_depend
    def data_depend():
        return global_var.data_depend
    
    #获取field_depend
    def field_depend():
        return global_var.field_depend
    
    #获取data
    def get_data():
        return global_var.data
    
    #获取expect(预期结果)
    def get_expect():
        return global_var.expect
    
    #获取result(返回结果)
    def get_result():
        return global_var.result
    

      将这两部分代码合起来看就容易懂很多,主要是为了便捷传入对应的‘’列数‘’可以获取到对应的字段