Python自动化测试Text,Excel,Yaml文件读取

前言

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

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

结构目录

在这里插入图片描述

封装目录地址 

  1. #! /usr/bin/python3

  2. # @Author :

  3. from pathlib import Path

  4. class ReadPath():

  5. """基本路径"""

  6. BasePath = Path(__file__).resolve().parents[1]

  7. # print(BasePath)

  8. def ini_path(self):

  9. """获取ini文件目录"""

  10. ini_path = ReadPath.BasePath/"data"/"test.ini"

  11. # print(ini_path)

  12. return ini_path

  13. def excel_path(self):

  14. """获取excel文件目录"""

  15. excel_path = ReadPath.BasePath/"data"/"test.xlsx"

  16. # print(excel_path)

  17. return excel_path

  18. def yaml_path(self):

  19. """获取yaml目录"""

  20. yaml_path = ReadPath.BasePath/"data"/"test.yaml"

  21. # print(yaml_path)

  22. return yaml_path

读取Text

需求:

在这里插入图片描述

问题解析

1.打开txt文件

2.读取每一行数据

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

  1. #!/usr/bin/python3

  2. with open("E:/test.txt", "r") as f:

  3. #readlines读取文件内每一行数据

  4. for line in f.readlines():

  5. line = line.strip('\n') #去掉列表中每一个元素的换行符

  6. # split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

  7. data = (line.split(","))

  8. print(data)

运行结果:

在这里插入图片描述

读取Excel

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

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

用例如下图:

在这里插入图片描述

问题解析

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

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

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

  1. #! /usr/bin/python3

  2. # @Author

  3. import xlrd # pip install xlrd==1.2.0 最新版本不支持xlsx

  4. from base.base_path import ReadPath

  5. class ExcelData:

  6. """读取excl表接口数据"""

  7. def __init__(self):

  8. # 打开文件

  9. self.excel = xlrd.open_workbook(ReadPath().excel_path())

  10. # 通过下标定位表格

  11. self.sheet = self.excel.sheet_by_index(0)

  12. # 行: 4 和列数: 5

  13. self.rows, self.cols = self.sheet.nrows, self.sheet.ncols

  14. print(self.rows, self.cols)

  15. def read_execl(self):

  16. # 获取第一行数据key

  17. first_row = self.sheet.row_values(0)

  18. # print(first_row) # [编号,method,host, params, result]

  19. # 定义空列表,用于存放用例数据

  20. self.result = []

  21. # 从第一行用例开始循环(1, 4) 循环三次1,2,3

  22. for i in range(1, self.rows):

  23. # 定义空字典

  24. info_dict = {}

  25. # 每1次大循环要循环5次(字典里有5组数据)

  26. for j in range(0, self.cols):

  27. # j=0,1,2,3,4

  28. # 添加到字典 (1)[0]---第2行第1例的值,依次循环

  29. info_dict[first_row[j]] = self.sheet.row_values(i)[j]

  30. self.result.append(info_dict)

  31. print(self.result)

  32. return self.result

  33. if __name__ == "__main__":

  34. ex = ExcelData()

  35. ex.read_execl()

运行结果:

在这里插入图片描述

读取Yaml

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

  1. send_mail:xxxxxx@qq.com

  2. send_code:ibzwpvisjyhrbhcb

  3. get_mail:oooooo@qq.com

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

问题解析

1.定义文件地址

2.打开yaml文件

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

  1. #! /usr/bin/python3

  2. # @Author

  3. from base.base_path import ReadPath

  4. import yaml

  5. class ReadYaml():

  6. def __init__(self):

  7. # 获取yaml路径

  8. self.yaml_path = ReadPath().yaml_path()

  9. def read_yaml(self):

  10. # open方法打开直接读出来

  11. file = open(self.yaml_path, 'r', encoding='utf-8')

  12. result = file.read()

  13. dict = yaml.load(result, Loader=yaml.FullLoader) # 用load方法转字典

  14. print(dict)

  15. return

  16. read = ReadYaml()

  17. read.yaml_path()

运行结果:

在这里插入图片描述

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值