自动化测试简介及环境搭建
一、自動化測試簡介
1. 自動化測試本質
通過自動化的形式來模擬人工一系列操作(面試可能會問,結合一個場景來回答)
打開項目->定位元素->操作元素->模擬頁面動作->斷言結果->生成報告
舉例:云商系統
(1)打開云商系統地址
(2)定位輸入框
(3)操作控件:給輸入框輸入內容,如輸入“男裝”,并點擊搜索
(4)跳轉到對應頁面后,模擬頁面動作,如下拉、上劃、頁面滑動
(5)斷言結果,通過自動化的形式判斷預期結果與實際結果是否一致,一致則pass,不一致則fail
(6)生成報告
對于自動化,不能跨步走,即不能在頁面1(首頁)去操作頁面2(購物車)的控件
2. 自動化測試適用場景
(1)需求不頻繁變動
如果項目還處于探索階段,不知道項目會發展成什么樣子,此時需求會頻繁變動,頁面的功能也會變化。UI自動化是基于用戶界面和功能的,不適合需求頻繁變動的項目。最好是在1.0版本已經上線,基本功能已經穩定,之后是不斷地迭代更新功能,整個產品需求走勢已經確定時開始進行UI自動化工作。
(2)項目周期較長
3個月及其以上,且基于項目穩定的情況下
(3)UI比較穩定
UI指頁面的布局、控件和功能的顯示,UI穩定和需求不頻繁變動是相關聯的
(4)大量回歸測試任務(重復的老功能)
3. 自動化適用測試階段
(1)冒煙測試(核心主干功能,對新功能的冒煙)
(2)回歸測試(對老功能的回歸,迭代的功能對老功能是否有影響)
4. 不適合UI自動化測試的場景
(1)音頻播放器(音視頻交互性太強,無法拿到視頻源,黑屏、藍屏等無法判斷)
(2)打電話
(3)游戲類
國內的敏捷迭代一般2周1個版本,最慢1個月1個迭代,有些公司1周一個迭代
5. UI自動化測試設計原則
| 1 | 一個case完成一個功能點測試 | 一個自動化case對應1條手工測試用例,整個行業都是這么做 |
| 2 | 一個腳本是一個完整的場景 | 使用較少 |
| 3 | 腳本之間獨立,不能有依賴 | 如果有依賴關系,則前面的case失敗后會影響后面的執行結果。所有每一條自動化用例都是從打開瀏覽器、登錄開始的,都是相互獨立的,不會有任何依賴 |
| 4 | 設置合適的檢查點 | 即斷言結果 |
| 5 | 設計良好的框架 | - |
二、selenium介紹
1. selenium特點
Selenium主要用于web應用程序的自動化測試,但并不局限于此,它還支持所有基于web的管理任務自動化,其特點如下:
| 1 | 開源免費 | - |
| 2 | 多瀏覽器支持 | Firefox、Chrome、IE、opera、edge |
| 3 | 多平臺支持 | Linux、Windows、MAC |
| 4 | 多語言支持 | Java、Python、Ruby、C#、JavaScript、C++ |
| 5 | 對web頁面有良好的支持 | - |
| 6 | 簡單、靈活、足夠穩定 | API簡單,API:在類里面封裝好的方法,即暴露給別人的一個可用的接口 |
2. Robot framework擴展
(1)Robot framework只是一個關鍵字驅動框架,它只是封裝了selenium、封裝了request。使用RF可以做web端自動化、APP端自動化、接口自動化,但是底層還是用的selenium。
(2)RF是一個非常局限于測試工程師思想的工具,比如打開瀏覽器使用關鍵字open browser,然后寫個URL地址,就可以打開,不需要寫任何代碼。我們做自動化核心在于我們要知道背后的原理,怎樣通過代碼實現,其過程是非常靈活的,而不應局限于已經封裝好的工具。
3. selenium3.x版本介紹
Selenium歷經3個大版本,selenium1.0、selenium2.0、selenium3.0。selenium不是由單獨一個工具構成的,而是由一些插件、類庫組成,每個部分都有其特點和應用場景
selenium3.x的特點如下:
(1)去掉selenium RC。selenium1.0和selenium2.0的底層都使用了selenium RC。
- 去掉selenium RC的原因:對于selenium RC的核心實現的是通過JS去控制操作瀏覽器的,安全性差(每個人都可以調JS)、效率低(中間加了一層)
- selenium2.0以webdriver為主,selenium RC并存,selenium RC在selenium3.0直接被去掉,selenium3.0的核心就是webdriver
(2)Selenium3.0中的Firefox驅動獨立了。在selenium3.0之前,只要在不同編程語言下安裝好selenium就可以驅動Firefox瀏覽器運行自動化測試腳本。這是因為不同語言下的selenium庫中移動包含了Firefox瀏覽驅動。然而,現在Firefox瀏覽器驅動與selenium庫分離,單獨提供下載。
(3) Edge和Safari原生驅動的支持
三、Python3+selenium3.x自動化測試環境搭建
1. 安裝Python
1) 進入Python官網下載Python,下載地址:https://www.python.org/downloads/
2) 雙擊已下載的Python安裝包,安裝時選擇安裝界面的“Add Python 3.7 to PATH”進行勾選,避免再次配置環境變量;
3) 驗證Python是否安裝成功:windows+R打開cmd命令行,輸入命令“python”,如果有提示Python版本,則表示配置成功
2. 配置Python環境變量
如果在步驟1中沒有勾選添加環境變量,則需要手動配置
配置環境變量方法:
1) 找到python.exe所在路徑,我所在路徑為:C:\Users\Administrator\AppData\Local\Programs\Python\Python37
2) 選擇計算機,鼠標右鍵->屬性->高級系統設置->高級->環境變量,選擇系統變量中的Path,將python.exe所在路添加到Path中去,然后點擊確定。
注意:win7中的環境變量需要以英文狀態下的分號;分隔。
- 添加環境變量的方法:將exe可執行程序所在的路徑添加到path中去,因為cmd執行python命令時,找的就是Python.exe這個文件,配置其他環境變量的方法與這個類似。(將exe可執行文件所在路徑添加到環境變量中。)
3. 配置pip環境變量
與步驟2類似,將pip.exe所在路徑添加到path中去,pip.exe通常在python文件夾下的Scripts文件夾下,即路徑為:C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts
4. 安裝配置selenium
在cmd下直接執行pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
5. 下載并安裝pycharm編譯器
- 可以通過pycharm編寫python代碼,目前用的比較多的IDE就是Pycharm
- 下載地址:https://download.jetbrains.com/python/pycharm-community-2017.3.2.exe,也是下一步下一步默認安裝即可。
之前已經安裝過,這一步省略。
6. 下載瀏覽器及對應的驅動
不管是firefox瀏覽器還是chrome瀏覽器我們通過selenium自動化操作瀏覽器都需要用到一個driver,需要進行下載
1) Firefox瀏覽器及驅動下載
- Firefox瀏覽器下載地址:https://www.firefox.com.cn/download/
- 對應驅動下載地址:https://github.com/mozilla/geckodriver/releases
- firefox的版本和geckodriver的版本有對應關系,可以自行在網上查找
- 火狐瀏覽器版本查看:打開火狐瀏覽器,點擊右上角菜單-幫助-關于Firefox
2) Chrome及驅動下載
- Chrome驅動下載地址:http://chromedriver.storage.googleapis.com/index.html
- chrome瀏覽器也和chromedriver有對應關系,需要下載與瀏覽器對應版本的驅動,如我的谷歌瀏覽器版本為:87.0.4280.88
選擇對應版本的驅動(如果沒有對應版本的驅動,可使用接近的版本,如果電腦是64位的,也可以選擇win32的驅動,都可以正常使用)
3) 驅動安裝
- 將下載好的驅動放到與python.exe平行的路徑下
7. 配置pycharm
- 打開pycharm,選擇左上角file->settings->project->project interpreter
- 在project interpreter選擇Python安裝路徑,確認下面存在selenium的庫
8. 第一個自動化程序
在pycharm中運行以下代碼,查看環境是否都已配置成功,如果可以自動打開瀏覽器并進入百度首頁,即說明環境配置完畢
#火狐瀏覽器 from selenium import webdriver import time driver = webdriver.Firefox() driver.get('https://www.baidu.com') time.sleep(5) #谷歌瀏覽器 from selenium import webdriver import time driver = webdriver. Chrome() driver.get('https://www.baidu.com') time.sleep(5)總結
以上是生活随笔為你收集整理的自动化测试简介及环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线段树专辑——pku 3667 Hote
- 下一篇: 什么事接口