其中Error_session是保存错误的session;FireFox_profile是我们说到的火狐证书插件;Tools是我们转换的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)#将浏览器代理设置为系统代理
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其他标签事能获取一切我们想获取的信息。
这一节我的思路说完了...当然,你可能用不上这些,但是你至少了解到了AutoIt以及selenium的一些知识!还是那句:如果认为我说的有些道理,我的辛苦是值得的(毕竟写了);如果认为没用,请一笑而过~~