Python基础之常用库常用方法整理


Posted in Python onApril 30, 2021

一、os

__file__      
获取当前运行的.py文件所在的路径(D:\PycharmProjects\My_WEB_UI\ConfigFiles\ConfigPath.py)

os.path.dirname(__file__)
上面正在运行的.py文件的上一级(D:\PycharmProjects\My_WEB_UI\ConfigFiles)

os.path.join(xxx,u'ConfigFiles\elementLocation.ini')
在已获得的路径xxx上加上\ConfigFiles\elementLocation.ini

二、configparser

config = configparser.ConfigParser()
创建一个configparser对象

config.read(filename)
读取ini文件,filename为ini文件的路径

config.sections()
得到ini文件内的所有的section,以列表的形式返回

config.items(sectionName)
根据section的name得到其下的所有键值对,再用dict(config.items(sectionName))封装为字典形式

三、openpyxl

wb = load_workbook('a.xlsx')
读取文件a.xlsx

sheet = wb[sheetname]
根据名字拿到xlsx文件里对应的页

sheet.max_row
获取当前页的最大行数

sheet.max_column
获取当前页的最大列数

sheet.cell(row = xxx,column = xxx).value
获取单元格(xxx,xxx)中的值

sheet.cell(row = xxx,column = xxx).value =aa     #修改单元格里的值
wb.save(a.xlsx的路径名)                           #修改完要保存一下,否则修改不生效

openpyxl库中没有方法来获取去某一行的值,可以自定义:

row_data = []
for i in range(1,sheet.max_column+1):             #注意遍历列的时候从1开始
     cell_value = sheet.cell(row = xxx,column = i).value         #xxx就为具体想要获取的行
     row_data.append(cell_value)

四、loguru

logger.debug('this is a debug message')
logger.info('this is a info message')
logger.warning('this is a warning message')
logger.error('this is a error message')
logger.success('this is a success message')
logger.critical('this is a critical message')

Python基础之常用库常用方法整理

logger.add('xxx.log') 
在当前同级目录下创建一个xxx.log文件,并将接下来的日志打印到xxx.log里面

logger.add('lowPath/xxx.log')
在当前目录下创建一个文件夹lowPath,在其中创建xxx.log文件

logger.add(otherPath+'/xxx.log')
事先获取其他的目录otherPath,在otherPath下创建xxx.log

五、time

time.sleep(2)
强制休眠两秒

time.strftime('%Y-%m-%d_%H-%M-%S')
接受当前时间元组,并最终返回对应格式的字符串

六、unittest

基本概念:
testcase 测试用例,以test开头,执行顺序会按照方法名的ASCII码值来排序
test suite 测试套件,testloader把需要一起执行的测试用例加载到套件中,然后一起执行
test runner 执行测试用例并返回测试结果
test fixture 测试固件,对一个测试用例环境的搭建和销毁

常见断言: assertEqual(a,b,msg=None) 判断a和b是否相等 assertNotEqual assertTrue(a)
判断a是否为True assertFalse assertIs(a,b)
判断a is b assertIsNot assertIsNone(a)
判断a is None assertIsNotNone assertIn(a,b)
判断a in b assertNotIn assertIsInstance(a,b)
判断a是不是b的实例 assertIsNotInstance 断言失败会报AssertionError的错

编写测试用例

class TestDemo(unittest.TestCase):
继承unittest模块里的TestCase

		def setUp(self) 
		准备环境,执行测试用例的前置条件

		def tearDown(self)
		环境还原,执行测试用例的后置条件

 		def test_01(self)
 		测试用例1
 		
 if __name__ == '__main__':
       unittest.main()
       执行当前文件以test开头的测试用例
 
 ########################################以下是实例##############################################
import time
import unittest

from selenium import webdriver

from Modules.LoginAction import LoginAction


class Login_test(unittest.TestCase):

    def setUp(self):
        '''
        准备好环境,执行测试用例的前置条件
        :return:
        '''
        self.driver = webdriver.Chrome()
        self.driver.get('https://mail.163.com/')
        self.driver.maximize_window()

    def tearDown(self):
        time.sleep(2)
        self.driver.quit()

    def test_01(self):
        loginAction = LoginAction()
        loginAction.do_login(self.driver, 'lsqtester001', 'qwer123')
        time.sleep(2)
        self.assertIn('lsqtester002',self.driver.page_source)

if __name__ == '__main__':
    unittest.main()

组织测试用例

suit = unittest.TestSuite()
定义一个测试套件

suit.addTest(Login_test('test_01'))
向套件中添加测试用例

runner = unittest.TextTestRunner()
runner.run(suit)
定义testrunner并执行已加入测试套件的测试用例

loader = unittest.TestLoader()
定义一个testloader对象
suit.addTest(loader.discover(TestcasesPath,pattern='Unittest*.py'))
根据条件将测试用例加载到套件中


########################################以下是实例##############################################
import unittest

from ConfigFiles.ConfigPath import TestcasesPath
from TestCases.Unittest_login import Login_test



if __name__ == '__main__':
    # suit = unittest.TestSuite()
    # #向套件中添加测试用例
    # suit.addTest(Login_test('test_01'))
    # suit.addTest(Login_test('test_02'))
    #
    # runner = unittest.TextTestRunner()
    # runner.run(suit)

    '''
    用discover来组织测试用例
    discover(dir,pattern='Unittest*.py',top_level_dir=None)
    dir就是存放写用例的python文件的具体路径
    pattern就是在目录dir下找形式如同Unittest*.py这样的文件
    如果符合条件的.py文件里有load_test这个函数的话,就会加载该文件里的测试用例
    如果不存在load_test函数的话,就会默认加载文件里以test开头的测试用例函数
    '''
    suit = unittest.TestSuite()
    loader = unittest.TestLoader()
    suit.addTest(loader.discover(TestcasesPath,pattern='Unittest*.py'))

    runner = unittest.TextTestRunner()
    runner.run(suit)

到此这篇关于Python基础之常用库常用方法整理的文章就介绍到这了,更多相关Python常用库常用方法整理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现把xml或xsl转换为html格式
Apr 08 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
python list排序的两种方法及实例讲解
Mar 20 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
在python中实现强制关闭线程的示例
Jan 22 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
pandas分区间,算频率的实例
Jul 04 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python 通过手机号识别出对应的微信性别(实例代码)
Dec 22 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
Django路由层如何获取正确的url
Jul 15 Python
Django 实现jwt认证的示例
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 #Python
python绘图subplots函数使用模板的示例代码
教你怎么用Python处理excel实现自动化办公
解决python绘图使用subplots出现标题重叠的问题
python数据库批量插入数据的实现(executemany的使用)
Apr 30 #Python
Python如何把不同类型数据的json序列化
Apr 30 #Python
You might like
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
9种python web 程序的部署方式小结
2014/06/30 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
python 实现return返回多个值
2019/11/19 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
打印机墨盒:123Inkjets
2017/02/16 全球购物
Servlet面试题库
2015/07/18 面试题
行政专员的岗位职责
2014/03/10 职场文书
班级寄语大全
2014/04/10 职场文书
三方协议书范本
2014/04/22 职场文书
代理协议书
2014/04/22 职场文书
创先争优一句话承诺
2014/05/29 职场文书
软环境建设心得体会
2014/09/09 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
python中的被动信息搜集
2021/04/29 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
python 镜像环境搭建总结
2022/09/23 Python