其中Error_session是保存錯誤的session;FireFox_profile是我們說到的火狐證書插件;Tools是我們轉(zhuǎn)換的3個簡單的exe程序;screen_shot存放錯誤截圖;IqunxingTest.py是我們改寫的unnitest類,我們新建測試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'''測試CSDN登錄'''
@classmethod
def setUpClass(cls):
profile=firefox_profile.FirefoxProfile(profile_directory=dir_name+"/FireFox_profile")
profile.set_preference("network.proxy.type", 5)#將瀏覽器代理設置為系統(tǒng)代理
cls.browser=webdriver.Firefox(firefox_profile=profile)#啟動帶插件的瀏覽器
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()#點擊登錄
if not browser.find_element_by_class_name("phr_first").is_displayed():#如果沒有登錄成功是找不到這個控件會報錯
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 + """)#啟動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"''')#測試完成后關閉fiddler
因為我們要找一些有用的sesssion信息,可喜的是Fiddler能過濾一些你設置完的信息,我的過濾信息如下:
因為測試CSDN,所以我只展示域名為*.csdn.net的會話;另外,一些css,js,png等無用信息我也隱藏了(正則表達式隱藏)。好了萬事具備,我們運行下這個demo:后在Error_session下保存了我們test2操作的所有http信息文件名為:Mydemo_test2_err.saz(過濾的除外),同時在screen_shot下保存錯誤的截圖。我們直接用fiddler打開這個saz文件:
從上面的截圖可以看出來,我們保存的session是完整的(過濾的除外)。而且我們看到了我們點擊登錄時,使用的接口以及傳遞的相關信息。當然,我們點擊Fiddler其他標簽事能獲取一切我們想獲取的信息。
這一節(jié)我的思路說完了...當然,你可能用不上這些,但是你至少了解到了AutoIt以及selenium的一些知識!還是那句:如果認為我說的有些道理,我的辛苦是值得的(畢竟寫了);如果認為沒用,請一笑而過~~