国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第一章 Web自動化入門

這篇具有很好參考價值的文章主要介紹了第一章 Web自動化入門。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、WEB自動化簡介

1.1 什么是自動化?

1、概念

由機器設(shè)備代替人工自動完成指定目標的過程

2、優(yōu)點

  1. 減少人工勞動力
  2. 提高工作效率
  3. 產(chǎn)品規(guī)格統(tǒng)一標準
  4. 規(guī)格化(批量生產(chǎn))

1.2 什么是自動化測試?

概念:讓程序代替人工去驗證系統(tǒng)功能的過程

1.3 自動化測試能解決什么問題?

  1. 解決-回歸測試(重點)
  2. 解決-壓力測試
  3. 解決-兼容性測試(瀏覽器、分辨率、操作系統(tǒng))
  4. 提高測試效率,保證產(chǎn)品質(zhì)量

回歸測試:項目在發(fā)新版本之后對項目之前的功能進行驗證
壓力測試:可以理解多用戶同時去操作軟件,統(tǒng)計軟件服務(wù)器處理多用戶請求的能力
兼容性測試:不同瀏覽器(IE、Firefox、Chrome)等

1.4 自動化測試相關(guān)知識

1、優(yōu)點

  1. 較少的時間內(nèi)運行更多的測試用例
  2. 自動化腳本可重復(fù)運行
  3. 減少人為的錯誤
  4. 克服手工測試的局限性(圖片大小)
    自動化測試覆蓋率50%~60%

2、誤區(qū)

  1. 自動化測試可以完全代替手工測試
  2. 自動化測試一定比手工測試厲害
  3. 自動化測試可以發(fā)掘更多的bug
  4. 自動化測試用于所有功能

3、自動化測試分類

  1. Web-自動化測試
  2. 移動-自動化測試
  3. 接口-自動化測試
  4. 單元測試-自動化測試

1.5 什么是Web自動化測試?

1、概念

程序代替人工自動驗證Web項目功能的過程

2、什么Web項目適合做自動化測試

  1. 需求變動不頻繁
  2. 項目周期長
  3. 項目需要回歸測試

3、Web自動化測試在什么階段開始?

功能測試完畢(手工測試)(1、時間問題;2、功能不完善)

4、Web自動化測試所屬分類

按照代碼可見度劃分:

  1. 黑盒測試(功能測試)
  2. 白盒測試(單元測試)
  3. 灰盒測試(接口測試)

Web自動化測試屬于黑盒測試(功能測試)

二、Web自動化測試工具選擇

1.1 主流的Web自動化測試工具

  1. QTP:收費,支持Web,桌面自動化測試
  2. Selenium(本階段學(xué)習(xí)):開源的Web自動化測試工具,免費,主要做功能測試
  3. Robot framework:基于Python可擴展地關(guān)鍵字驅(qū)動的測試自動化框架,2014停止更新

Web自動化測試的三板斧:
● 定位元素
● 交互元素
● 進行斷言

2.1、 什么是Selenium?

Selenium是一個用于Web應(yīng)用程序的自動化測試工具

1、 Selenium特點

  1. 開源軟件:源代碼開放可以根據(jù)需要來增加工具的某些功能
  2. 跨平臺:Linux、Windows、Mac
  3. 支持多種瀏覽器:Firefox、Chrome、IE
  4. 支持多種語言:Python、Java、C#、JavaScript、Ruby、PHP等
  5. 成熟穩(wěn)定:目前已經(jīng)被谷歌、百度、騰訊等公司廣泛使用
  6. 功能強大:支持商業(yè)化大部分功能,由于開源,可定制化功能

2、Python+Selenium環(huán)境搭建

python+Pychram+selenium+chrome+谷歌瀏覽器驅(qū)動
谷歌版本和瀏覽器驅(qū)動一定要一致

  1. Terminal中安裝selenium:pip install selenium

查看:pip show selenium
卸載:pip unistall selenium
擴展:
○ 安裝指定版本:pip install selenium==版本號
○ pip是python中包管理工具(可以安裝,卸載,查看python工具)
○ pip list:查看通過pip包管理工具安裝的插件或工具
提示:
使用pip必須聯(lián)網(wǎng);默認安裝python3.5版本以上工具,自帶pip包管理工具,默認會自動安裝并且添加path環(huán)境變量

  1. 查看Chorme的版本 web自動化,前端,自動化,單元測試,python

  2. 打開中國鏡像站,下載驅(qū)動。中國鏡像網(wǎng)址

  3. 點擊Chrome Driver鏡像。Chrome驅(qū)動
    web自動化,前端,自動化,單元測試,python

  4. 選擇和Chrome版本最近的驅(qū)動進行下載
    web自動化,前端,自動化,單元測試,python

  5. 將驅(qū)動下載到指定文件夾,并將所在目錄添加到系統(tǒng)path環(huán)境變量中
    web自動化,前端,自動化,單元測試,python
    web自動化,前端,自動化,單元測試,python

  6. 導(dǎo)包,測試是否安裝成功
    web自動化,前端,自動化,單元測試,python

3、科普path

說明:指定系統(tǒng)搜索的目錄

dos命令默認搜索順序:

  1. 檢測是否為內(nèi)部命令
  2. 檢測是否為當下目錄可執(zhí)行文件
  3. 檢測path環(huán)境指定的目錄
  4. 如果以上搜索目錄都檢測不到輸入的命令或可執(zhí)行文件,系統(tǒng)會拋出不是內(nèi)部或外部命令

在web環(huán)境中,如果不將瀏覽器驅(qū)動添加到path中,會提示selenium驅(qū)動有誤

4、第一個案例

1、導(dǎo)包
import time
from selenium import webdriver

2、獲取谷歌瀏覽器對象
driver = webdriver.Chrome()

3、打開網(wǎng)頁
driver.get("https://www.baidu.com/")

#暫停三秒
time.sleep(3)

#退出瀏覽器
driver.quit()

5、pycharm安裝軟件

推薦原因:安裝到當前工程環(huán)境內(nèi)
提示:如果使用pip install插件名安裝過后,打開pycharm導(dǎo)包操作時,提示找不到此包,說明使用pip install默認安裝的路徑和當前工程的環(huán)境路徑不是同一個環(huán)境,進行以上處理可以解決問題。
web自動化,前端,自動化,單元測試,python

三、八大元素定位

3.1 為什么要學(xué)習(xí)元素定位?

----讓程序操作執(zhí)行元素,就必須先找到此元素。

3.2 定位元素時依賴于什么?

● 標簽名
● 屬性
● 層級
● 路徑

3.3 面試題

如果元素定位不到,你是怎么去分析的?

  1. 元素沒有加載完成
  2. Frame中
  3. 元素不可用,不可讀,不可見
  4. 動態(tài)屬性/動態(tài)的DIV層

3.4 使用定位策略

  1. driver.find_element_by_id() # 被棄用了
  2. driver.find_element(By.ID,“”) # 推薦,定位一個元素
  3. driver.find_elements(By.ID,“”) # 定位一組元素
    元素定位的前提:需要定位的元素或它的屬性必須要唯一。

3.5 八大元素

  1. id
  2. name
  3. class_name(使用元素的class屬性)
  4. xpath(基于文件路徑)
  5. css(元素選擇器定位)
  6. tag_name(元素的標簽名稱<input …/>)
  7. link_text(定位超鏈接,a標簽)
  8. partail_link_text(定位超鏈接,a標簽 模糊)

匯總:
1.基于元素屬性特有定有定位:id/name/class_name
2. 基于元素標簽名稱定位:tag_name
3. 定位超鏈接文本:link_text/partail_link_text
4. 基于元素路徑定位:xpath
5. 基于選擇器:css

"""底層代碼"""
from selenium.webdriver.common.by import By

    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"

1、id

HTML規(guī)定id屬性在HTML文檔中必須是唯一的
driver.find_element(By.ID, “id名”).send_keys(“輸入內(nèi)容”)

#打開瀏覽器
driver = webdriver.Chrome()

 加載網(wǎng)頁
driver.get("https://www.baidu.com/")

 定位元素(利于封裝)
driver.find_element(By.ID, "kw").send_keys("輸入的內(nèi)容")

2、name

driver.find_element(By.NAME, "wd").send_keys("輸入的內(nèi)容")

3、class_name

driver.find_element(By.CLASS_NAME,"login-top")

4、tag_name

通過標簽名來定位,一般很少使用
如果頁面中存在多個相同的標簽名,默認返回第一個

driver.find_element(By.TAG_NAME,"input").send_keys("admin")

5、link_text

精確匹配超鏈接

driver.find_element(By.LINK_TEXT,"新聞").click()

6、partail_link_text

模糊匹配超鏈接

driver.find_element(By.PARTIAL_LINK_TEXT,"新").click()

7、xpath

如果要定位的元素沒有id、name、class屬性,該如何進行定位?
----使用xpath。

xPath是XML Path的簡稱,是一門在XML文檔中查找元素信息的語言
XML是一種標記語言。
● 本質(zhì)是一種查詢語言
●支持邏輯運算、函數(shù)
● 實現(xiàn)非常強大的功能
● 可以用于APP自動化測試

依賴于元素的路徑:
● 絕對路徑:/開頭是絕對路徑
● 相對路徑://開頭是相對路徑

#1、相對路徑+索引定位   //form/span/input
driver.find_element(By.XPATH,"http://form/span/input").send_keys("輸入的內(nèi)容")

 #2、相對路徑+屬性定位   //input[@autocomplete='off']
driver.find_element(By.XPATH,"http://input[@autocomplete='off']").send_keys("輸入的內(nèi)容")

 #3、相對路徑+通配符定位  *復(fù)制xpath不是萬能的,經(jīng)常會報錯
driver.find_element(By.XPATH,"http://*[@autocomplete='off']").send_keys("輸入的內(nèi)容")
driver.find_element(By.XPATH,"http://*[@*='off']").send_keys("輸入的內(nèi)容")

#4、相對路徑+部分屬性值定位	input[starts-with(@autocomplete,'of')]
driver.find_element(	# auto屬性以of開頭:starts-with
    By.XPATH,"http://input[starts-with(@autocomplete,'of')]"
).send_keys("輸入的內(nèi)容")
	
driver.find_element(	# auto屬性從第二個字符開始截取,為ff的:substring
    By.XPATH,"http://input[substring(@autocomplete,2)='ff']"
).send_keys("輸入的內(nèi)容")

driver.find_element(	# auto屬性包含字符of:contains
    By.XPATH,"http://input[contains(@autocomplete,'of')]"
).send_keys("輸入的內(nèi)容")

#5、相對路徑+文本定位
value = driver.find_element(
    By.XPATH,"http://span[text()='按圖片搜索']"
).get_attribute('class')

1、XPATH的語法

語法:表示層級+屬性

  1. /(開頭)表示根路徑
    /html/body/div
  2. //(任意層級)(包括下級、下級的下級…)
    //div
  3. @屬性
    ‘//a[@target=“_top”]’
  4. /(中間)表示下一級
    ‘//p//input’
  5. .表示本級
  6. …表示上一級

2、 XPATH的函數(shù)

函數(shù)是XPATH另一個魅力,常用的函數(shù):
● text:獲取元素內(nèi)的文本
● contains:任意位置包含匹配
● starts-with:開頭
● substring:截取
$x(“//a[text=(vivoX5MAX L 移動4G 八核超薄大屏5.5雙卡)]”)
$x(“//a[contains( text=(),‘vivo’) ]”)
$x(“//a[start-with( text=(),‘vivo’) ]”)
$x(“//a[substring(@name,2)=‘vi’ ]”)

3.8 css

1. id選擇器

  • 前提:元素必須有id屬性
  • 語法:#id 如:#password

2. class選擇器

  • 前提:元素必須是有class屬性
  • 語法:.class 如:.telA

3. 元素選擇器

  • 語法:element 如:input

4. 屬性選擇器

  • 語法:[屬性名=屬性值]

5. 層級選擇器

  • 語法:
    p>input
    p input
  • 提示:
    大于號和空格的區(qū)別,大于號必須為子元素,空格則不用

6. 【css延伸】

input[type^=‘p’] type屬性以p字母開頭的元素
input[type$=‘d’] type屬性以d字母結(jié)束的元素
input[type*=‘w’] type屬性包含w字母的元素

#1.使用css id選擇器 定位用戶名 輸入admin
driver.find_element(By.CSS_SELECTOR, "#userA").send_keys("admin")

#2.使用css 屬性選擇器 定位密碼框 輸入123456
driver.find_element(By.CSS_SELECTOR, "[name='passwordA']").send_keys("123456")

#3.使用css class選擇器 定位電話號碼 輸入18611112222
driver.find_element(By.CSS_SELECTOR, ".telA").send_keys("18611112222")

#4.使用css 元素選擇器 定位span標簽獲取文本值
span = driver.find_element(By.CSS_SELECTOR, "span").text
print("獲取的span標簽文本值為:",span)

#5.使用層級選擇器 定位email 輸入123@qq.com
driver.find_element(
    By.CSS_SELECTOR,"p>input[placeholder='電子郵箱A']"
).send_keys("123@qq.com")

3.9 XPATH和CSS類似功能對比

定位方式 XPath CSS
元素名 //input input
id //input[@id=‘userA’] @userA
class //*[@class=‘telA’] .telA
屬性 1.//*[text()==“xxx”]
2.//input[starts-with(@attribute,‘xxx’)]
3.//input[contains(@attribute,‘xxx’)]
1.input[type^=‘p’]
2.input[type$=‘d’
3.input[type*=‘w’]

3.10 定位一組元素

  • 方法:find_elements(By.元素,xxx)
  • 返回結(jié)果:類型為列表,要對列表進行訪問和操作必須指定下標或進行遍歷,下標從0開始

四、UnitTest

4.1 unittest使用方式

  1. 導(dǎo)包:import unittest、from selenium import webdriver
  2. 創(chuàng)建測試類繼承unittest.TestCase
  3. 寫一個以test_開頭的測試方法
import unittest
from selenium import webdriver


class TestCase(unittest.TestCase):
    def test_01_login(self):
        
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestCase(unittest.TestCase):
    def test_01_login(self):
        global driver
        # 1、打開瀏覽器
        driver = webdriver.Chrome()
        # 2、加載網(wǎng)頁
        driver.get("https://www.baidu.com/")
        # 3、定位元素
        driver.find_element(By.XPATH, "http://form/span/input").send_keys("輸入的內(nèi)容")

unittest運行測試用例的一個很大的坑:

4.2 兩種運行方式

  1. 命令行方式:(不需要考慮環(huán)境)
  • python -m unittest 模塊名.py —>執(zhí)行整個模塊
  • python -m unittest 模塊名.類名.方法名 —>執(zhí)行單個方法
  1. main方式 -->必須要配置環(huán)境

web自動化,前端,自動化,單元測試,python
web自動化,前端,自動化,單元測試,python文章來源地址http://www.zghlxwxcb.cn/news/detail-726799.html

到了這里,關(guān)于第一章 Web自動化入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【web自動化測試】入門篇 01—— 框架介紹

    【web自動化測試】入門篇 01—— 框架介紹

    web自動化測試作為軟件自動化測試領(lǐng)域中繞不過去的一個“香餑餑”,通常都會作為廣大測試從業(yè)者的首選學(xué)習(xí)對象,相較于C/S架構(gòu)的自動化來說,B/S有著其無法忽視的諸多優(yōu)勢,從行業(yè)發(fā)展趨、研發(fā)模式特點、測試工具支持,其整體的完整生態(tài)已經(jīng)遠遠超過了C/S架構(gòu)方面的

    2024年02月09日
    瀏覽(27)
  • Web自動化測試:Selenium入門到精通

    Web自動化測試:Selenium入門到精通

    說到自動化測試,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。 Selenium學(xué)習(xí)難度小,開發(fā)周期短。對測試人員來說,如果你編程經(jīng)驗不足,python + Selenium 是個很好的選擇。語法簡

    2024年02月03日
    瀏覽(51)
  • 【iOS自動化測試】第一章:方案調(diào)研

    【iOS自動化測試】第一章:方案調(diào)研

    目前Android端已完成了相應(yīng)的框架搭建,并實際落地產(chǎn)出了,由于Android使用的是Unittest+HtmlTestRunner產(chǎn)出報告,需要增加新功能的話需要改動到底層框架,所以目前在負責(zé)的iOS端打算采用Pytest+Allure方式來進行,優(yōu)點是更好的插件支持,報告也會更好看(裝逼)點 PS:Android端自動

    2024年02月09日
    瀏覽(26)
  • Cypress之Web UI 自動化測試入門

    Cypress之Web UI 自動化測試入門

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! 1、在Windows 7以上的環(huán)境中,可以直接下載壓縮包后,解壓使用。 ?

    2024年03月20日
    瀏覽(34)
  • Web自動化測試-Selenium語法入門到精通

    前言 說到自動化測試,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。 Selenium學(xué)習(xí)難度小,開發(fā)周期短。對測試人員來說,如果你編程經(jīng)驗不足,python + Selenium 是個很好的選擇。語

    2024年02月11日
    瀏覽(24)
  • web自動化測試入門篇07 ——— 用例編寫技巧

    web自動化測試入門篇07 ——— 用例編寫技巧

    ? ? ?? 作者簡介:博主是一位測試管理者,同時也是一名對外企業(yè)兼職講師。 ?? 主頁地址:【Austin_zhai】 ?? 目的與景愿:旨在于能幫助更多的測試行業(yè)人員提升軟硬技能,分享行業(yè)相關(guān)最新信息。 ?? 聲明:博主日常工作較為繁忙,文章會不定期更新,各類行業(yè)或職場問

    2023年04月25日
    瀏覽(22)
  • 軟測入門(三)Selenium(Web自動化測試基礎(chǔ))

    軟測入門(三)Selenium(Web自動化測試基礎(chǔ))

    Selenium是一個用于Web應(yīng)用程序測試的工具:中文是 硒 開源 跨平臺:linux、windows、mac 核心:可以在多個瀏覽器上進行自動化測試 多語言 Selenium WebDriver控制原理 Selenium Client Library:通過他們提供的庫來編寫腳本,可以使用Java、Python等進行編寫腳本 JSON Wire Protocol是在HTTP服務(wù)器之

    2024年02月12日
    瀏覽(43)
  • web自動化測試入門篇06 —— 元素定位進階技巧

    web自動化測試入門篇06 —— 元素定位進階技巧

    ? ?? 作者簡介:博主是一位測試管理者,同時也是一名對外企業(yè)兼職講師。 ?? 主頁地址:【Austin_zhai】 ?? 目的與景愿:旨在于能幫助更多的測試行業(yè)人員提升軟硬技能,分享行業(yè)相關(guān)最新信息。 ?? 聲明:博主日常工作較為繁忙,文章會不定期更新,各類行業(yè)或職場問題

    2024年02月05日
    瀏覽(30)
  • web自動化測試入門篇04——selenium+python基礎(chǔ)方法封裝

    web自動化測試入門篇04——selenium+python基礎(chǔ)方法封裝

    ? ? ?? 作者簡介:博主是一位測試管理者,同時也是一名對外企業(yè)兼職講師。 ?? 主頁地址:【Austin_zhai】 ?? 目的與景愿:旨在于能幫助更多的測試行業(yè)人員提升軟硬技能,分享行業(yè)相關(guān)最新信息。 ?? 聲明:博主日常工作較為繁忙,文章會不定期更新,各類行業(yè)或職場問

    2024年02月03日
    瀏覽(21)
  • Web自動化測試流程:從入門到精通,幫你成為測試專家

    Web自動化測試流程:從入門到精通,幫你成為測試專家

    ? B站首推!2023最詳細自動化測試合集,小白皆可掌握,讓測試變得簡單、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db ? 目錄 摘要: 步驟一:選取測試工具 步驟二:編寫測試用例

    2024年02月07日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包