其中Error_session是保存錯(cuò)誤的session;FireFox_profile是我們說到的火狐證書插件;Tools是我們轉(zhuǎn)換的3個(gè)簡(jiǎn)單的exe程序;screen_shot存放錯(cuò)誤截圖;IqunxingTest.py是我們改寫的unnitest類,我們新建測(cè)試demo腳本:
#coding=utf-8
import IqunxingTest
import HTMLTestRunner
import sys,os
import unittest
from selenium import webdriver
from selenium.webdriver.firefox import firefox_profile
import time
dir_name = os.path.dirname(__file__) # 拿到根目錄
class Mydemo(IqunxingTest.IqunxingTest):
u'''測(cè)試CSDN登錄'''
@classmethod
def setUpClass(cls):
profile=firefox_profile.FirefoxProfile(profile_directory=dir_name+"/FireFox_profile")
profile.set_preference("network.proxy.type", 5)#將瀏覽器代理設(shè)置為系統(tǒng)代理
cls.browser=webdriver.Firefox(firefox_profile=profile)#啟動(dòng)帶插件的瀏覽器
cls.browser.implicitly_wait(10)
@unittest.Myskip
def test1(self):
u'''打開csdn'''
browser=self.browser
browser.get("http://www.csdn.net/")
@unittest.Myskip
def test2(self):
u'''csdn登錄'''
os.popen(dir_name+"/"+"Tools/C_interface.exe")#在test開始前,清空Fiddler session信息
browser = self.browser
browser.find_element_by_link_text(u"登錄").click()
time.sleep(1)
browser.find_element_by_id("username").send_keys("test")
time.sleep(1)
browser.find_element_by_id("password").send_keys("test")
time.sleep(1)
browser.find_element_by_class_name("logging").click()#點(diǎn)擊登錄
if not browser.find_element_by_class_name("phr_first").is_displayed():#如果沒有登錄成功是找不到這個(gè)控件會(huì)報(bào)錯(cuò)
self.assertTrue(False,"login failed")
if __name__ == '__main__':
fiddler_path = "C:Program Files (x86)Fiddler2Fiddler.exe"#您的Fiddler路徑
s = os.popen(dir_name + "/Tools/S_interface.exe " + """ + fiddler_path + """)#啟動(dòng)Fidder
module_name=os.path.basename(sys.argv[0]).split(".")[0]
module=__import__(module_name)
runner=HTMLTestRunner.HTMLTestRunner("reprot.html")
all_suite=unittest.defaultTestLoader.loadTestsFromModule(module)
runner.run(all_suite)
os.popen('''taskkill /f /im "Fiddler.exe"''')#測(cè)試完成后關(guān)閉fiddler
因?yàn)槲覀円乙恍┯杏玫膕esssion信息,可喜的是Fiddler能過濾一些你設(shè)置完的信息,我的過濾信息如下:
因?yàn)闇y(cè)試CSDN,所以我只展示域名為*.csdn.net的會(huì)話;另外,一些css,js,png等無用信息我也隱藏了(正則表達(dá)式隱藏)。好了萬事具備,我們運(yùn)行下這個(gè)demo:后在Error_session下保存了我們test2操作的所有http信息文件名為:Mydemo_test2_err.saz(過濾的除外),同時(shí)在screen_shot下保存錯(cuò)誤的截圖。我們直接用fiddler打開這個(gè)saz文件:
從上面的截圖可以看出來,我們保存的session是完整的(過濾的除外)。而且我們看到了我們點(diǎn)擊登錄時(shí),使用的接口以及傳遞的相關(guān)信息。當(dāng)然,我們點(diǎn)擊Fiddler其他標(biāo)簽事能獲取一切我們想獲取的信息。
這一節(jié)我的思路說完了...當(dāng)然,你可能用不上這些,但是你至少了解到了AutoIt以及selenium的一些知識(shí)!還是那句:如果認(rèn)為我說的有些道理,我的辛苦是值得的(畢竟寫了);如果認(rèn)為沒用,請(qǐng)一笑而過~~