本系列文默认各位有一定的测试理论基础、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