18年selenium3+python3+unittest自動化測試教程(上)

第一章 自動化測試課程介紹和課程大綱

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í)資料以及干貨

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末养筒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子端姚,更是在濱河造成了極大的恐慌晕粪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渐裸,死亡現(xiàn)場離奇詭異巫湘,居然都是意外死亡装悲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門尚氛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诀诊,“玉大人,你說我怎么就攤上這事阅嘶∈舭辏” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵讯柔,是天一觀的道長抡蛙。 經(jīng)常有香客問我,道長魂迄,這世上最難降的妖魔是什么粗截? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮捣炬,結(jié)果婚禮上熊昌,老公的妹妹穿的比我還像新娘。我一直安慰自己湿酸,他們只是感情好婿屹,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著推溃,像睡著了一般昂利。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上美莫,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天页眯,我揣著相機與錄音,去河邊找鬼厢呵。 笑死窝撵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的襟铭。 我是一名探鬼主播碌奉,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寒砖!你這毒婦竟也來了缠劝?” 一聲冷哼從身側(cè)響起艺晴,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帆竹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杭煎,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了盖呼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡化撕,死狀恐怖几晤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情植阴,我是刑警寧澤蟹瘾,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站掠手,受9級特大地震影響憾朴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惨撇,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一伊脓、第九天 我趴在偏房一處隱蔽的房頂上張望府寒。 院中可真熱鬧魁衙,春花似錦、人聲如沸株搔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纤房。三九已至纵隔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炮姨,已是汗流浹背捌刮。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舒岸,地道東北人绅作。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蛾派,于是被迫代替她去往敵國和親俄认。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 洞見SELENIUM自動化測試 寫在最前面:目前自動化測試并不屬于新鮮的事物洪乍,或者說自動化測試的各種方法論已經(jīng)層出...
    厲鉚兄閱讀 6,728評論 3 47
  • 摘要: 之前用Selenium做UI自動化測試從初學(xué)到熟練碰到過很多問題眯杏,這里就不一一細說了,所以把最基本的操作都...
    Vicky_習(xí)慣做唯一閱讀 11,383評論 1 23
  • 現(xiàn)狀 好久好久沒有更新博客了壳澳,應(yīng)該有一個月了吧岂贩,這段時間內(nèi),好忙巷波,公司的業(yè)務(wù)在上漲期萎津,但是卻把下面的一個小朋友砍掉...
    jb2閱讀 1,295評論 0 2
  • 這篇文章在介紹官網(wǎng)的同時使用了比較多的腳本示例科平,示例里遇到的問題有部分在本篇文章進行了解釋,還有一篇文章專門記錄了...
    顧顧314閱讀 12,927評論 3 32
  • 基于 SELENIUM 的自動化測試架構(gòu) 非常感謝各位查閱本篇文章姜性,筆者在此感謝各位瞪慧。 目前市面上有分門別類的自動...
    厲鉚兄閱讀 6,071評論 6 43