Python基礎之常用庫常用方法整理
一、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')
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常用庫常用方法整理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python中unittest框架應用詳解
- python unittest單元測試的步驟分析
- 基於Python的接口自動化unittest測試框架和ddt數據驅動詳解
- Appium+Python實現簡單的自動化登錄測試的實現
- 教你怎麼用python selenium實現自動化測試