zoukankan      html  css  js  c++  java
  • 一篇文章告诉你Python接口自动化测试中读取Text,Excel,Yaml文件的方法

    前言

    不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml。今天讲讲如何读取文件数据

    Python也可以读取ini文件,传送门

    记住一点:测试的数据是不能写死在代码里面的,这个是原则问题


    目录

    1.读取Text

    2.读取Excel

    3.读取Yaml

    读取Text

    需求:

    问题解析:

    1.打开txt文件

    2.读取每一行数据

    3.将文件存放在列表中(方便循环读取)

    #!/usr/bin/python3
    
    with open("E:/test.txt", "r") as f:
    
        #readlines读取文件内每一行数据
        for line in f.readlines():
            line = line.strip('
    ') #去掉列表中每一个元素的换行符
            # split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
            data = (line.split(","))
            print(data)

    运行结果:

    读取Excel

    小伙伴都知道,测试用例是写在Excel里的,如果是少量的用例很容易处理,如果用例成百上千条呢?

    自动化测试的话,需要对用例数据进行读取,那必须循环读取才可以实现自动化。那么问题来了,怎么做呢?

    用例如下图:

    问题解析:

    1、用列表存放这些用例数据,所以要用到列表

    2、每一行用例要存放在字典内,所以需要用到字典

    3、循环写入到字典,然后存放到列表内

    #!/usr/bin/python3
    
    import xlrd
    
    class excel_data:
        """读取excl表接口数据"""
    
        data_path = "E:\api_interface\data\interface.xlsx"
        # 打开文件
        excel = xlrd.open_workbook(data_path)
        # 通过下标定位表格
        sheet = excel.sheet_by_index(0)
        # 行: 6 和列数: 5
        rows, cols = sheet.nrows, sheet.ncols
        def read_excl(self):
            # 获取第一行数据key
            first_row = self.sheet.row_values(0)
            # print(first_row) # [编号,接口方式,host, params, result]
            # 定义空列表,用于存放用例数据
            self.result = []
            # 从第一行用例开始循环(1, 6)循环5次
            for i in range(1, self.rows):
                # 定义空字典
                info_dict = {}
                # 每1次大循环要循环5次(字典里有5组数据)
                for j in range(0, self.cols):
                    # j=0,1,2,3,4
                    # 添加到字典                                   (1)[0]---第2行第1例的值,依次循环
                    info_dict[first_row[j]] = self.sheet.row_values(i)[j]
             # 将数据存放在列表中 self.result.append(info_dict)
    print(self.result) if __name__ == "__main__": ex = excel_data() ex.read_excl()

    运行结果:


    读取Yaml

    yaml文件后缀名为yaml,如文名件.yaml

    yaml为第3方模块,需另行安装pip install pyyaml

    问题解析:

    1.定义文件地址

    2.打开yaml文件

    3.读取文件后转成字典以方便读取

    #!/usr/bin/python3
    
    
    import yaml
    import os
    
    
    # 获取当前脚本所在文件夹路径
    curPath = os.path.dirname(os.path.realpath(__file__))
    
    # 获取yaml文件路径
    yamlPath = os.path.join(curPath, "E:\api_interface\config\yaml.yaml")
    
    # open方法打开直接读出来
    open_file = open(yamlPath, 'r', encoding='utf-8')
    result = open_file.read()
    
    file_dict = yaml.load(result, Loader=yaml.FullLoader)  # 用load方法转字典
    print(file_dict)

     运行结果:


       如果对软件测试、接口测试、自动化测试、性能测试、持结集成、面试经验交流。感兴趣可以902061117,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家

  • 相关阅读:
    在数值中加入千位分隔符的方法
    用 Javascript 验证表单(form)中的单选(radio)值
    用 Javascript 验证表单(form)中多选框(checkbox)值
    用 CSS 实现图片替换文字(Image replacement)
    计算机技术分类
    最近好乱acm与数模时间重复了
    memcached Telnet Interface
    event_new
    event_base_loop
    event_base_loop
  • 原文地址:https://www.cnblogs.com/zzpython/p/13215483.html
Copyright © 2011-2022 走看看