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

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

一、自動化測試課程介紹css

簡介:講解什麼是自動化測試和課程大綱講解,課程須要的基礎和學後的水平html

python3.7+selenium3前端

pycharmjava

第二章自動化測試相關軟件安裝python

一、自動測試工具selenium介紹linux

簡介:介紹selenium自動化測試工具git

爲何用selenium工具 1 -> 2 -> 3github

一、主流,各大公司都有用,開源免費社區活躍web

二、支持主流瀏覽器 火狐FireFox、谷歌chrome、IE(不建議)

三、支持多個語言,如python、java,js、php等

四、跨平臺:mac、windows、linux等  64位系統

 

二、自動化測試環境搭建之python3安裝

簡介:使用windwos安裝python3

一、python3安裝 

1)官方文檔安裝 下載解壓包

https://www.python.org/downloads/windows/

2)python環境變量安裝

3)pip工具介紹

包管理工具

 

三、自動化測試環境搭建之selenium3安裝

簡介:使用安裝包安裝selenium3

方法1:cmd環境下,用pip install selenium 

方法2:下載selenium安裝包手動安裝 (推薦)

下載地址:https://pypi.org/project/selenium/

在解壓好的目錄下進行安裝  python setup.py install

 

四、自動化測試工具selenium驗證安裝

簡介:講解自動化測試工具selenium安裝準確性

下載火狐瀏覽器

一、使用selenium打開firefox瀏覽器

須要下載對應的驅動

火狐:https://github.com/mozilla/geckodriver/releases

下載driver、拷貝到瀏覽器安裝路徑、配置環境變量

配置環境變量,須要重啓cmd窗口

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("http://www.baidu.com")

 

五、前端知識講解和工具安裝使用

簡介:講解前端基礎知識和推薦安裝的工具

sublime  / cmder  /   chrome瀏覽器  /  firefox瀏覽器

必需要了解的前端基礎知識:

html: 網頁基礎,用於顯示數據

js: 網頁腳本,控制頁面的數據

css: 用於控制文件樣式

xml: 用來傳輸和存儲數據

json: 用來傳輸和存儲數據

http: 網絡請求協議

xpath:

 

第三章 測試核心理論知識-(工做面試必備)

一、必備知識之軟件開發生命週期

簡介:講解軟件開發的生命週期

一、測試人員須要全程參與

需求調研-》需求分析評審-》軟件架構設計-》編碼-》單元測試-》集成測試-》系統測試-》預發佈系統測試-》上線

測試人員要求開發人員寫單元測試

把控時間點、風險點

接口文檔不完善(更新了需求功能,不及時更新接口文檔)

 

二、測試相關知識分類講解

簡介: 測試分類講解

黑盒測試(功能測試):功能符合用戶的需求:

白盒測試:知道里面的邏輯,驗證符合用戶的需求

冒煙測試:主功能、主路徑測試

自動化測試: 人工測試轉爲工具自動執行(沒有誰取代誰,有些場景適合自動化測試,有些場景適合手工測試)

性能測試:模擬多種峯值和負載去測試各項性能指標 jmeter、loadrunner

 

三、自動化測試和手工測試優缺點

簡介:介紹何時須要用到自動化測試和何時用手工測試

一、自動化測試方便,自動驗證功能是否有問題

二、更好的利用自有,節約人力成本

三、覆蓋更全,增長軟件的穩定性

場景:

軟件需求變動少,項目週期長,穩定性要強,環境要隔離獨立(開發一套環境、測試一套環境)

若是整個系統需求變動多,只能抽取部分功能作自動化測試

語言選擇:

python  java   ruby  php

打造本身的惟一性

 

第四章 自動測試selenium精講實戰

一、selenium基礎實戰之定位網頁元素技巧上集

簡介:講解使用selenium定位網頁元素,

find_element_by_id,find_element_by_name,find_element_by_class_name

一、開啓瀏覽器

browser = webdriver.Firefox();

二、打開網頁

browser.get("http://baidu.com")

使用python判斷是否正確

browser.title 或者 browser.current_url

三、定位元素的8種方法,(!!!!必定要惟一)

id: find_element_by_id() 採用id屬性進行定位

name: find_element_by_name() 定位方式和id定位類似,id、name和class通常在網頁都至少會有其中的一種

class name: find_element_by_class_name() 定位方式和id定位類似,id、name和class通常在網頁都至少會有其中的一種

四、定位到元素後的方法

clear() //清空

send_keys() // 輸入

back()  //後退頁面

maximize_window() // 最大化窗口

click()   //點擊事件,點擊按鈕,超連接

submit() //提交表單

五、定位到元素後的屬性

tag_name  //標籤名

text  //文本內容 

 

二、selenium基礎實戰之定位網頁元素技巧下集

簡介:講解使用selenium定位網頁元素,

一、tag name:find_element_by_tag_name() 經過標籤名去定位,用的少,如find_element_by_tag_name("div")

二、link text: find_element_by_link_text() 超連接內容定位,元素內容

如  <a href="#">xxx </a>,則find_element_by_link_text("xxx")

from time import sleep 

sleep(5)

三、partial link text:find_element_by_partial_link_text() 超連接內容定位,模糊匹配,和上面相似

比較難下面的兩種,下節課講解

xpath:

css selector

 

三、selenium實戰定位網頁元素之CSS定位

簡介:講解使用css定位網頁元素

一、css selector:find_element_by_css_selector()

根據CSS屬性定位,通常class是用.標記,id是用#標記,定位方式也會比xpath快

如 find_element_by_css_selector('input[id=\'search\']')   // 規則:  元素[屬性=值]

技巧:經過firebug的拷貝css路徑

路徑:審查元素-》右鍵-》複製-》css選擇器

 

四、selenium實戰定位網頁元素之xpath定位

簡介:講解使用xpath定位網頁元素

一、xpath語法:http://www.w3school.com.cn/xpath/xpath_syntax.asp

注意 :  」//「 是所有的意思,即全文掃描,  」/「 的相鄰的意思, *是全部元素, 」..「是元素的父節點, "."是當前節點

二、xpath :find_element_by_xpath()xpath是XML路徑語言,經過元素的路徑來完成對元素的查找,HTML就是XML的一種實現方式,在FriePath插件裏copy對應的xpath地址

絕對路徑定位:從<html>標籤開始依次往下進行查找

相對路徑:利用元素屬性來進行xpath定位

技巧:經過firebug的拷貝css路徑

8種選擇器注意問題:若是定位元素報錯,緣由以下

一、根據定位取不到

二、多個元素根據下標超出範圍,沒有0,從1開始

解決辦法:換其餘方式定位元素

 

第五章 selenium實戰之模擬事件處理

一、自動化測試實戰之ActionChains模擬用戶行爲

簡介:講解使用selenium裏面的ActionChains模擬用戶的行爲

需求:

須要模擬鼠標操做才能進行的狀況,好比單擊、雙擊、點擊鼠標右鍵、拖拽

解決:selenium提供了一個類來處理這類事件

selenium.webdriver.common.action_chains.ActionChains(driver)

腳本:

from selenium.webdriver.common.action_chains import ActionChains

執行原理:

調用ActionChains的方法時不會當即執行,會將全部的操做按順序存放在一個隊列裏,當調用perform()方法時,隊列中的事件會依次執行

支持鏈式寫法或者分步寫法

ActionChains(driver).click(ele).perform()

鼠標和鍵盤方法列表:

perform() 執行鏈中的全部動做

click(on_element=None) 單擊鼠標左鍵

context_click(on_element=None) 點擊鼠標右鍵

double_click(on_element=None) 雙擊鼠標左鍵

move_to_element(to_element) 鼠標移動到某個元素

ele.send_keys(keys_to_send) 發送某個詞到當前焦點的元素

========== 不經常使用 ==========

click_and_hold(on_element=None) 點擊鼠標左鍵,不鬆開

release(on_element=None) 在某個元素位置鬆開鼠標左鍵

key_down(value, element=None) 按下某個鍵盤上的鍵

key_up(value, element=None) 鬆開某個鍵

drag_and_drop(source, target) 拖拽到某個元素而後鬆開

drag_and_drop_by_offset(source, xoffset, yoffset) 拖拽到某個座標而後鬆開

move_by_offset(xoffset, yoffset) 鼠標從當前位置移動到某個座標

move_to_element_with_offset(to_element, xoffset, yoffset) 移動到距某個元素(左上角座標)多少距離的位置

send_keys_to_element(element, keys_to_send) 發送某個鍵到指定元素

 

二、鼠標事件實戰之hover菜單欄彈出

簡介:鼠標事件之菜單欄hover彈出

一、

#引入 ActionChains 類

from selenium.webdriver.common.action_chains import ActionChains

二、move_to_element(to_element) 鼠標移動到某個元素

#對定位到的元素執行鼠標移動到上面的操做

ActionChains(driver).move_to_element(ele1).perform()

 

三、多知識點綜合實戰之模擬用戶登陸

簡介:講解使用selenium模擬登陸小D課堂,並選擇課程

一、多知識點實戰

二、查找登陸框-》輸入用戶名和密碼-》觸發登陸-》判斷登陸是否成功-》打印結果

 

四、自動化測試實戰之網頁等待時間

簡介:講解自動化測試的等待時間

一、爲何須要等待時間--》等系統穩定

網頁須要加載對應的資源文件,頁面渲染,窗口處理等等

二、自動化測試經常使用的等待時間

強制等待 : (本身調試代碼看效果)

from time import sleep   

sleep(5)  # 強制等待5秒再執行下一步,缺點是無論資源是否是完成,都必須等待

隱性等待:

driver.implicitly_wait(10)  # 隱性等待,最長等10秒

#設置了一個最長等待時間,若是在規定時間內網頁加載完成,則執行下一步,不然一直等到時間截止,而後執行下一步,弊端就是程序會一直等待整個頁面加載完成,到瀏覽器標籤欄那個加載圈再也不轉

注意:對driver起做用,因此只要設置一次便可,沒有必要處處設置

顯性等待:

WebDriverWait 須要配合 until和until_not,程序每隔N秒檢查一次,若是成功,則執行下一步,不然繼續等待,直到超過設置的最長時間

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

結論: 隱性等待和顯性等待能夠同時用,等待的最長時間取二者之中的較大者

 

更多課程資料能夠查看https://xdclass.net/#/coursecatalogue?video_id=16

零基礎講解自動化測試,Selenium安裝到八種元素定位,用戶事件處理,等待時間處理,

到單元測試框架Unites整合實戰,整合自動化測試實戰等核心知識點。

贈送大量的學習資料以及乾貨

相關文章
相關標籤/搜索