中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

格爾木市住房和城鄉(xiāng)建設(shè)局網(wǎng)站做專業(yè)搜索引擎優(yōu)化

格爾木市住房和城鄉(xiāng)建設(shè)局網(wǎng)站,做專業(yè)搜索引擎優(yōu)化,網(wǎng)站建設(shè)報(bào)價(jià)方案模板,哪些行業(yè)沒有做網(wǎng)站unittest框架 1)測(cè)試固件 1)setUp()是用來初始化測(cè)試環(huán)境所做的工作 2)tearDown()是用來清理環(huán)境所做的工作 2)測(cè)試套件 把不同的測(cè)試腳本,不同類中的測(cè)試用例給組織起來放到一個(gè)測(cè)試套中執(zhí)行 3)測(cè)試用例的要以test_開頭 4)如何使用unittest框架 只需要在腳本中定義…

unittest框架

1)測(cè)試固件

1)setUp()是用來初始化測(cè)試環(huán)境所做的工作

2)tearDown()是用來清理環(huán)境所做的工作

2)測(cè)試套件

把不同的測(cè)試腳本,不同類中的測(cè)試用例給組織起來放到一個(gè)測(cè)試套中執(zhí)行

3)測(cè)試用例的要以test_開頭

4)如何使用unittest框架

只需要在腳本中定義一個(gè)類,繼承于unittest.TestCase即可

verbosity是一個(gè)選項(xiàng),表示測(cè)試結(jié)果的信息復(fù)雜度,有0、1、2 三個(gè)值
0 (靜默模式): 你只能獲得總的測(cè)試用例數(shù)和總的結(jié)果 比如 總共10個(gè) 失敗2 成功8
1 (默認(rèn)模式): 非常類似靜默模式 只是在每個(gè)成功的用例前面有個(gè)“.” 每個(gè)失敗的用例前面有個(gè) “F”
2 (詳細(xì)模式):測(cè)試結(jié)果會(huì)顯示每個(gè)測(cè)試用例的所有相關(guān)的信息

創(chuàng)建兩個(gè)類進(jìn)行測(cè)試:

from selenium import webdriver
import unittest
import time
import os
class Baidu1(unittest.TestCase):
# 測(cè)試固件def setUp(self):print("-----setUp----")self.driver=webdriver.Edge("C://Users//18947//AppData//Local//Programs//Python//Python310//msedgedriver.exe")self.url="http://www.baidu.com/"self.driver.maximize_window()time.sleep(3)def tearDown(self):print("------tearDown----")self.driver.quit()#     測(cè)試用例 忽略測(cè)試用例的執(zhí)行#     @unittest.skip("skipping")def test_hao(self):driver=self.driverurl=self.urldriver.get(url)driver.find_element_by_link_text("hao123").click()time.sleep(3);def test_hbaidu(self):driver=self.driverurl=self.urldriver.get(url)driver.find_element_by_id("kw").send_keys("突如其來的假期")time.sleep(3)driver.find_element_by_id("su").submit()print(driver.title)self.savescreenAsPhoto(driver,".jpg")time.sleep(5)def savescreenAsPhoto(self,driver,file_name):if not os.path.exists("./image"):os.makedirs("./image")now=time.strftime("%Y%m%d-%H%M%S",time.localtime(time.time()))driver.get_screenshot_as_file("./image/"+now+"-"+file_name)time.sleep(3)if __name__ == "__main":unittest.main()
# coding = utf8
from selenium import webdriver
import unittest
import time
# 導(dǎo)入By模塊
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoAlertPresentException
from selenium.common.exceptions import NoSuchElementException
class TestBaiduTwo(unittest.TestCase):def setUp(self):#獲得瀏覽器的驅(qū)動(dòng)self.driver=webdriver.Chrome()#讓瀏覽器窗口最大化self.driver.implicitly_wait(3)self.base_url="http://www.baidu.com/"self.driver.maximize_window()self.array=[]self.flag = Truedef tearDown(self):self.driver.quit()self.assertEqual([],self.array)def test_hao(self):driver=self.driverdriver.get(self.base_url)driver.find_element_by_link_text("新聞").click()time.sleep(3)def test_baidusearch(self):driver=self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").clear()driver.find_element_by_id("kw").send_keys("慶余年")driver.find_element_by_id("su").click()#選擇通過什么方式來進(jìn)行獲取元素,value是什么屬性self.is_element_present(By.ID, "su").click()time.sleep(3)def is_element_present(self,how,what):try:element=self.driver.find_element(by=how,value=what)except NoSuchElementException as e:return elementreturn elementdef is_alert_present(self):try:self.driver.switch_to.alert()except NoAlertPresentException as e:return Falsereturn Truedef close_alert_and_get_its_text(self):try:#獲取到alert彈出框alert=self.driver.switch_to_alert()#獲取到alert彈出框中的文字alert_text=alert.textif self.flag:alert.accept()else:alert.dismiss()return alert_textfinally:self.flag = Trueif __name__ == "__main__":unittest.main(verbosity=2)

1)以test_開頭命名的方法,是測(cè)試方法,在運(yùn)行整個(gè)類的時(shí)候會(huì)默認(rèn)執(zhí)行。
2)unittest提供了全局的main()方法,使用它可以方便地將一個(gè)單元測(cè)試模塊變成可以直接運(yùn)行的測(cè)試腳本main()方法搜索所有包含在該模塊中以”test"命名的測(cè)試方法,并自動(dòng)執(zhí)行他們

unittest里面有四個(gè)很重要的概念,test fixture,test case,test suite,test runner
Test Fixture
1)對(duì)一個(gè)測(cè)試用例環(huán)境的搭建和銷毀,就是一個(gè)fixture,通過覆蓋setUp()和tearDown()方法來實(shí)現(xiàn),setUp()方法可以進(jìn)行測(cè)試環(huán)境的搭建,比如獲取待測(cè)試瀏覽器的驅(qū)動(dòng),或者如果測(cè)試中需要訪問數(shù)據(jù)庫(kù),那么可以在setUp()中通過建立數(shù)據(jù)庫(kù)連接來進(jìn)行初始化
2)tearDown()方法進(jìn)行環(huán)境的銷毀,可以進(jìn)行關(guān)閉瀏覽器,關(guān)閉數(shù)據(jù)庫(kù)連接,清除數(shù)據(jù)庫(kù)中產(chǎn)生的數(shù)據(jù)等操作;

Test Case
一個(gè)TestCase的實(shí)例就是一個(gè)測(cè)試用例,測(cè)試用例就是一個(gè)完整的測(cè)試流程,包括測(cè)試前準(zhǔn)備環(huán)境的搭建(setUp)實(shí)現(xiàn)測(cè)試過程的代碼,以及測(cè)試后環(huán)境的還原(tearDown)單元測(cè)試(unit test)的本質(zhì)就在這里一個(gè)測(cè)試用例,就是一個(gè)完整的測(cè)試單元,可以對(duì)某一個(gè)功能進(jìn)行驗(yàn)證

TestSuite

一個(gè)功能的驗(yàn)證往往需要多個(gè)測(cè)試用例,可以把多個(gè)測(cè)試用例集合在一起執(zhí)行,這個(gè)就產(chǎn)生了測(cè)試套件TestSuite的概念,Test Suit用來將多個(gè)測(cè)試用例組裝在一起;

test Runner

test Runner測(cè)試的執(zhí)行也是非常重要的一個(gè)概念,在unittest框架中,通過TextTestRunner類提供的run()方法來執(zhí)行test suite/test case

?

addTest()

1)TestSuite類的addTest()方法可以把不同的測(cè)試類中的測(cè)試方法組裝到測(cè)試套件中,但是addTest()一次
2)只能把一個(gè)類里面的一個(gè)測(cè)試方法組裝到測(cè)試套件中?

但是上述做法有兩個(gè)不方便的地方,阻礙腳本的快速執(zhí)行,必須每次修改testsuite.py:
1)需要導(dǎo)入所有的相關(guān)的py文件,比如 import testbaidu1,每新增一個(gè)腳本就需要導(dǎo)入一個(gè)
2)addTest一次只能增加一個(gè)測(cè)試方法,如果一個(gè)py文件中有10個(gè)測(cè)試方式,如果都要組裝到測(cè)試套件中,就需要增加10次

import unittestimport TestBaiduOne
import TestBaiduTwodef createsuite():suite = unittest.TestSuite()suite.addTest(TestBaiduOne.Baidu1("test_hao"))suite.addTest(TestBaiduTwo.Baidu2("test_baidusearch"))suite.addTest(TestBaiduTwo.Baidu2("test_hao"))return suite
if __name__=="__main__":suite= createsuite()runner=unittest.TextTestRunner(verbosity=2)runner.run(suite)

跑測(cè)試套件用例步驟:

1)先進(jìn)行生成測(cè)試套件

2)得到跑測(cè)試套件的runner

3)用runner去跑測(cè)試套件

?

把一個(gè)類中的所有測(cè)試用例都添加到一個(gè)測(cè)試套件里面

1)使用unittest.makeSuite()

def createsuite():suit=unittest.TestSuitesuit.addTest(unittest.makeSuite(TestBaiduOne.Baidu1))suit.addTest(unittest.makeSuite(TestBaiduTwo.Baidu2))return suite
if __name__=="__main__":suite= createsuite()runner=unittest.TextTestRunner(verbosity=2)runner.run(suite)

?

http://m.risenshineclean.com/news/61881.html

相關(guān)文章:

  • 網(wǎng)站外鏈帶nofollow是什么意思網(wǎng)站快速優(yōu)化排名官網(wǎng)
  • 網(wǎng)絡(luò)技術(shù)與網(wǎng)站建設(shè)seo網(wǎng)站優(yōu)化課程
  • 東南網(wǎng)架公司哈爾濱seo和網(wǎng)絡(luò)推廣
  • 貴港網(wǎng)站設(shè)計(jì)免費(fèi)發(fā)布網(wǎng)站seo外鏈
  • 外貿(mào)添加外鏈網(wǎng)站建站網(wǎng)站
  • 有ip怎么用自己的主機(jī)做網(wǎng)站灰色項(xiàng)目推廣渠道
  • 引用網(wǎng)站的內(nèi)容如何做注釋排行榜軟件
  • 寧波市住房與城鄉(xiāng)建設(shè)部網(wǎng)站百度推廣一天燒幾千
  • 專業(yè)攝影網(wǎng)站杭州網(wǎng)站優(yōu)化服務(wù)
  • 高端服裝產(chǎn)品網(wǎng)站建設(shè)seo建站平臺(tái)哪家好
  • 網(wǎng)站策劃步驟網(wǎng)站交易
  • 個(gè)人網(wǎng)站設(shè)計(jì)成首頁網(wǎng)絡(luò)營(yíng)銷的實(shí)現(xiàn)方式
  • 網(wǎng)站建設(shè) 事業(yè)單位 安全外貿(mào)網(wǎng)站平臺(tái)都有哪些 免費(fèi)的
  • JAVA網(wǎng)站開發(fā)ssm朝陽區(qū)seo搜索引擎優(yōu)化介紹
  • 網(wǎng)站建設(shè)公司哪好建站優(yōu)化推廣
  • 客戶做網(wǎng)站需要提供什么百度收錄提交申請(qǐng)網(wǎng)站
  • 網(wǎng)站后臺(tái) ftp網(wǎng)站建設(shè)seo優(yōu)化培訓(xùn)
  • 網(wǎng)站開發(fā)下載現(xiàn)在最火的推廣平臺(tái)
  • 網(wǎng)站開發(fā)如何入賬sem優(yōu)化師
  • 網(wǎng)站建設(shè)平臺(tái)合同模板下載優(yōu)化器
  • 個(gè)人做新聞網(wǎng)站處罰網(wǎng)站推廣的方式和方法
  • 東莞證券官方網(wǎng)站怎么創(chuàng)建域名
  • 大數(shù)據(jù)智能營(yíng)銷靠譜嗎優(yōu)化設(shè)計(jì)電子版
  • 創(chuàng)業(yè)網(wǎng)站開發(fā)要多少錢開封網(wǎng)絡(luò)推廣哪家好
  • 建設(shè)網(wǎng)站項(xiàng)目的目的是什么企業(yè)網(wǎng)絡(luò)營(yíng)銷目標(biāo)
  • 網(wǎng)站建設(shè)知名免費(fèi)下載百度一下
  • 電影網(wǎng)站制作畢業(yè)論文摘要工具站seo
  • 怎么自己學(xué)著做網(wǎng)站搜索熱門關(guān)鍵詞
  • 萬網(wǎng)注冊(cè)域名做簡(jiǎn)單網(wǎng)站成都seo
  • 湖南做網(wǎng)站 真好磐石網(wǎng)絡(luò)網(wǎng)站優(yōu)化推廣方案