測試驅動之xml文件的處理

Xml是可擴展標記語言,關於xml的技術本人這裏不在介紹,感興趣的同學可以去w3c看看詳細的資料,這裏,我僅僅介紹的是如何獲取xml文檔結構中的數據,並且應用到自動化測試中,僅此而已,因爲本文檔的核心是學習自動化,本節是學習測試驅動方式。已百度登錄爲實例,xml的數據如下:

<?xmlversion="1.0" encoding="utf-8"?>

<baidu>

<!--百度賬號以及密碼-->

<login username="your account"password="your password" />

<!--賬號密碼爲空錯誤信息-->

<null>請您填寫手機/郵箱/用戶名</null>

</baidu>

如下函數是分別獲取xml文檔結構的屬性值以及獲取標籤之間的數據,見如下的代碼:

importxml.dom.minidom

#獲取標籤的屬性值

defgetPropertyXml(value1,value2):

#打開文檔結構

document=xml.dom.minidom.parse("D:\\Git\PyCharm\\SeleniumTestingWithPython\\DataDriverTest\\baiduXml.xml")

#得到文檔元素結構

demo=document.documentElement

itemList=demo.getElementsByTagName(value1)

db=itemList[0]

property=db.getAttribute(value2)

return property

importxml.dom.minidom

'''

獲取標籤對之間的數據

'''

defgetValueXml(value):

#打開xml的文檔

document=xml.dom.minidom.parse("D:\\Git\PyCharm\\SeleniumTestingWithPython\\DataDriverTest\\baiduXml.xml")

#得到文檔元素結構

demo=document.documentElement

db=document.getElementsByTagName(value)

data=db[0]

return data.firstChild.data

print getValueXml('null')

使用如上的二個方法,我們分別就可以獲取到login結點的屬性值以及標籤之間的數據,如下,我們通過測試實例代碼,來實現賬號密碼爲空的時候,驗證返回的錯誤信息的實例,見如下的代碼:

#coding:utf-8

importunittest

fromselenium import webdriver

fromddt import ddt,data,unpack

fromtime import sleep

import vke

@ddt

class developTest(unittest.TestCase):

def setUp(self):

self.driver=webdriver.Firefox()

self.driver.implicitly_wait(30)

self.driver.maximize_window()

self.driver.get('http://www.baidu.com')

self.addCleanup(self.driver.quit)

def testLogin(self,value='null'):

self.driver.find_element_by_link_text(u'登錄').click()

self.driver.find_element_by_id('TANGRAM__PSP_8__submit').click()

errorText=self.driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_8__error']").text

self.assertEqual(errorText , vke.getValueXml(value))

if__name__=='__main__':

unittest.main(verbosity=2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章