一篇文章告訴你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('\n') #去掉列表中每一個元素的換行符
        # 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)

 運行結果:


   如果對軟件測試、接口測試、自動化測試、性能測試、持結集成、面試經驗交流。感興趣可以893694563,群內會有不定期的發放免費的資料鏈接,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會注明出處之后分享給大家


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM