1. 程式人生 > 實用技巧 >多測師講解python _unttest框架002(結合專案實戰)_高階講師肖sir

多測師講解python _unttest框架002(結合專案實戰)_高階講師肖sir

第一種呼叫方法:

if __name__ == '__main__':
# #第一種執行方法:執行所有的用例


import unittest
from selenium import webdriver
from time import sleep
#from ui_auto.HTMLTestRunnerCN import HTMLTestRunner #匯入HTMLTestRunner類==》用來生成測試報告的
import time

class Test_Baidu(unittest.TestCase):

def setUp(self): #方法開始
self.driver = webdriver.Chrome()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(20)

def test001(self): #一條用例
self.driver.find_element_by_id('kw').send_keys('duoceshi')
self.driver.find_element_by_id('su').click()

def test002(self): #一條用例
self.driver.find_element_by_id('kw').send_keys('selenium')
self.driver.find_element_by_id('su').click()
title = self.driver.title
self.assertEqual(title,u'百度一下,你就知道')
self.assertIn(title,u'百度一下,你就知道')
self.assertNotEqual(title,u'百度一下,你就知道123')

def tearDown(self): # 方法結束 注意和位置沒有關係的
sleep(3)
self.driver.close()
if __name__ == '__main__':
# #第一種執行方法:執行所有的用例
unittest.main()



第二種執行方法:可以選擇執行用例


#     # runner = unittest.TextTestRunner()
# #可以先定義一個普通函式
# # def all_case():
# # suite = unittest.TestSuite() #建立一個套件、或者說一個容器、作用就是用來裝所有的用例suite是一個物件
# # # suite.addTest(Test_Baidu('test001')) #把用例新增到套件裡面
# # # suite.addTest(Test_Baidu('test002'))
# # suite.addTests([Test_Baidu('test001'),Test_Baidu('test002')])
# # return suite #把裝滿了用例的suite套件返回給到函式的呼叫處

import unittest
from selenium import webdriver
from time import sleep
#from ui_auto.HTMLTestRunnerCN import HTMLTestRunner #匯入HTMLTestRunner類==》用來生成測試報告的
import time

class Test_Baidu(unittest.TestCase):

def setUp(self): #方法開始
self.driver = webdriver.Chrome()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(20)

def test001(self): #一條用例
self.driver.find_element_by_id('kw').send_keys('duoceshi')
self.driver.find_element_by_id('su').click()

def test002(self): #一條用例
self.driver.find_element_by_id('kw').send_keys('selenium')
self.driver.find_element_by_id('su').click()
title = self.driver.title
self.assertEqual(title,u'百度一下,你就知道')
self.assertIn(title,u'百度一下,你就知道')
self.assertNotEqual(title,u'百度一下,你就知道123')

def tearDown(self): # 方法結束 注意和位置沒有關係的
sleep(3)
self.driver.close()
#
# #定義一個普通函式
# # def all_case(): #一個套件中的測試用例
# # suite = unittest.TestSuite() #建立一個套件、或者說一個容器、作用就是用來裝所有的用例suite是一個物件
# # # suite.addTest(Test_Baidu('test001')) #把用例新增到套件裡面
# # # suite.addTest(Test_Baidu('test002'))
# # suite.addTests([Test_Baidu('test001'),Test_Baidu('test002')])
# # return suite #把裝滿了用例的suite套件返回給到函式的呼叫處

第三種呼叫方法:自動搜尋用例

第四種方法:


start_dir = r'D:\project\dcs2\ui_auto'
discover = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='less*.py') #中間* 是萬用字元
#1.定義生成的測試報告的名稱
path = r'C:\Users\Administrator\PycharmProjects\untitled\python+selenium'
now = time.strftime('%Y-%m-%d-%H-%M-%S')
filename = path + "\\" +str(now) + '_ui.html'
f = open(filename,'wb') #以二進位制的方式在...ui.html檔案中寫入報告模板和測試結果
runner = HTMLTestRunner(stream=f,
title=u'百度ui自動化測試報告',
description=u'用例執行情況如下:',
tester=u'王sir')
runner.run(discover)
f.close() #釋放資源、關閉檔案

表示全部執行成功,但是沒有報告

生成報告的流程: