第一章 自動化測試課程介紹和課程大綱
1系吩、自動化測試課程介紹
簡介:講解什么是自動化測試和課程大綱講解奕短,課程需要的基礎(chǔ)和學(xué)后的水平
python3.7+selenium3
pycharm
第二章自動化測試相關(guān)軟件安裝
1她紫、自動測試工具selenium介紹
簡介:介紹selenium自動化測試工具
為什么用selenium工具 1 -> 2 -> 3
1济赎、主流,各大公司都有用恶耽,開源免費社區(qū)活躍
2栓票、支持主流瀏覽器 火狐FireFox决左、谷歌chrome、IE(不建議)
3走贪、支持多個語言佛猛,如python、java,js坠狡、php等
4继找、跨平臺:mac、windows逃沿、linux等 64位系統(tǒng)
2婴渡、自動化測試環(huán)境搭建之python3安裝
簡介:使用windwos安裝python3
1、python3安裝
1)官方文檔安裝 下載解壓包
https://www.python.org/downloads/windows/
2)python環(huán)境變量安裝
3)pip工具介紹
包管理工具
3凯亮、自動化測試環(huán)境搭建之selenium3安裝
簡介:使用安裝包安裝selenium3
方法1:cmd環(huán)境下边臼,用pip install selenium
方法2:下載selenium安裝包手動安裝 (推薦)
下載地址:https://pypi.org/project/selenium/
在解壓好的目錄下進行安裝 python setup.py install
4、自動化測試工具selenium驗證安裝
簡介:講解自動化測試工具selenium安裝準(zhǔn)確性
下載火狐瀏覽器
1假消、使用selenium打開firefox瀏覽器
需要下載對應(yīng)的驅(qū)動
火狐:https://github.com/mozilla/geckodriver/releases
下載driver柠并、拷貝到瀏覽器安裝路徑、配置環(huán)境變量
配置環(huán)境變量富拗,需要重啟cmd窗口
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
5臼予、前端知識講解和工具安裝使用
簡介:講解前端基礎(chǔ)知識和推薦安裝的工具
sublime / cmder / chrome瀏覽器 / firefox瀏覽器
必須要了解的前端基礎(chǔ)知識:
html: 網(wǎng)頁基礎(chǔ),用于顯示數(shù)據(jù)
js: 網(wǎng)頁腳本啃沪,控制頁面的數(shù)據(jù)
css: 用于控制文件樣式
xml: 用來傳輸和存儲數(shù)據(jù)
json: 用來傳輸和存儲數(shù)據(jù)
http: 網(wǎng)絡(luò)請求協(xié)議
xpath:
第三章 測試核心理論知識-(工作面試必備)
1粘拾、必備知識之軟件開發(fā)生命周期
簡介:講解軟件開發(fā)的生命周期
1、測試人員需要全程參與
需求調(diào)研-》需求分析評審-》軟件架構(gòu)設(shè)計-》編碼-》單元測試-》集成測試-》系統(tǒng)測試-》預(yù)發(fā)布系統(tǒng)測試-》上線
測試人員要求開發(fā)人員寫單元測試
把控時間點谅阿、風(fēng)險點
接口文檔不完善(更新了需求功能半哟,不及時更新接口文檔)
2、測試相關(guān)知識分類講解
簡介: 測試分類講解
黑盒測試(功能測試):功能符合用戶的需求:
白盒測試:知道里面的邏輯签餐,驗證符合用戶的需求
冒煙測試:主功能寓涨、主路徑測試
自動化測試: 人工測試轉(zhuǎn)為工具自動執(zhí)行(沒有誰取代誰,有些場景適合自動化測試氯檐,有些場景適合手工測試)
性能測試:模擬多種峰值和負載去測試各項性能指標(biāo) jmeter戒良、loadrunner
3、自動化測試和手工測試優(yōu)缺點
簡介:介紹什么時候需要用到自動化測試和什么時候用手工測試
1冠摄、自動化測試方便糯崎,自動驗證功能是否有問題
2、更好的利用自有河泳,節(jié)約人力成本
3沃呢、覆蓋更全,增加軟件的穩(wěn)定性
場景:
軟件需求變更少拆挥,項目周期長薄霜,穩(wěn)定性要強,環(huán)境要隔離獨立(開發(fā)一套環(huán)境纸兔、測試一套環(huán)境)
如果整個系統(tǒng)需求變更多惰瓜,只能抽取部分功能做自動化測試
語言選擇:
python java ruby php
打造自己的唯一性
第四章 自動測試selenium精講實戰(zhàn)
1、selenium基礎(chǔ)實戰(zhàn)之定位網(wǎng)頁元素技巧上集
簡介:講解使用selenium定位網(wǎng)頁元素汉矿,
find_element_by_id崎坊,find_element_by_name,find_element_by_class_name
1洲拇、開啟瀏覽器
browser = webdriver.Firefox();
2奈揍、打開網(wǎng)頁
browser.get("http://baidu.com")
使用python判斷是否正確
browser.title 或者 browser.current_url
3、定位元素的8種方法,(8承4蛟隆!蚕捉!一定要唯一)
id: find_element_by_id() 采用id屬性進行定位
name: find_element_by_name() 定位方式和id定位相似奏篙,id、name和class一般在網(wǎng)頁都至少會有其中的一種
class name: find_element_by_class_name() 定位方式和id定位相似迫淹,id秘通、name和class一般在網(wǎng)頁都至少會有其中的一種
4、定位到元素后的方法
clear() //清空
send_keys() // 輸入
back() //后退頁面
maximize_window() // 最大化窗口
click() //點擊事件敛熬,點擊按鈕肺稀,超鏈接
submit() //提交表單
5、定位到元素后的屬性
tag_name //標(biāo)簽名
text //文本內(nèi)容
2应民、selenium基礎(chǔ)實戰(zhàn)之定位網(wǎng)頁元素技巧下集
簡介:講解使用selenium定位網(wǎng)頁元素话原,
1夕吻、tag name:find_element_by_tag_name() 通過標(biāo)簽名去定位,用的少繁仁,如find_element_by_tag_name("div")
2涉馅、link text: find_element_by_link_text() 超鏈接內(nèi)容定位,元素內(nèi)容
如 <a href="#">xxx </a>黄虱,則find_element_by_link_text("xxx")
from time import sleep
sleep(5)
3稚矿、partial link text:find_element_by_partial_link_text() 超鏈接內(nèi)容定位,模糊匹配捻浦,和上面類似
比較難下面的兩種晤揣,下節(jié)課講解
xpath:
css selector
3、selenium實戰(zhàn)定位網(wǎng)頁元素之CSS定位
簡介:講解使用css定位網(wǎng)頁元素
1朱灿、css selector:find_element_by_css_selector()
根據(jù)CSS屬性定位昧识,一般class是用.標(biāo)記,id是用#標(biāo)記盗扒,定位方式也會比xpath快
如 find_element_by_css_selector('input[id='search']') // 規(guī)則: 元素[屬性=值]
技巧:通過firebug的拷貝css路徑
路徑:審查元素-》右鍵-》復(fù)制-》css選擇器
4滞诺、selenium實戰(zhàn)定位網(wǎng)頁元素之xpath定位
簡介:講解使用xpath定位網(wǎng)頁元素
1、xpath語法:http://www.w3school.com.cn/xpath/xpath_syntax.asp
注意 : ”//“ 是全部的意思环疼,即全文掃描习霹, ”/“ 的相鄰的意思, *是所有元素, ”..“是元素的父節(jié)點, "."是當(dāng)前節(jié)點
2炫隶、xpath :find_element_by_xpath()xpath是XML路徑語言淋叶,通過元素的路徑來完成對元素的查找,HTML就是XML的一種實現(xiàn)方式伪阶,在FriePath插件里copy對應(yīng)的xpath地址
絕對路徑定位:從<html>標(biāo)簽開始依次往下進行查找
相對路徑:利用元素屬性來進行xpath定位
技巧:通過firebug的拷貝css路徑
8種選擇器注意問題:如果定位元素報錯煞檩,原因如下
1、根據(jù)定位取不到
2栅贴、多個元素根據(jù)下標(biāo)超出范圍斟湃,沒有0,從1開始
解決辦法:換其他方式定位元素
第五章 selenium實戰(zhàn)之模擬事件處理
1檐薯、自動化測試實戰(zhàn)之ActionChains模擬用戶行為
簡介:講解使用selenium里面的ActionChains模擬用戶的行為
需求:
需要模擬鼠標(biāo)操作才能進行的情況凝赛,比如單擊、雙擊坛缕、點擊鼠標(biāo)右鍵墓猎、拖拽
解決:selenium提供了一個類來處理這類事件
selenium.webdriver.common.action_chains.ActionChains(driver)
腳本:
from selenium.webdriver.common.action_chains import ActionChains
執(zhí)行原理:
調(diào)用ActionChains的方法時不會立即執(zhí)行,會將所有的操作按順序存放在一個隊列里赚楚,當(dāng)調(diào)用perform()方法時毙沾,隊列中的事件會依次執(zhí)行
支持鏈?zhǔn)綄懛ɑ蛘叻植綄懛?/p>
ActionChains(driver).click(ele).perform()
鼠標(biāo)和鍵盤方法列表:
perform() 執(zhí)行鏈中的所有動作
click(on_element=None) 單擊鼠標(biāo)左鍵
context_click(on_element=None) 點擊鼠標(biāo)右鍵
double_click(on_element=None) 雙擊鼠標(biāo)左鍵
move_to_element(to_element) 鼠標(biāo)移動到某個元素
ele.send_keys(keys_to_send) 發(fā)送某個詞到當(dāng)前焦點的元素
========== 不常用 ==========
click_and_hold(on_element=None) 點擊鼠標(biāo)左鍵,不松開
release(on_element=None) 在某個元素位置松開鼠標(biāo)左鍵
key_down(value, element=None) 按下某個鍵盤上的鍵
key_up(value, element=None) 松開某個鍵
drag_and_drop(source, target) 拖拽到某個元素然后松開
drag_and_drop_by_offset(source, xoffset, yoffset) 拖拽到某個坐標(biāo)然后松開
move_by_offset(xoffset, yoffset) 鼠標(biāo)從當(dāng)前位置移動到某個坐標(biāo)
move_to_element_with_offset(to_element, xoffset, yoffset) 移動到距某個元素(左上角坐標(biāo))多少距離的位置
send_keys_to_element(element, keys_to_send) 發(fā)送某個鍵到指定元素
2宠页、鼠標(biāo)事件實戰(zhàn)之hover菜單欄彈出
簡介:鼠標(biāo)事件之菜單欄hover彈出
1左胞、
引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
2寇仓、move_to_element(to_element) 鼠標(biāo)移動到某個元素
對定位到的元素執(zhí)行鼠標(biāo)移動到上面的操作
ActionChains(driver).move_to_element(ele1).perform()
3、多知識點綜合實戰(zhàn)之模擬用戶登錄
簡介:講解使用selenium模擬登錄小D課堂烤宙,并選擇課程
1遍烦、多知識點實戰(zhàn)
2、查找登錄框-》輸入用戶名和密碼-》觸發(fā)登錄-》判斷登錄是否成功-》打印結(jié)果
4门烂、自動化測試實戰(zhàn)之網(wǎng)頁等待時間
簡介:講解自動化測試的等待時間
1乳愉、為什么需要等待時間--》等系統(tǒng)穩(wěn)定
網(wǎng)頁需要加載對應(yīng)的資源文件兄淫,頁面渲染屯远,窗口處理等等
2、自動化測試常用的等待時間
強制等待 : (自己調(diào)試代碼看效果)
from time import sleep
sleep(5) # 強制等待5秒再執(zhí)行下一步,缺點是不管資源是不是完成捕虽,都必須等待
隱性等待:
driver.implicitly_wait(10) # 隱性等待慨丐,最長等10秒
設(shè)置了一個最長等待時間,如果在規(guī)定時間內(nèi)網(wǎng)頁加載完成泄私,則執(zhí)行下一步房揭,否則一直等到時間截止,然后執(zhí)行下一步晌端,弊端就是程序會一直等待整個頁面加載完成捅暴,到瀏覽器標(biāo)簽欄那個加載圈不再轉(zhuǎn)
注意:對driver起作用,所以只要設(shè)置一次即可咧纠,沒有必要到處設(shè)置
顯性等待:
WebDriverWait 需要配合 until和until_not蓬痒,程序每隔N秒檢查一次,如果成功漆羔,則執(zhí)行下一步梧奢,否則繼續(xù)等待,直到超過設(shè)置的最長時間
from selenium.webdriver.support.wait import WebDriverWait
語法:WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
結(jié)論: 隱性等待和顯性等待可以同時用演痒,等待的最長時間取兩者之中的較大者
更多課程資料可以查看https://xdclass.net/#/coursecatalogue?video_id=16
零基礎(chǔ)講解自動化測試亲轨,Selenium安裝到八種元素定位,用戶事件處理鸟顺,等待時間處理惦蚊,
到單元測試框架Unites整合實戰(zhàn),整合自動化測試實戰(zhàn)等核心知識點讯嫂。
贈送大量的學(xué)習(xí)資料以及干貨