前言
python單元測(cè)試框架(The Python Unit Testing Framework)簡(jiǎn)稱PyUnit,是JUnit的python版本,自python2.1版本后,PyUnit已經(jīng)成為了Python的標(biāo)準(zhǔn)庫(kù)。下面我們就如何把unitest應(yīng)用到python selenium2自動(dòng)化測(cè)試中進(jìn)行分享。
測(cè)試用例
單元測(cè)試是由一系列的測(cè)試用例(Test Cases)構(gòu)成。測(cè)試用例是被設(shè)置用來(lái)檢測(cè)獨(dú)立場(chǎng)景的集合。在PyUnit中,unittest模塊中的TestCase類代表測(cè)試用例。
TestCase類的實(shí)例是可以完全運(yùn)行所有的方法和可選的初始化(setUp)及清理(tearDown)方法的對(duì)象。
TestCase實(shí)例的測(cè)試代碼必須是包含一個(gè)或多個(gè)測(cè)試方法,簡(jiǎn)單說(shuō),它可以單獨(dú)運(yùn)行或與其他任意數(shù)量的用例共同運(yùn)行
簡(jiǎn)單示例
# 將以下代碼保存到first_webdriver.py中
#-*- coding:utf-8 -*-
__author__ = u'苦葉子'
from selenium import webdriver
import unittest
import HTMLTestRunner
import sys
from time import sleep
reload(sys)
sys.setdefaultencoding("utf-8")
class BaiduTest(unittest.TestCase):
"""百度首頁(yè)搜索測(cè)試用例"""
def setUp(self):
self.driver = webdriver.Ie()
self.driver.implicitly_wait(30)
self.base_url = u"http://www.baidu.com"
def test_baidu_search(self):
driver = self.driver
print u"開(kāi)始[case_0001]百度搜索"
driver.get(self.base_url)
# 驗(yàn)證標(biāo)題
self.assertEqual(driver.title, u"百度一下,你就知道")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"開(kāi)源優(yōu)測(cè)")
driver.find_element_by_id("su").click()
sleep(3)
# 驗(yàn)證搜索結(jié)果標(biāo)題
self.assertEqual(driver.title, u"開(kāi)源優(yōu)測(cè)_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
testunit = unittest.TestSuite()
testunit.addTest(BaiduTest('test_baidu_search'))
# 定義報(bào)告輸出路徑
htmlPath = u"testReport.html"
fp = file(htmlPath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"百度測(cè)試",
description=u"測(cè)試用例結(jié)果")
runner.run(testunit)
fp.close()
關(guān)鍵代碼說(shuō)明
- 在上例代碼中,我們的測(cè)試用例BaiduTest繼承了unittest.TestCase。
- 在初始化方法setUp中,初始化了webdriver示例和隱性等待設(shè)置,并初始化了百度首頁(yè)url。該方法自動(dòng)執(zhí)行。
- 在清理方法中tearDown中,退出了webdriver。該方法自動(dòng)執(zhí)行。
- test_baidu_search方法是我們主要的測(cè)試方法,在該方法中進(jìn)行了一下動(dòng)作。

u1.png
主入口說(shuō)
- 先定義一個(gè)測(cè)試套件集,然后將用例集添加至套件中。
- 我們使用了unittest第三方測(cè)試報(bào)告模塊HTMLTestRunner(該模塊不是標(biāo)準(zhǔn)庫(kù),需要自己去下載,請(qǐng)參考前面幾篇的文章),用以自動(dòng)生產(chǎn)HTML格式的測(cè)試報(bào)告。
如何運(yùn)行上述代碼
# 將上述代碼保存至first_unit_test.py中
# 在命令行中輸入以下命令
python first_unit_test.py
代碼組織說(shuō)明

u2.png
總結(jié)
今天我們就unittest怎么和selenium測(cè)試進(jìn)行結(jié)合做了初步的分享,請(qǐng)大家深入理解該示例,并實(shí)際動(dòng)手練習(xí)代碼。