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

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

php網(wǎng)站開發(fā)總結(jié)環(huán)球軍事新聞最新消息

php網(wǎng)站開發(fā)總結(jié),環(huán)球軍事新聞最新消息,早期網(wǎng)站開發(fā)用的技術(shù),成都今日新聞一、什么是web自動(dòng)化測(cè)試 讓程序員代替人為去驗(yàn)證web項(xiàng)目功能的過程 二、什么web項(xiàng)目適合自動(dòng)化測(cè)試 1)需求變動(dòng)不頻繁 測(cè)試腳本的穩(wěn)定性決定了自動(dòng)化測(cè)試的維護(hù)成本。如果軟件需求變動(dòng)過于頻繁,測(cè)試人員需要根據(jù)變動(dòng)的需求來更新測(cè)試用例以及相關(guān)的測(cè)試腳本&…

一、什么是web自動(dòng)化測(cè)試

? ? ? ? ? ? 讓程序員代替人為去驗(yàn)證web項(xiàng)目功能的過程

二、什么web項(xiàng)目適合自動(dòng)化測(cè)試?

????1)需求變動(dòng)不頻繁

測(cè)試腳本的穩(wěn)定性決定了自動(dòng)化測(cè)試的維護(hù)成本。如果軟件需求變動(dòng)過于頻繁,測(cè)試人員需要根據(jù)變動(dòng)的需求來更新測(cè)試用例以及相關(guān)的測(cè)試腳本,而腳本的維護(hù)本身就是一個(gè)代碼開發(fā)的過程,需要修改、調(diào)試,必要的時(shí)候還要修改自動(dòng)化測(cè)試的框架,如果所花費(fèi)的成本不低于利用其節(jié)省的測(cè)試成本,那么自動(dòng)化測(cè)試便是失敗的。

項(xiàng)目中的某些模塊相對(duì)穩(wěn)定,而某些模塊需求變動(dòng)性很大。我們便可對(duì)相對(duì)穩(wěn)定的模塊進(jìn)行自動(dòng)化測(cè)試,而變動(dòng)較大的仍是用手工測(cè)試

??2) 項(xiàng)目周期足夠長

? ? ? ? 自動(dòng)化測(cè)試需求的確定、自動(dòng)化測(cè)試框架的設(shè)計(jì)、測(cè)試腳本的編寫與調(diào)試均需要相當(dāng)長的時(shí)間來完成,這樣的過程本身就是一個(gè)測(cè)試軟件的開發(fā)過程,需要較長的時(shí)間來完成。如果項(xiàng)目的周期比較短,沒有足夠的時(shí)間去支持這樣一個(gè)過程,那么自動(dòng)化測(cè)試便成為笑談。

3)自動(dòng)化測(cè)試腳本可重復(fù)使用(項(xiàng)目需要回歸測(cè)試)

??????? 如果費(fèi)盡心思開發(fā)了一套近乎完美的自動(dòng)化測(cè)試腳本,但是腳本的重復(fù)使用率很低,致使其間所耗費(fèi)的成本大于所創(chuàng)造的經(jīng)濟(jì)價(jià)值,自動(dòng)化測(cè)試便成為了測(cè)試人員的練手之作,而并非是真正可產(chǎn)生效益的測(cè)試手段了。

另外,在手工測(cè)試無法完成,需要投入大量時(shí)間與人力時(shí)也需要考慮引入自動(dòng)化測(cè)試。比如、性能測(cè)試、配置測(cè)試、大數(shù)據(jù)量輸入測(cè)試等。

三、web測(cè)試的主流測(cè)試工具

? ? ? ? ? ??web自動(dòng)化測(cè)試工具 seleuium(我現(xiàn)在用的是這個(gè))

???QTP(全名HP QuickTest Professional software)

?????????????Robot Framework自動(dòng)化測(cè)試框架

Selenium簡(jiǎn)介

? ? ? ? selenium是一款基于web應(yīng)用程序的開源測(cè)試工具

? ? selenium測(cè)試直接運(yùn)行在瀏覽器中,就想真正的用戶在操作一樣。

? ? ? ? 它支持Firefox(火狐)、ie、chrome(谷歌)等眾多瀏覽器

? ? ? ? 它同時(shí)支持java、c#、Ruby、Python、Php、Perl等眾多語言? ??

selenium簡(jiǎn)單的理解

? ??????Selenium就是將瀏覽器原聲的API封裝成Webdriver API,Webdriver是基于http協(xié)議的

Appium是基于Webdriver協(xié)議添加對(duì)移動(dòng)設(shè)備自動(dòng)化api擴(kuò)展而成的,基于tcp/ip協(xié)議

操作層面的理解

? ??1、測(cè)試人員編寫UI自動(dòng)化測(cè)試腳本(java、python等等),運(yùn)行腳本后,程序會(huì)打開指定的webdriver瀏覽器。

?2、webdriver瀏覽器座位一個(gè)remote-server接受腳本的命令,同時(shí)webservice會(huì)打開一個(gè)端口:http://localhost:46350 瀏覽器則會(huì)監(jiān)聽這個(gè)端口。

??? 3、webservice會(huì)將腳本語言翻譯成json格式傳遞給瀏覽器執(zhí)行操作命令。

邏輯層面的理解

??? 1、測(cè)試人員執(zhí)行測(cè)試腳本后,就創(chuàng)建了一個(gè)session,通過http請(qǐng)求想webservice發(fā)送了restfull的請(qǐng)求。

??? 2、webservice翻譯restfull的請(qǐng)求為瀏覽器能懂的腳本,然后接受腳本執(zhí)行結(jié)果。

??? 3、webservice將結(jié)果進(jìn)行封裝–json給到客戶端client測(cè)試腳本,然后client就知道操作是否成功,同樣測(cè)試也可以進(jìn)行校驗(yàn)了

selenium的主要功能

????????Selenium 是一款可以錄制用戶操作,幫助 Web 測(cè)試人員簡(jiǎn)化重復(fù)勞動(dòng)的工具。

在python中使用selenium必須下載selenium的插件

? ? 打開python里面的設(shè)置

Selenium Webdriver查找頁面元素及元素及元素操作

? ? 1.常用的元素定位方法

? 通過id定位元素:find_element_by_id("id_vaule")

??????? 通過name定位元素:find_element_by_name("name_vaule")

??????? 通過tag_name定位元素:find_element_by_tag_name("tag_name_vaule")

??????? 通過class_name定位元素:find_element_by_class_name("class_name")

??????? 通過css定位元素:find_element_by_css_selector();用css定位是比較靈活的

??????? 通過xpath定位元素:find_element_by_xpath("xpath")

??????? 通過link_text定位:driver.find_element_by_link_text("新聞").click()

?????? 通過partial link_text定位:driver.find_element_by_partial_link_text("聞").click()

2.定位元素分類總結(jié)(解釋)

? Id,name,class name:為元素屬性定位

??????? tag_name:為元素標(biāo)簽

??????? link text、partial link text:為超鏈接定位(a標(biāo)簽)

??????? Xpath:為元素路徑

??????? Css:為css元素選擇器定位

3.elements復(fù)數(shù)定位

? 上面的八中元素,都有對(duì)應(yīng)的復(fù)數(shù)形式

??????? find_elements_by_id("id_vaule")

??????? find_elements_by_name("name_vaule")

??????? find_elements_by_tag_name("tag_name_vaule")

??????? find_elements_by_class_name("class_name"

??????? find_elements_by_css_selector();

??????? find_elements_by_xpath("xpath")

??????? find_elements_by_link_text("新聞").click()

??????? find_elements_by_partial_link_text("聞").click()

??? 這些復(fù)數(shù)定位方式每次取到的都是具有相同類型屬性的一組元素,所以返回的是一個(gè)list隊(duì)列,我們也可以利用這個(gè)去定位單個(gè)的元素。比如百度首頁種,右上角有新聞、視頻、地圖、貼吧等一些鏈接

??? 舉個(gè)例子比如定位排在第六個(gè)的學(xué)術(shù),可以這樣定位:driver.find_elements_by_class_name("mnav")[5].click()


4.簡(jiǎn)單的元素操作

clear()清除文本

??????? send_keys(*value)模擬按鍵輸入

??????? click()單擊元素

??????? size返回元素的尺寸

??????? text獲取元素的文本

??????? get_attribute(name)獲取屬性值

??????? is_displayed()設(shè)置該元素是否可見 判斷元素是否可見 是否可用 is_enable() 了解

??????? 在使用 Selenium WebDriver 做自動(dòng)化測(cè)試的時(shí)候,會(huì)經(jīng)常模擬鼠標(biāo)和鍵盤的一些行為。比如使用鼠標(biāo)單擊、雙擊、右擊、拖拽等動(dòng)作;或者鍵盤輸入、快捷鍵使用、組合鍵使用等模擬鍵盤的操作。在 WebDeriver 中,有一個(gè)專門的類來負(fù)責(zé)實(shí)現(xiàn)這些測(cè)試場(chǎng)景,那就是 Actions 類,在使用該類的過程中會(huì)配合使用到 Keys 枚舉以及 Mouse、 Keyboard、CompositeAction 等類。

清單 1. 鼠標(biāo)左鍵點(diǎn)擊

??????????? Actions action = new Actions(driver);action.click();// 鼠標(biāo)左鍵在當(dāng)前停留的位置做單擊操作

??????????? action.click(driver.findElement(By.name(element)))// 鼠標(biāo)左鍵點(diǎn)擊指定的元素

清單 2. 鼠標(biāo)右鍵點(diǎn)擊

??????? Actions action = new Actions(driver);

??????? action.contextClick();// 鼠標(biāo)右鍵在當(dāng)前停留的位置做單擊操作

??????? action.contextClick(driver.findElement(By.name(element)))// 鼠標(biāo)右鍵點(diǎn)擊指定的元素

清單 3. 鼠標(biāo)雙擊操作

??????? Actions action = new Actions(driver);

??????? action.doubleClick();// 鼠標(biāo)在當(dāng)前停留的位置做雙擊操作

??????? action.doubleClick(driver.findElement(By.name(element)))// 鼠標(biāo)雙擊指定的元素

清單 4. 鼠標(biāo)拖拽動(dòng)作

??????? Actions action = new Actions(driver);

??????? // 鼠標(biāo)拖拽動(dòng)作,將 source 元素拖放到 target 元素的位置。

??????? action.dragAndDrop(source,target);

??????? // 鼠標(biāo)拖拽動(dòng)作,將 source 元素拖放到 (xOffset, yOffset) 位置,其中 xOffset 為橫坐標(biāo),yOffset 為縱坐標(biāo)。

??????? action.dragAndDrop(source,xOffset,yOffset);

??????? 在這個(gè)拖拽的過程中,已經(jīng)使用到了鼠標(biāo)的組合動(dòng)作,首先是鼠標(biāo)點(diǎn)擊并按住 (click-and-hold) source 元素,然后執(zhí)行鼠標(biāo)移動(dòng)動(dòng)作 (mouse move),移動(dòng)到 target 元素位置或者是 (xOffset, yOffset) 位置,再執(zhí)行鼠標(biāo)的釋放動(dòng)作 (mouse release)。所以上面的方法也可以拆分成以下的幾個(gè)執(zhí)行動(dòng)作來完成:

??????? action.clickAndHold(source).moveToElement(target).perform();

??????? action.release();

清單 5. 鼠標(biāo)懸停操作

??????? Actions action = new Actions(driver);

??????? action.clickAndHold();// 鼠標(biāo)懸停在當(dāng)前位置,既點(diǎn)擊并且不釋放

??????? action.clickAndHold(onElement);// 鼠標(biāo)懸停在 onElement 元素的位置

??????? action.clickAndHold(onElement) 這個(gè)方法實(shí)際上是執(zhí)行了兩個(gè)動(dòng)作,首先是鼠標(biāo)移動(dòng)到元素 onElement,然后再 clickAndHold, 所以這個(gè)方法也可以寫成 action.moveToElement(onElement).clickAndHold()。

清單 6. 鼠標(biāo)移動(dòng)操作

??????? Actions action = new Actions(driver);

??????? action.moveToElement(toElement);// 將鼠標(biāo)移到 toElement 元素中點(diǎn)

??????? // 將鼠標(biāo)移到元素 toElement 的 (xOffset, yOffset) 位置,

??????? //這里的 (xOffset, yOffset) 是以元素 toElement 的左上角為 (0,0) 開始的 (x, y) 坐標(biāo)軸。

??????? action.moveToElement(toElement,xOffset,yOffset)

??????? // 以鼠標(biāo)當(dāng)前位置或者 (0,0) 為中心開始移動(dòng)到 (xOffset, yOffset) 坐標(biāo)軸

??????? action.moveByOffset(xOffset,yOffset);

??????? action.moveByOffset(xOffset,yOffset) 這里需要注意,如果 xOffset 為負(fù)數(shù),表示橫坐標(biāo)向左移動(dòng),yOffset 為負(fù)數(shù)表示縱坐標(biāo)向上移動(dòng)。而且如果這兩個(gè)值大于當(dāng)前屏幕的大小,鼠標(biāo)只能移到屏幕最邊界的位置同時(shí)拋出 MoveTargetOutOfBoundsExecption 的異常。

??????? 鼠標(biāo)移動(dòng)操作在測(cè)試環(huán)境中比較常用到的場(chǎng)景是需要獲取某元素的 flyover/tips,實(shí)際應(yīng)用中很多 flyover 只有當(dāng)鼠標(biāo)移動(dòng)到這個(gè)元素之后才出現(xiàn),所以這個(gè)時(shí)候通過執(zhí)行 moveToElement(toElement) 操作,就能達(dá)到預(yù)期的效果。但是根據(jù)我個(gè)人的經(jīng)驗(yàn),這個(gè)方法對(duì)于某些特定產(chǎn)品的圖標(biāo),圖像之類的 flyover/tips 也不起作用,雖然在手動(dòng)操作的時(shí)候移動(dòng)鼠標(biāo)到這些圖標(biāo)上面可以出現(xiàn) flyover, 但是當(dāng)使用 WebDriver 來模擬這一移動(dòng)操作時(shí),雖然方法成功執(zhí)行了,但是 flyover 卻出不來。所以在實(shí)際應(yīng)用中,還需要對(duì)具體的產(chǎn)品頁面做相應(yīng)的處理。

清單 7. 鼠標(biāo)釋放操

??????? Actions action = new Actions(driver);

??????? action.release();// 釋放鼠標(biāo)

????????? selenium的顯示等待

??????????????????? 原理:顯示等待,就是明確的要等到某個(gè)元素的出現(xiàn)或者是某個(gè)元素的可點(diǎn)擊等條件,等不到,就一直等,除非在規(guī)定的時(shí)間之內(nèi)都沒找到,那么久跳出Exception。

??????????????????? (簡(jiǎn)而言之,就是直到元素出現(xiàn)才去操作,如果超時(shí)則報(bào)異常)
???

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
??? driver:瀏覽器驅(qū)動(dòng)
??? timeout:最長超過時(shí)間,默認(rèn)以秒為單位
??? poll_frequency:監(jiān)測(cè)的時(shí)間間隔,默認(rèn)為0.5秒
??? ignored_exceptions:超時(shí)后的異常信息,默認(rèn)情況下拋NoSuchElementException異常
??? WebDriverWait一般有until和until_not方法配合使用
??? until(method,message)
??? until_not(method ,message)
?

?? selenium的隱式等待

??????????????? 原理:隱式等待,就是在創(chuàng)建driver時(shí),為瀏覽器對(duì)象創(chuàng)建一個(gè)等待時(shí)間,這個(gè)方法是得不到某個(gè)元素就等待一段時(shí)間,直到拿到某個(gè)元素位置。

??????????????? 注意:在使用隱式等待的時(shí)候,實(shí)際上瀏覽器會(huì)在你自己設(shè)定的時(shí)間內(nèi)部斷的刷新頁面去尋找我們需要的元素

?fromselenium importwebdriver

??????????? fromselenium.webdriver.common.by importBy

??????????? fromselenium.webdriver.support.ui importWebDriverWait

??????????? fromselenium.webdriver.support importexpected_conditions as EC

??????????? driver =webdriver.Chrome()

??????????? driver.implicity_wait(10)

??????????? driver.get('http://www.baidu')

?? implicity_wait()默認(rèn)參數(shù)的單位為妙,本例中設(shè)置等待時(shí)長為10秒,首先這10秒并非一個(gè)固定的等待時(shí)間,它并不影響腳本的執(zhí)行速度。其次,它并不針對(duì)頁面上的某一元素進(jìn)行等待。當(dāng)腳本執(zhí)行到某個(gè)元素定位是,如果元素可以定位,則繼續(xù)執(zhí)行,如果元素定位不到,則它將以輪詢的方式不斷地判斷元素是否被定位到。假設(shè)在第六秒定位到了元素則繼續(xù)執(zhí)行,若直到超出設(shè)置的時(shí)長10秒還沒有定位到元素,則拋出異常。

http://www.risenshineclean.com/news/52992.html

相關(guān)文章:

  • 手機(jī)網(wǎng)站可以做百度商橋嗎站長統(tǒng)計(jì)app軟件下載
  • 小型教育網(wǎng)站開發(fā)與設(shè)計(jì)品牌推廣的步驟和技巧
  • 嘉興公司的網(wǎng)站設(shè)計(jì)鄭州關(guān)鍵詞優(yōu)化顧問
  • 品牌網(wǎng)站建設(shè)收費(fèi)情況廣州 競(jìng)價(jià)托管
  • 怎么做潮牌網(wǎng)站電商網(wǎng)站排名
  • 河南省住房和城鄉(xiāng)建設(shè)廳官方網(wǎng)站上海培訓(xùn)機(jī)構(gòu)白名單
  • 平湖網(wǎng)站建設(shè)公司克河北網(wǎng)站seo地址
  • wordpress設(shè)置網(wǎng)址錯(cuò)視頻seo優(yōu)化教程
  • 南京網(wǎng)站建設(shè)推南京網(wǎng)站建設(shè)設(shè)計(jì)山東16市最新疫情
  • 網(wǎng)站開發(fā)和嵌入式開發(fā)哪個(gè)泉州網(wǎng)站seo外包公司
  • 茶葉淘寶店網(wǎng)站建設(shè)ppt朝陽網(wǎng)絡(luò)推廣
  • 低價(jià)網(wǎng)站建設(shè)方案seo查詢工具有哪些
  • 網(wǎng)站頁面尺寸百度建一個(gè)網(wǎng)站多少錢
  • 做網(wǎng)站用ssm還是ssh不錯(cuò)寧波seo公司
  • 建筑人才網(wǎng)官網(wǎng)掛證seo 推廣教程
  • 企業(yè)網(wǎng)站系統(tǒng)功能分析與設(shè)計(jì)上海有哪些優(yōu)化網(wǎng)站推廣公司
  • 有哪些做頭像的網(wǎng)站比較靠譜的電商培訓(xùn)機(jī)構(gòu)
  • ui設(shè)計(jì)做網(wǎng)站百度視頻
  • 愛做網(wǎng)站外國2023智慧樹網(wǎng)絡(luò)營銷答案
  • 石龍網(wǎng)站開發(fā)企業(yè)qq官方下載
  • 網(wǎng)站建設(shè) 站內(nèi)搜索百搜科技
  • 做網(wǎng)站首頁的圖片怎么縮小大數(shù)據(jù)營銷平臺(tái)那么多
  • 招代理網(wǎng)站建設(shè)公司如何推廣網(wǎng)上國網(wǎng)
  • 邢臺(tái)任澤區(qū)疫情最新數(shù)據(jù)消息抖音seo運(yùn)營模式
  • 電子商務(wù)網(wǎng)站建設(shè)的流程百度競(jìng)價(jià)排名多少錢
  • 怎么樣做淘寶聯(lián)盟網(wǎng)站國外域名注冊(cè)平臺(tái)
  • 成品網(wǎng)站好嗎萬江專業(yè)網(wǎng)站快速排名
  • 東莞網(wǎng)站網(wǎng)絡(luò)公司佛山網(wǎng)站優(yōu)化
  • 中國建設(shè)銀行網(wǎng)站首頁英文營銷網(wǎng)課
  • 一些網(wǎng)站只能在微信打開怎么做的域名注冊(cè)要多少錢