Selenium自動化測試基礎


如有任何學習問題,可以添加作者微信:lockingfree

什么是自動化測試?

自動化測試是把大量需要人工回歸的用例由計算機代替執行的一種測試方式。
即:使用腳本控制計算機打開網頁,點擊鏈接,輸入文字,點擊按鈕等模擬人工執行一系列操作,抓取並判斷結果是否符合預期的過程
優點:

  • 節省大量的人力
  • 執行速度快
  • 可以利用夜間和周末執行
  • 方便持續集成和持續交付

缺點:

  • 開發自動化測試用例需要一定的成本(成本較高,周期長)
  • 不太適合快速迭代的項目
  • 一般需要在項目及UI穩定時方能介入自動化
  • 自動化測試一般執行原有的固定邏輯,不容易發現新bug
  • 自動化用例也會有bug,會對問題定位造成干擾
  • 不穩定的測試環境和自動化框架會造成很多次無效測試

自動化測試的介入條件

  1. 手工測試無法完成,需要投入大量的時間和人力
  2. 需求變更不頻繁,比較穩定
  3. 項目周期足夠長
  4. 自動化測試腳本可復用
  5. 手工測試基本通過

自動化測試工具

這里主要介紹兩款比較常用的自動化測試工具

  • Selenium: 一款開源的瀏覽器自動化框架,模擬瀏覽器操作,支持多種語言
  • QTP:HP公司一款老牌的自動化測試工具,具有強大的錄制功能和對象庫,方便易用

Selenium和QTP的對比

關注點 Selenium QTP
是否收費 開源、免費 商業、收費
開發語言 Python、Java、C#、PHP等 VBS
支持的瀏覽器 Chrome、IE、Firefox,Safari、Android等 IE、Firefox
支持的平台 Windows、Linux、Mac Windows
可擴展性 擴展性強 擴展性差

Selenium的安裝

  1. 安裝Python3(默認安裝pip並添加環境變量)
  2. pip install selenium
  3. 安裝最新版本的Chrome
  4. 下載最新版本(v2.43)的chromedriver.exe,放到Python安裝目錄的Scripts文件夾下
    Python/Scripts目錄

下載地址: http://npm.taobao.org/mirrors/chromedriver/

  1. 測試是否安裝成功,打開pycharm,新建文件demo01.py
    編寫腳本
from selenium import webdriver

dr = webdriver.Chrome()
dr.get("http://www.baidu.com")

能打開瀏覽器並挑戰到baidu頁面,表示安裝成功
打開瀏覽器窗口並訪問百度

html基礎知識講解

我們看到的網頁實際上是網頁源代碼通過瀏覽器渲染出來的,html控制基本布局,css控制樣式,js控制觸發交互邏輯

最基本的HTML結構

<!DOCTYPE html>
<html lang="en">
<head>                            <!--網頁標題-->
    <meta charset="UTF-8">
    <title>Title</title>          <!--網頁頭部信息-->
</head>
<body>
...                               <!--網頁主體內容-->
</body>
</html>
  • tag(標簽):每一個<>中為一個標簽,如html標簽,head標簽
  • text (文本):標簽與閉合中間(一般是最下級葉子標簽)的文本,如Title
  • attrib(標簽屬性):標簽中可以包含熟悉,如 lang="en" 是html標簽的屬性

常見屬性: id-頁面元素識別碼; class-元素使用的css樣式類;name-表單元素提交時的變量名

HTML常見元素

  • 鏈接:a標簽,href屬性是鏈接的網址,text是顯示的文本,如:<a href="http://www/baidu.com>baidu
  • 布局:div標簽,用於頁面布局
  • 表格:table標簽,tr表示行,td表示單元格
  • 表單:form標簽,用於提交信息等,按鈕,輸入框,單選,復選,下拉框等都屬於表單內的元素
  • 框架:iframe標簽,框架網頁實際上是由多個頁面組成

使用Chrome查看頁面元素

Chrome瀏覽器打開http:/www.baidu.com,按F12打開開發者工具,點擊開發者工具左上角的按鈕,然后點擊輸入框,定位到輸入框元素的代碼
定位輸入框元素
可以看到,該輸入框為input標簽,id屬性為kw,name熟悉為wd,class熟悉為s_ipt

此為北京龍騰育才 Python高級自動化(Selenium部分)授課筆記
課程介紹
想要參加現場(北京)/網絡課程的可以聯系作者微信:lockingfree

  1. 高效學習,快速掌握Python自動化所有領域技能
  2. 同步快速解決各種問題
  3. 配套實戰項目練習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM