編寫Web測試用例python
1.介紹了unittest單元測試框架,其主要是來運行Web自動化測試腳本。簡單的規劃一下測試目錄:
web_demo1/
------test_case/
------------test_baidu.py
------------test_google.py
------report/
------------login.txt
------runtest.py
目錄結構以下圖所示:web
建立web測試用例。框架
#test_baidu.py
#coding:utf-8
from selenium import webdriver
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="http://www.baidu.com"
def test_baidu(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,u"unittest_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
#test_google.py
#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="https://www.google.com"
def test_google(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_name("q").clear()
driver.find_element_by_name("q").send_keys("webdriver")
driver.find_element_by_name("q").send_keys(Keys.ENTER)
time.sleep(2)
title=driver.title
self.assertEqual(title,u"webdriver - Google 搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
在test_case/目錄下分別建立百度搜索test_baidu和有道搜索test_google.py測試文件,並在測試文件中編寫web自動化測試用例。單元測試
runtest.py文件以下圖所示,這裏需注意:(導入模塊)因爲test_baidu.py和test_google.py與runtest.py並不在同一個目錄下,因此這裏,只須要在test_case目錄下加入一個__init__.py文件便可。學習
#runtest.py
#coding:utf-8 import unittest #加載測試集 from test_case import test_baidu from test_case import test_google #構造測試集 suite=unittest.TestSuite() suite.addTest(test_baidu.MyTest("test_baidu")) suite.addTest(test_google.MyTest("test_google")) if __name__=="__main__": runer=unittest.TextTestRunner() runer.run(suite)
2.保存測試結果測試
怎樣把測試結果生成一個有log.txt的文件呢?這裏須要藉助dos命令來實現。
首先打開Windows命令提示符,進入到../web_demo1/目錄下執行命令,以下圖所示。ui
打開…./report/log.txt文件,內容以下圖所示google
小結:學習unittest框架是爲了用它來編寫web自動化測試用例,利用其組織測試用例,斷言預期結果以及批量執行測試用例等功能,能夠很好地進行web自動化測試的開發。url