本系列文默认各位有一定的测试理论基础、python基础
本系列文默认各位会百度,学习自动化系列的课程,默认各位已经配置好了相关环境,默认安装了编译器。
乘着冬日的寒风,在暴风雨中艰难的前行,自动化的第三天,我又姗姗来迟了
新来的朋友们,前面的知识点详见,今天我们要讲一下python读取文件的操作
https://blog.csdn.net/weixin_44602565/article/details/109561274
https://blog.csdn.net/weixin_44602565/article/details/110007436
1、读txt文件
这个很简单,方法如下:
read()-------读整个文件
readline()-------一行
创建一个test.txt的文件,文件内容有用户名,密码
with open('./test.txt','r')as f:#------------------相对路径打开这个文件,以读的方式打开
data=f.readlines()#-------读文件中的所有行的数据赋值给data,如果你接下来要用这些数据在进行登录操作的话,就去遍历一下data就行。自己写一下吧
2、读excel文件
安装openpyxl模块,pip一下,自己去安装
在本地创建一个test.xlsx的文件
import openpyxl
wb=openpyxl.load_workbook('test_case_api.xlsx')#-------这里报错找不到文件的话,把文件拖到你运行的目录下哈。
查看运行的目录
# import os
# os.getcwd()
打开完成以后,读文件
wb.sheetnames
# print(wb.sheetnames)
sheet=wb["register"]#这是我自己的文件有注册跟登录两个sheet页
sheet.title
#这里的方法现在都用这个,以前的.get_by_name()弃用了
从表中读取行和列,写两个for循环遍历一下,自己写。
3、读取csv文件
导入csv 库,没有的自己pip一下哦
import csv
with open('ceshi.csv',newline='',encoding='GBK')as f:
reader = csv.reader(f)
for row in reader:
print(row)
接下来重点来了,我们引入一下unittest的框架,主要还是便于我们查看日志,断言,执行用例。
比如我们写一个计算类,类里面有加法减法等不同的方法,创建一个calculator.py 的文件
class Calculator:
def __init__(self,a,b):
self.a=int(a)
self.b=int(b)
def add(self):
return self.a+self.b
def sub(self):
return self.a-self.b
通过unnitest来写我们的一个用例
import unittest
from calculator import Calculator
class Testcalculator(unittest.TestCase):
def test_add(self):
a=Calculator(2,3)
result=a.add()
self.assertEqual(result,5)
def test_sub(self):
a=Calculator(5,3)
result=a.sub()
self.assertEqual(result,2)
if __name__ == '__main__':
unittest.main()
unittest有几个重要的组成:
Test case:最小的测试单元
Test Suite:套件
Test Runner:查看结果的
Test Fixture:测试环境
用上面的封装一下,但是就是比上面还要麻烦了,但是在我们测试的时候,如果你不是每次都执行所有的测试用例,就要用套件
import unittest
from calculator import Calculator
class Testcalculator(unittest.TestCase):
def setUp(self):
print("测试开始")
def tearDown(self):
print("测试结束")
def test_add(self):
a=Calculator(2,3)
result=a.add()
self.assertEqual(result,5)
def test_sub(self):
a=Calculator(5,3)
result=a.sub()
self.assertEqual(result,2)
if __name__ == '__main__':
#创建测试套件
suit=unittest.TestSuite()
suit.addTest(Testcalculator("test_add"))
suit.subTest(Testcalculator("test_sub"))
#测试运行
runner=unittest.TextTestRunner()
runner.run(suit)
断言的一些方法有很多,这里自行百度一下,今天不想写了,后面接下来的一篇,我写一个完整的框架出来吧,最后再用python 自动发一个邮件。
转载:https://blog.csdn.net/weixin_44602565/article/details/110407247