zoukankan      html  css  js  c++  java
  • python接口自动化(三)——从excel中获取数据

    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
    

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

  • 相关阅读:
    慎用WSACleanup()
    WINAPI和APIENTRY是一样的
    LeetCode208:Implement Trie (Prefix Tree)
    C++学习笔记22,普通函数重载(1)
    代理server的理解(1):Windows环境下的代理server设置
    浅析android适配器adapter中的那些坑
    HTML网页之计算器代码
    Xcode 自己主动生成版本技术最佳实践
    封装RecyclerViewAdapter实现RecyclerView下拉刷新上拉载入很多其它
    Ubuntu下在Eclipse IDE for C/C++ Developers中怎样执行C语言的GTK程序?(已解决)
  • 原文地址:https://www.cnblogs.com/fccyccf/p/13745685.html
Copyright © 2011-2022 走看看