Selenium+WebDriver+Python 定時控制任務

來源:互聯網
上載者:User

標籤:selenium   iss   .net   auto   ams   dir   控制   程式   沒有   

為了更對得起“自動化測試”的名號,我們可以設定定時任務,使我們自動化指令碼在某個時間點自動運行指令碼,這樣就可以讓測試在夜間進行,減少了時間成本。通過程式來控制test case在什麼時候執行是最簡單的方式了。 
借用http://blog.csdn.net/liujingqiu/article/details/50518776關於HTMLTestResult的指令碼,然後寫SetTime_AutoRun.py來實現定時執行任務。 
SetTime_AutoRun.py指令碼如下:

import unittestimport HTMLTestRunnerimport osimport timelistaa=‘C:\\Python34\\test_case‘  #設定指令碼所在的絕對路徑def createsuitel():    testunit=unittest.TestSuite()    discover=unittest.defaultTestLoader.discover(listaa,  pattern=‘UnitTestHtml_*.py‘,  top_level_dir=None)    for test_suite in discover:        for test_case in test_suite:            testunit.addTests(test_case)            print (testunit)    return testunitalltestnames=createsuitel()#now=time.strftime(‘%Y-%m-%M-%H_%M_%S‘,time.localtime(time.time()))  #時間格式有錯誤now=time.strftime(‘%Y-%m-%d-%H_%M_%S‘,time.localtime(time.time())) #設定時間格式fp = open(now+‘result.html‘,‘wb‘)runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=‘test result‘,description=u‘result:‘) #調用HTMLRestRunnerk=1while k<2:    timing=time.strftime(‘%H_%M‘,time.localtime(time.time()))    if timing == ‘17_35‘:  #17_35指17:35,這個可以根據需要設定時間        print (‘start to run scripts‘)        runner.run(alltestnames) #運行所有的case        print (‘Finish runing scripts‘)        break    else:        time.sleep(3)        print (timing)fp.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

F5,運行得到: 
1)pythonIDLE : 
 
從可以看到17_34還沒有到我們設定的時間點17_35,於是會等待。 
2)C:\Python34 路徑下,有Result.html 

2016-03-34-17_34_59result.html即為我們這次的測試result.html 
3)開啟上述檔案得到: 

上面的三個結果,即為運行後得到的結果。這裡偷懶, 其中使用pattern=’UnitTestHtml_*.py’, 採用的是不同檔案名稱的.py指令碼,但是裡面內容是相同的,於是同樣的,得到了6個case的結果。

附: 
1.pattern=’UnitTestHtml_*.py’ 表示在目前的目錄下,檔案名稱為UnitTestHtml_*.py的指令碼都會被批量執行。 
在實施過程中,遇到的issue: 
1.第一次輸出,在C:\Python34目錄下的 2016-03-34-17_34_59result.html的檔案大小為0kb,這是因為忘記加上fp.close()了。 
2.以上指令碼還有點小問題我們得到的2016-03-34-17_34_59result.html檔案名稱,可以看到檔案名稱中的設定時間沒有正確。根據以下的修改,再次運行,顯示正確。 
指令碼改動如下:

以前的指令碼:now=time.strftime(‘%Y-%m-%M-%H_%M_%S‘,time.localtime(time.time())) 改動後的指令碼:now=time.strftime(‘%Y-%m-%d-%H_%M_%S‘,time.localtime(time.time())) #設定時間格式
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

就這樣使用指令碼完成了定時控制任務,實現定時自動化測試。

Selenium+WebDriver+Python 定時控制任務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.