• 接口自动化实现用例可配置


    首先说下为什么要做用例可配置,有时候跑测试用例,并不需要全部都运行一遍,只需要运行部分用例就行了。这个时候就需要你在设计用例的时候,做到用例可配置化。说白点就是可以选择执行部分用例,或者默认运行全部测试用例。

    假设我有测试数据如下,里面有cese_id,method,url,data,headers,expected:

    现在我要根据case_id来判断只运行2条测试用例,或者1条用例。怎么做呢?

    首先创建一个以.config结尾的配置文件,内容如下图所示:

    不要问我为啥这么写,这是配置文件的固定格式。

    接下来写一个读取配置文件的方法:配置文件要和读取配置文件的方法放在一起,否则会报文件找不到的错误

    读取结果如图所示:

    代码如下:

    import configparser


    class ReadConfig():
    '''读取配置文件,需要传递3个参数,配置文件路径,section,option'''
    def read_config(self,file_path,section,option):
    cf = configparser.ConfigParser()
    cf.read(file_path,encoding='utf-8')
    return cf.get(section,option)

    if __name__ == '__main__':
    print(ReadConfig().read_config(r'D:Fileyoyo_apiconfhost.config','MODE','mode'))

    如图:配置文件的section,option

    最后在返回数据前面加上判断:判断mode如果等于all,就执行全部用例。如果mode等于列表,就判断传入列表是否在case_id中,最后在执行要执行的用例。

    执行结果如下图所示,只运行了第一条和第三条用例:

    代码如下:

    from openpyxl import load_workbook
    from API_AUTO.tools.read_conf import ReadConfig
    
    
    class ReadExcel():
        def get_data(self, file_path, sheet_name):
            '''获取数据'''
            # 从配置文件读取值
            mode = ReadConfig().read_config('case.config', 'MODE', 'mode')
            wb = load_workbook(file_path)
            sheet = wb[sheet_name]
            test_data = []
            for i in range(2, sheet.max_row + 1):
                row_data = {}
                row_data['case_id'] = sheet.cell(i, 1).value
                row_data['method'] = sheet.cell(i, 2).value
                row_data['login_url'] = sheet.cell(i, 3).value
                row_data['login_data'] = sheet.cell(i, 4).value
                row_data['title'] = sheet.cell(i, 5).value
                test_data.append(row_data)
                if mode == 'all':
                    final_data = test_data
                else:
                    final_data = []
                    for item in test_data:
                        if item['case_id'] in eval(mode):
                            final_data.append(item)
            return final_data
    
    
    if __name__ == '__main__':
        data = ReadExcel().get_data('test_data.xlsx', 'login')
        for i in data:
            print(i.items())
  • 相关阅读:
    SAS学习笔记27 卡方检验
    SAS学习笔记26 方差分析
    SAS学习笔记25 t检验(单个样本t检验、配对样本t检验、两个独立样本t检验及方差不齐时的t'检验)
    SAS学习笔记23 线性回归、多元回归
    HTML canvas画布
    HTML 新全局特性
    MYSQL数据库学习(五)如何自定义函数
    什么是单机结构?什么是集群?什么是分布式?
    MYSQL数据库学习(四)如何备份还原数据库
    MYSQL数据库学习(三)关于DML操作
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/12068540.html
Copyright © 2020-2023  润新知