当前位置 博文首页 > python读取测试数据的多种方式

    python读取测试数据的多种方式

    作者:也就那样吧_ 时间:2021-09-18 18:46

    目录
    • 一、通过创建.ini或.conf文件读取
    • 二、通过yaml文件读取
    • 三、通过excel读取

    一、通过创建.ini或.conf文件读取

    1、创建一个config.ini或者.conf文件,这种方法就是ini文件的读取,如下

    [api]
    url = www.taobao.com
    method = get
    [mysql]
    db=hello
    port=3306
    

    2、使用python的configparser库读取,代码如下

    from configparser import ConfigParser
    import os
    conn=ConfigParser()
    #获取ini文件的路径
    file_path = os.path.join(os.path.abspath('.'),'config.ini')
    conn.read(file_path)
    url=conn.get('api','url')
    method=conn.get('api','method')
    port=conn.get('mysql','port')
    print(url,method,port)
    

    3、运行得到如下的值,读取成功

    www.taobao.com get 3306

    二、通过yaml文件读取

    1、首先创建一个.yaml文件,这里我创建login_data.yaml,具体数据格式大家自行google,这里我随便编写一些数据

    -
      caseid: 1
      method: post
      title: 正常登录
      url: api/v1/login
      data:
        username: test
        password: 123456
      headers:
        Content-Type: application/json
        User-Agent: Mozilla/5.0
      expected: 0
    

    2、命令行通过pip install pyyaml安装yaml包,直接上代码

    import yaml
    def read_file(file_path):
        with open(file_path, 'r', encoding='utf-8') as f:
        res = yaml.load(f,Loader=yaml.FullLoader)
        return res
    if __name__ == '__main__':
        d = read_file(r'..\test_data\login\login_data.yml')
        print(d)
    

    3、运行结果如下,是一个列表

    [{'caseid': 1, 'method': 'post', 'title': '正常登录', 'url': 'api/v1/login', 'data': {'username': 'test', 'password': 123456}, 'headers': {'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0'}, 'expected': 0}]

    三、通过excel读取

    1、创建一个excel文件,随便写点数据

    2、通过pandas读取,当然还有其他的很多库,本人觉得这个最方便,直接转化成dict方便使用

    import pandas
    def excel_to_dic(filename):
        df = pandas.read_excel(filename)
        data_list = []
        for i in df.index.values:
            data = df.iloc[i, [j for j in range(len(df.keys()))]].to_dict()
            data_list.append(data)
        return data_list
    if __name__ == '__main__':
        file = r'C:\aaa.xlsx'#之前创建的文件地址
        data = excel_to_dic(file)
        print(data)
    
    
    

    3、运行结果如下

    [{'name': 'zhangsan', 'phone': 13112345678, 'age': 20}, {'name': 'lisi', 'phone': 13867543678, 'age': 30}, {'name': 'wangwu', 'phone': 15967845632, 'age': 40}]

    可以看出结果是把excel表中的每一行数据转换成了一个dict,更加方便以后使用!!!

    jsjbwy
    下一篇:没有了