欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一起学python自动化

程序员文章站 2022-06-27 17:58:47
本系列文默认各位有一定的测试理论基础、python基础本系列文默认各位会百度,学习自动化系列的课程,默认各位已经配置好了相关环境,默认安装了编译器。乘着冬日的寒风,在暴风雨中艰难的前行,自动化的第三天,我又姗姗来迟了新来的朋友们,前面的知识点详见,今天我们要讲一下python读取文件的操作https://blog.csdn.net/weixin_44602565/article/details/109561274https://blog.csdn.net/weixin_44602565/ar....

本系列文默认各位有一定的测试理论基础、python基础
本系列文默认各位会百度,学习自动化系列的课程,默认各位已经配置好了相关环境,默认安装了编译器。

乘着冬日的寒风,在暴风雨中艰难的前行,自动化的第三天,我又姗姗来迟了
一起学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